2

我有一个从用户自己的图像创建 pdf 书的系统。这些图像是高分辨率的,pdf 最终大约有 70 页,其中大部分都带有图片。

在服务器上的本地应用程序中生成 pdf 时,该进程使用大约 3Gb 的内存,这使得它更频繁地崩溃然后成功。这些文件也非常大,大约 1,2 Gb。通过打印到 pdf 运行它会使它小一百倍。

有没有办法让 ABCPdf 使用更少的内存并创建更小的文件?

4

3 回答 3

1

另请注意,对于非常大的 PDF,您可能希望将“线性化”设置为 false。

        <pdfDoc.SaveOptions.Linearize = false;>

这优化了 PDF 以用于网络流式传输,因此如果您正在流式传输 PDF,那么您可能希望将其保留为 true,但我发现它大大增加了 ABCPDF 在保存期间使用的内存。

于 2011-11-22T15:58:24.023 回答
1

我在使用 iTextSharp 时也有过非常相似的经历,每当我创建一个包含图像的大型 PDF 时,我基本上都会内存不足。

我发现在处理完图像后,我应该调用一个函数来释放图像,因为它将它保存在内存中,以防你想再次使用它或直到你最终关闭 PDF。

如果他们重复页眉/页脚徽标,则可以重复使用该图像,或者在旅途中发布图像。
这很可能是您面临的问题,但我在 ABCPdf 方面没有经验。

于 2010-12-17T10:13:54.537 回答
1

我没有直接使用 ABCPdf,但我怀疑图像是您问题的根源,在它们包含在 PDF 对象中之前调整它们的大小。我怀疑这就是打印到 PDF 的过程。

于 2010-12-17T10:14:34.420 回答