c# - PrintDocument 打印空白页?
问题描述
当我收到保存文档的提示时,我正在尝试打印 pdf 文档并将其保存到文件中。该文件是用正确的页数生成的,但所有页面都是空白的。我在下面的 PrintPage 处理程序中缺少什么?感谢您的任何建议。
var ctrl = new StandardPrintController();
using (PrintDocument doc = new PrintDocument())
{
doc.PrintController = ctrl;
doc.PrinterSettings.PrinterName = "CutePDF Writer";
doc.PrinterSettings.PrintFileName = fileName;
doc.PrintPage += (s, e) =>
{
pageNo++;
if (pageNo < frameCount)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
};
doc.Print();
}
解决方案
如果要打印 pdf,可以使用 PdfiumViewer 一个开源库。
链接到 Nuget 包:
https://www.nuget.org/packages/PdfiumViewer/
然后修改您的代码以加载您要打印的文档:
var ctrl = new StandardPrintController();
using (var document = PdfDocument.Load(filename))
{
using (PrintDocument doc = document.CreatePrintDocument())
{
doc.PrintController = ctrl;
doc.PrinterSettings.PrinterName = "CutePDF Writer";
doc.PrinterSettings.PrintFileName = fileName;
doc.PrintPage += (s, e) =>
{
pageNo++;
if (pageNo < frameCount)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
};
doc.Print();
}
}
}
}
推荐阅读
- plc - 如何将变量类型作为参数传递给 IEC61131-3 结构化文本 (TwinCAT3) 中的函数?
- vb.net - 如何修复 Visual Basic 2019 的溢出异常
- ag-grid - 如何修改或删除列的最大宽度?
- javascript - 如何修复错误不使用被动侦听器来提高滚动性能(灯塔报告)
- jenkins - jenkins 中的 SSH 自动化
- asp.net - 如何使用 ASP.NET Core 在数据库中插入当前登录的用户
- javascript - 我应该如何嵌入具有多对多关系的 2 个模型?
- html - 向左而不是向右溢出元素,但对于元素
- java - ArrayList 转换成逗号分隔的字符串
- javascript - 复制每个值在相同的结构中