我们有一个动态构建pdf文件的.net 2.0网络系统。其中一些文件可能会变得非常大--12MB +。虽然处理时间不是一个因素,但实际上,在某些情况下,要下载的文件大小。
目前,让我们假设我们的B级pdf库已经在制作它知道的最小文件。 (尽管如果有人对此有任何建议,请参阅this related question。)
然而,拿出12MB的文件并通过Acrobat蒸馏器发送它会产生大约700K的文件,而且打印质量没有明显的损失。
我很想拥有某种甚至三分之一的后处理器。有没有人有任何他们知道的控件会做这样的事情?
对于这个项目来说,越便宜越好,但我们不会因为投入几美元而感到不利。
(一些先发制人的评论:当然,用一种新工具重写现有的PDF生成代码目前还不在桌面上。而且,虽然Distiller似乎有一个API,但在网络服务器上调用它似乎不是最多的高效的课程 - 而Distiller有点贵。最后,我们也不要将pdf封装在一个zip文件或其他类似的文件中,因为这可能会让客户感到困惑。不,真的。)
谢谢!
答案 0 :(得分:17)
使用 Ghostscript ,它也适用于32位和64位Windows平台。它识别所有 Adobe Distiller 参数[1]和honors most of them。最重要的是,您可以将PostScript程序注入转换过程。我在图像繁重的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
一些有价值的资源:
答案 1 :(得分:2)
PDF通常使用JBIG / JBIG2 / JPEG2000压缩。 Cvision的PDFCompressor是压缩PDF的最佳选择。
答案 2 :(得分:2)
有多种PDF版本具有不同的尺寸功能权衡。如果您要转换基于文本的文档(word / excel / etc)与图像文档(TIFF / JPG / BMP /等),那么它可能会解释了酿酒师为您提供的较小文件大小。您需要确保您的实用程序不仅仅是创建只有图像的PDF文件(通常更大)。压缩格式也非常重要,特别适用于彩色文档。查找允许您调整这些设置的配置选项。如果您提及特定的PDF构建工具,我们可能会为您提供更具体的帮助。
对于PDF文件的“风味”,这是一个不错的reference:
答案 3 :(得分:1)
Apago有很多工具可以“整理”PDF文件
答案 4 :(得分:0)
提交pdf库制作者的错误?如果它是开源的,修复一些低悬的水果(可能有很多)并提交补丁?
答案 5 :(得分:0)
我对你的问题没有具体的答案,所以我希望我的回答不是很差。
我已将pdftk用于各种与PDF相关的任务。它很容易从shell中使用,我发现它确实具有压缩功能。您可以快速尝试一下,看看它是否适用于您的应用程序的后期处理。
答案 6 :(得分:0)
如果您对无损压缩感兴趣,请尝试使用我的工具Precomp和您选择的文件压缩器。根据PDF文件中的内容,Precomp通常会放大PDF文件,以便之后可以更好地压缩。
答案 7 :(得分:0)
除了使用其他图书馆外,最好的办法是让图书馆正常运作。关于你的其他帖子的一些建议 - 我不确定你想要压缩文件的任何“后期处理”。
另外,您的网络服务器是否允许HTTP gzip压缩内容?对最终用户透明!
(话虽如此,短PDF文件对于大多数压缩方法应该是非常不受影响的 - 图像应该在渲染过程中被压缩(在这种情况下是JPEG>> ZIP) - 但是如果你有批次 of text,gzip可以帮助)
答案 8 :(得分:0)
不要在PDF中包含整个字体。照顾那个可以节省几兆字节。
答案 9 :(得分:0)
如果您的pdf库制作次优PDF,那么在任何其他库中加载和保存PDF应该会为您提供更小的文件。 PDFNet SDK类型3应该完成此任务,而360USD比Adobe PDF库便宜。
答案 10 :(得分:0)
大PDF文件有不同的原因。通常的可疑对象是重复的对象,例如图像、不需要的/过大的字体以及过大/压缩不良的图像。
您可以尝试使用市场上可用的 PDF 库之一自行实现压缩实用程序。或者您可以尝试使用 Docotic.Pdf 库来完成任务。我为公司工作,所以你不必相信我:-) 自己尝试一下,看看它是否对你的情况有帮助。我们有 Compress PDF documents in C# and VB.NET 篇关于 Dotic.Pdf 提供的优化方法的文章。
免责声明:我知道这个问题很老,但希望我的回答能让那些仍然可以在 SO 上或通过 Google 找到它的人受益。