【问题标题】:Rotativa for PDF getting System.Exception: QFont::setPixelSize: Pixel size <= 0Rotativa for PDF 获取 System.Exception: QFont::setPixelSize: Pixel size <= 0
【发布时间】:2016-04-28 05:44:02
【问题描述】:

我来了

System.Exception: QFont::setPixelSize: 像素大小

在纵向模式下下载pdf时:

       var pdf = new Rotativa.ActionAsPdf("PdfPartial", new { id = id, pid = pid })
            {
                FileName = "AFE.pdf",
                PageOrientation = Rotativa.Options.Orientation.Portrait,
                PageSize = Rotativa.Options.Size.A4                   
            };

虽然它在横向模式下运行良好,如下所示:

var pdf = new Rotativa.ActionAsPdf("PdfPartial", new { id = id, pid = pid })
                {
                    FileName = "AFE.pdf",
                    PageOrientation = Rotativa.Options.Orientation.Landscape,
                    PageSize = Rotativa.Options.Size.A4
                };

我已经尝试通过设置属性

 PageWidth=670,PageHeight=120

它在本地工作,但发布后它不起作用。我需要以纵向模式下载 pdf。上述问题是否有任何修复?

【问题讨论】:

    标签: c# asp.net-mvc rotativa


    【解决方案1】:

    我在 MVC5/C# 应用程序中遇到了这个问题。我正在使用 Rotativa 1.6.4。

    当通过 Nuget 安装 Rotativa 时,会在您的项目中创建一个名为 Rotativa 的目录。在此目录中,您将找到 wkhtmltopdf.exe 可执行文件。

    安装的 Rotativa nuget 提供 wkhtmltopdf.exe 版本 0.12.2.0。

    我调查了 wkhtmltopdf 版本,发现这里有一个更新: http://wkhtmltopdf.org/downloads.html

    我下载并运行了 wkhtmltopdf 安装程序。它在 c:\program files\wkhtmltopdf\bin 中放置了一个新的 EXE。我将该位置的新 EXE 复制到我的项目目录中。使用最新版本的 WKHTMLTOPDF.exe,Rotativa 功能按预期工作。

    【讨论】:

      【解决方案2】:

      从我的一个控制器端点返回 ViewAsPdf() 时遇到此错误。按照 Kyle Sullens 的建议替换 wkhtml 对我不起作用。

      这个问题似乎与 wkhtml 程序无法正确呈现的部分布局页面有关。我返回了 ParialViewAsPdf() 以忽略布局页面,这似乎解决了问题。

      【讨论】:

        猜你喜欢
        • 2016-11-11
        • 2023-03-10
        • 2021-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        相关资源
        最近更新 更多