gpt4 book ai didi

c# - iTextSharp 像 PDF24Creator 一样改变输出质量/压缩

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:47 25 4
gpt4 key购买 nike

我想知道我是否可以像使用 Adob​​e Acrobat Pro 或 PDF24Creator 那样使用 iTextSharp 和 C# 压缩/更改输出的 pdf 文件的质量。

使用 PDF24Creator 我可以打开 pdf,再次保存文件并将“PDF 质量”设置为“低质量”,我的文件大小从 88.6MB 减小到 12.5MB,而质量仍然足够好.

我已经在使用

    writer = new PdfCopy(doc, fs);
writer.SetPdfVersion(PdfCopy.PDF_VERSION_1_7);
writer.CompressionLevel = PdfStream.BEST_COMPRESSION;
writer.SetFullCompression();

这将文件大小从大约 92MB 减少到 88MB。

或者:我可以使用命令行参数或启动参数通过我的 C# 代码运行 pdf24 程序吗?类似的东西:

pdf24Creator.exe -save -Quality:low -inputfile -outputfile

感谢您的帮助 (Bruno)!

最佳答案

简短的回答:没有。

长答案:是的,但您必须自己做很多工作。

如果您阅读 third and fourth paragraphs here您有望从 PDF 的角度更好地理解“压缩”的实际含义。

Adobe Acrobat 和 PDF24 Creator 等程序允许您通过破坏 PDF 中的数据来减小文件的大小。当您选择低质量设置时,这些程序最常见的更改之一是实际提取所有图像,降低它们的质量并替换 PDF 中的原始文件。因此,最初未经任何压缩保存的 JPEG 可能会降低到 60% 的质量。需要明确的是,60% 是不可逆的,它不会压缩文件,它实际上是在破坏数据以节省空间。

另一个设置是降低图像的有效 DPI。放置在 2 英寸宽框内的 500 像素宽图像实际上是 250 DPI。这些程序将提取图像,将图像缩小到 96 或 72 DPI,这意味着将 500 像素的图像宽度缩小到 192 或 144 像素,并替换 PDF 中的原始文件。再次说明,这是一种破坏性的不可逆变化。

(通过破坏性不可逆,您可能仍然拥有原始文件,我只是想说明这不是像 ZIP 那样真正的“压缩”。)

但是,如果你真的想这样做,你可以看看 code like this其中显示了如何使用 iText 执行图像的提取和重新插入。但是,更改图像由您 100% 决定,因为 iText 不会对您的数据进行破坏性更改(我想说这是一件好事!)

关于c# - iTextSharp 像 PDF24Creator 一样改变输出质量/压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com