好的,所以我的任务是构建一个轻量级的打印功能,它将取代花费大量资金的第三方工具,不仅如此,它还有太多的功能。
我已经设法构建了一个小系统来轮询一些数据并调用本地 MVC 应用程序上的端点,然后再打印文档。
一切都很好,但我真的很难弄清楚为什么 PDF 文件大小在点击打印队列时会膨胀。
目前,当我通过 Adobe 手动打印时,文件大小为822KB,PDF 压缩为342KB
但是使用系统它膨胀到惊人的4.22MB
需要注意的是,我正在使用PDFium SDK Nuget 包来减轻一些繁重的工作。话虽如此,我确实利用 System.Drawing.Printing 来制作设置以传递给PDFium
.
演示打印的小代码:
public bool PrintPDF(string printer,
string filePath)
{
try
{
var printerSettings = new PrinterSettings
{
PrinterName = "Hewlett-Packard HP LaserJet P2015 Series",
Copies = 1,
};
using (var document = PdfDocument.Load(@"C:\folder\Documentation\test.pdf"))
{
using (var printDocument = document.CreatePrintDocument())
{
printDocument.PrinterSettings = printerSettings;
printDocument.DefaultPageSettings = pageSettings;
printDocument.DocumentName = "test.pdf";
printDocument.PrintController = new StandardPrintController();
printDocument.Print();
}
}
return true;
}
catch(System.Exception ex)
{
new Email().SendEmail("", "TEST ERR", ex.Message, "email address");
return false;
}
}
目前,如果它打印物理大小(822KB)而不是膨胀它,我会很高兴。
我真的很感谢一些指导和朝着正确方向轻推。