Rotativa for PDF获取System.Exception:QFont :: setPixelSize:像素大小< = 0

时间:2016-04-28 05:44:03

标签: c# asp.net-mvc rotativa

我正在

  

System.Exception:QFont :: setPixelSize:像素大小< = 0

以纵向模式下载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。是否有针对上述问题的修复?

2 个答案:

答案 0 :(得分:0)

我在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功能按预期工作。

答案 1 :(得分:0)

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

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