.net - 对缩小 PDF 文件有什么建议吗?

标签 .net pdf filesize

我们有一个动态构建 pdf 文件的 .net 2.0 网络系统。其中一些文件可能会变得非常大 - 12MB+。虽然处理时间不是一个因素,但在某些情况下,要下载的文件的大小确实是一个因素。

目前,让我们假设我们的 B 级 pdf 库已经在制作它所知道的最小文件。 (不过,如果有人在这方面有任何建议,请参阅 this related question。)

但是,将有问题的 12MB 文件通过 Acrobat 蒸馏器发送会产生大约 700K 的文件,而打印质量没有明显损失。

我很想拥有某种后处理器,它甚至可以完成三分之一的工作。有没有人知道他们知道会做这样的事情的任何控制?

对于这个项目,越便宜越好,但我们并不反对投入几美元。

(一些先发制人的评论:很自然,现在用新工具重写现有的 PDF 生成代码是不可能的。此外,虽然 Distiller 似乎有一个 API,但在网络服务器上调用它似乎并不是最有效的类(class) -而且 Distiller 有点贵。最后,我们最好不要将 pdf 文件打包成 zip 文件或类似的文件,因为这可能会让客户有些困惑。不,真的。)

谢谢!

最佳答案

使用Ghostscript ,也可用于 32 位和 64 位 Windows 平台。它可以识别所有 Adob​​e Distiller 参数[1] 和 honors most of them .最重要的是,您可以将 PostScript 程序注入(inject)到转换过程中。我在图像密集型 PDF 的预印制作环境中使用了一年。如果参数设置正确,文件大小可以从 40MB 下降到 800kB,而没有明显的质量损失。我发现它非常快,实际上文档指出 it may be faster than Adobe Distiller .

它是免费 (如在啤酒和演讲中)。

[1] 参见 Distiller 帮助文件夹中的 distparm.pdf 或查看 here .

你如何使用它

您可以从命令行使用所有想要的参数、输入和输出文件调用它,然后就完成了。

快速示例:

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite\
   -dCompatibilityLevel=1.3 -dEncodeColorImages=true\
   -sOutputFile=output.pdf input.pdf

一些有值(value)的资源:
  • Ghostscript PDF writer tips
  • Postscript-to-PDF converter documentation
  • 关于.net - 对缩小 PDF 文件有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612566/

    相关文章:

    c++ - 无法使用 libHaru 在 PDF 文件中写入文本

    php - 检查 ZIP 存档中内容的文件大小

    android - 使用 SQLCipher 加密后无法压缩 Android SQLite 数据库

    c# - 如何查明 VSTO 中的应用程序是否繁忙

    c# - 仅通过一个字段从对象列表中查找不同的值

    java XMLWorkerHelper - NoSuchMethodError : com. itextpdf.text.pdf.PdfPTable.addCell

    ruby-on-rails - 文件字段上传的 rails 内容类型不正确

    c# - .NET File.Copy 等待完成

    c# - 在多线程C#应用程序中使用互操作的Excel文件操作失败

    c++ - 在 C/C++ 中获取文件大小的可移植方法