我目前正在尝试使用 Rotativa(安装了 NuGet 包,C# MVC)为 View 实现 PDF 生成器。但是当我触发 PDF 生成时,我收到以下错误消息:
System.Exception: QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
我的代码:在 Controller 中:
public ActionResult DownloadViewPDF(int Id)
{
var model = new Registration();
model = db.Registrierungen.Find(Id);
return new Rotativa.ViewAsPdf("DownloadViewPDF", model) { FileName = "Course.pdf" };
}
View :
model Plattform.Models.Registration
@{
ViewBag.Title = "Teilnahmebestätigung";
}
<h2>GeneratePDF</h2>
Hiermit bestätigen wir, dass @Html.DisplayFor(Model => Model.Nutzer.Vorname) @Html.DisplayFor(Model => Model.Nutzer.Nachname) erfolgreich an folgendem Kurs erfolgreich teilgenommen hat
<p>
Kurs : @Html.DisplayFor(Model => Model.Kurs.Titel)
</p>
<div>
<h3> Informationen zum Teilnehmer:</h3>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(Model => Model.Nutzer.Vorname)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Nutzer.Vorname)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Nutzer.Nachname)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Nutzer.Nachname)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Nutzer.Heimatuni)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Nutzer.Heimatuni)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Nutzer.Email)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Nutzer.Email)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Registrationsdatum)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Registrationsdatum)
</dd>
</dl>
</div>
<div>
<h3>Informationen zum Kurs</h3>
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(Model => Model.Kurs.Titel)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Kurs.Titel)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Kurs.Termin)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Kurs.Termin)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Kurs.Ortsangabe)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Kurs.Ortsangabe)
</dd>
<h4> Informationen zum Organisator des Kurses</h4>
<dt>
@Html.DisplayNameFor(Model => Model.Kurs.Organisator.Nachname)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Kurs.Organisator.Nachname)
</dd>
<dt>
@Html.DisplayNameFor(Model => Model.Kurs.Organisator.Vorname)
</dt>
<dd>
@Html.DisplayFor(Model => Model.Kurs.Organisator.Vorname)
</dd>
</dl>
</div>
那么是什么导致了这个 Qfont 错误?什么是Qfont?我可以将它设置在某处以免发生此错误吗?
最佳答案
我就是这样解决的。
- 从https://wkhtmltopdf.org/downloads.html下载0.12.4
- 在您的本地机器上安装 从 C:\Program 复制
wkhtmltopdf.exe
Files\wkhtmltopdf\bin 到 solutio\Rotativa - 构建并运行应用
关于C# MVC Rotativa ViewAsPdf System.Exception: QFont::setPixelSize: 像素大小 <= 0 (0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267835/