如何减小打印假脱机文件的大小



我有一个13.1MB大小的pdf文件。使用Acrobat Reader DC打印时,假脱机文件的大小为105MB。然而,当我尝试用PdfiumViewer进行程序打印时,假脱机文件大小会超过500MB,最终由于打印机内存不足而导致程序崩溃。

代码如下

var pdfStream = new FileStream("file.pdf", FileMode.Open);
var pdfDocument = PdfDocument.Load(pdfStream);
var printDocument = pdfDocument.CreatePrintDocument();
printDocument.Print();

我知道pdf文件需要转换为打印机能够理解的某种数据格式,并且数据的大小因应用程序而异。我的问题是,Acrobat如何减少假脱机文件的大小?在将pdf文件转换为打印机能够理解的数据格式之前,它是否对其进行了预处理(压缩?(?

我正在尝试获得一些线索,希望能像Acrobat一样减少假脱机文件的大小。

你的问题没有简单的答案,所以我给你最难的答案。

您可以尝试使用PostScript驱动程序将两个程序中更简单的文档(例如单个PDF页面(打印到暂停的打印机上,然后对存储在此处的假脱机文件进行区分:

C:WindowsSystem32spoolPRINTERS

根据过去的经验,我怀疑Acrobat做了一些PDF优化,使其更容易渲染。不过,这些知识不会帮助解决您的问题,除非您计划改进Pdfium或PdfiumViewer。

我认为你的选择是:

  1. 分析打印操作并找出问题所在。是泄漏吗?这可能是你可以解决的问题。如果有帮助的话,你能一次打印一页吗?或者,你试图打印的PDF文档是由没有正确处理的高分辨率大页面组成的,比如这个问题?(我已经链接到存档的原始回购,因为你没有说你在使用哪一个。(

  2. 寻找其他PDF打印选项,比如这个有点老的问题中提到的那些。您可以使用各种商业和开源解决方案。如果你不能自己修复PdfiumViewer,那么你需要使用一个仍然维护的项目,这样你就可以报告你发现的任何错误。

最新更新