【问题标题】:Compressing JPG page to PDF with various compressions/settings [closed]使用各种压缩/设置将 JPG 页面压缩为 PDF [关闭]
【发布时间】:2023-04-05 07:22:01
【问题描述】:

我想使用单页 jpg,并尝试各种 pdf 压缩设置和其他设置(以分析生成的 pdf 大小和质量) - 任何人都可以为我提供合适的工具来执行此操作,以及任何有用的文档/指南?

【问题讨论】:

    标签: pdf pdf-generation acrobat ghostscript


    【解决方案1】:

    Adobe Acrobat Distiller、Ghostscript,可能还有其他。 Acrobat 有自己的手册,Ghostscript 文档可以在以下位置找到:

    http://svn.ghostscript.com/ghostscript/tags/ghostscript-9.02/doc/Ps2pdf.htm

    对于当前版本的 PostScript 到 PDF 的转换(在开始之前将您的 JPEG 打印到 PostScript 文件)。

    如果您的原件是 JPEG,那么最好的输出质量就是对它不做任何事情,只需将其包装成 PDF 语法即可。

    如果您坚持对图像数据进行下采样(这是减小 JPEG 图像大小的唯一方法),那么建议您不要使用 DCT (JPEG) 压缩PDF 文件,因为这会引入令人反感的伪影。

    您应该改用无损压缩方案,例如 *"Flate"。

    您最好的选择是返回到未存储为 JPEG 的原始文件,在一个像样的图像应用程序中进行下采样,然后转换为 JPEG 并将其包装在 PDF 中。

    【讨论】:

      【解决方案2】:

      Docotic.Pdf library 可用于将 JPEG(带或不带重新压缩)添加到 PDF。

      在将它们添加到 PDF 之前,请先查看显示 how to recompress images 的示例。借助该库,您也可以重新压缩现有图像。

      免责声明:我为图书馆供应商 Bit Miracle 工作。

      【讨论】:

        【解决方案3】:

        如果您可以在 Windows 上使用 .NET,我的公司 Atalasoft 拥有用于创建图像 PDF 的工具。您可以使用如下代码轻松调整压缩:

        public void WriteJpegPdf(AtalaImage image, Stream outStream)
        {
            PdfEncoder encoder = new PdfEncoder();
            encoder.JpegQuality = 60; // 0 - 100
            encoder.Save(outStream, image, PdfCompressionType.Jpeg);
        }
        

        这是达到 jpeg 质量的最简单方法。如果图像不是 24 位 rgb 或 8 位灰度,它将覆盖您的设置。

        如果您关心对一堆文件进行编码,但希望对压缩进行细粒度控制,则编码器有一个事件 SetEncoderCompression,该事件在图像编码之前被调用,以便您查看编码器选择的内容,您可以覆盖如果你喜欢的话。

        FWIW,我编写了大部分 PDF 编码器和导出实际 PDF 的底层。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-11
          • 2017-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-22
          • 2010-11-04
          相关资源
          最近更新 更多