iTextSharp 像 PDF24Creator 一样改变结果质量/压缩
iTextSharp change outcome quality / compression like PDF24Creator
我想知道我是否可以像使用 Adobe Acrobat Pro 或 PDF24Creator 那样使用 iTextSharp 和 C# compress/Change 输出 pdf 文件的质量。
使用 PDF24Creator 我可以打开 pdf,再次保存文件并将 "Quality of the PDF" 设置为 "Low Quality",我的文件大小从 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
感谢您的帮助 (B运行o)!
简答:没有。
长答案:是的,但你必须自己做很多工作。
如果您阅读 third and fourth paragraphs here,您将希望从 PDF 的角度更好地理解 "compression" 的实际含义。
Adobe Acrobat 和 PDF24 Creator 等程序允许您通过破坏 PDF 中的数据来减小文件的大小。当您 select 低质量设置时,这些程序最常见的更改之一是实际提取所有图像,降低它们的质量并替换 PDF 中的原始文件。因此,最初未经任何压缩保存的 JPEG 可能会降低到 60% 的质量。需要明确的是,60% 是不可逆的,它不是压缩文件,它实际上是在破坏数据以保存 space.
另一个设置是降低图像的有效 DPI。放置在 2 英寸宽框内的 500 像素宽图像实际上是 250 DPI。这些程序将提取图像,将图像缩小到 96 或 72 DPI,这意味着将 500 像素的图像宽度缩小到 192 或 144 像素,并替换 PDF 中的原始文件。再次声明,这是一个破坏性的不可逆的变化。
(并且由于破坏性不可逆,您可能仍然拥有原始文件,我只是想澄清一下,这与 ZIP 不同 "compression"。)
但是,如果您真的想这样做,可以查看 code like this,其中显示了如何使用 iText 执行图像的提取和重新插入。但是,更改图像由您 100% 决定,因为 iText 不会对您的数据进行破坏性更改(我想说这是一件好事!)
我想知道我是否可以像使用 Adobe Acrobat Pro 或 PDF24Creator 那样使用 iTextSharp 和 C# compress/Change 输出 pdf 文件的质量。
使用 PDF24Creator 我可以打开 pdf,再次保存文件并将 "Quality of the PDF" 设置为 "Low Quality",我的文件大小从 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
感谢您的帮助 (B运行o)!
简答:没有。
长答案:是的,但你必须自己做很多工作。
如果您阅读 third and fourth paragraphs here,您将希望从 PDF 的角度更好地理解 "compression" 的实际含义。
Adobe Acrobat 和 PDF24 Creator 等程序允许您通过破坏 PDF 中的数据来减小文件的大小。当您 select 低质量设置时,这些程序最常见的更改之一是实际提取所有图像,降低它们的质量并替换 PDF 中的原始文件。因此,最初未经任何压缩保存的 JPEG 可能会降低到 60% 的质量。需要明确的是,60% 是不可逆的,它不是压缩文件,它实际上是在破坏数据以保存 space.
另一个设置是降低图像的有效 DPI。放置在 2 英寸宽框内的 500 像素宽图像实际上是 250 DPI。这些程序将提取图像,将图像缩小到 96 或 72 DPI,这意味着将 500 像素的图像宽度缩小到 192 或 144 像素,并替换 PDF 中的原始文件。再次声明,这是一个破坏性的不可逆的变化。
(并且由于破坏性不可逆,您可能仍然拥有原始文件,我只是想澄清一下,这与 ZIP 不同 "compression"。)
但是,如果您真的想这样做,可以查看 code like this,其中显示了如何使用 iText 执行图像的提取和重新插入。但是,更改图像由您 100% 决定,因为 iText 不会对您的数据进行破坏性更改(我想说这是一件好事!)