适用于 .NET 的快速 PDF 压缩库
我需要一个用于 .NET 的快速 PDF 压缩库,它允许我运行 10 个并发线程,每个线程将一个单独的 PDF 文件压缩到其原始大小的 10% 左右。 有什么建议么? (我已经尝试过 neeviaPDF.com 的产品。它没有我需要的那么快。)
I need a fast PDF Compression library for .NET that will allow me to run 10 concurrent threads each compressing a separate PDF file to around 10% of its original size. Any suggestions? (I have already tried out the product from neeviaPDF.com. It is not as fast as I need.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
该公司的网站展示了三个示例 - 其中一个将 pdf 从 9.1mb 压缩到 133kb。 用记事本打开它们会显示一个 2500x3000 的大部分黑色图像,使用 FlateDecode 压缩,转换为使用 JPEG2000 压缩的相同大小的图像。 这种压缩比可能是最好的情况。 另外两个例子比较合理; 741kb 至 349kb 和 940kb 至 804kb。 它们还包括设置的屏幕截图; 所有三个示例中检查的一个都包含警告:“非常慢!!!” 不过,看起来是个好产品。 它做了所有正确的事情,包括网络优化。
原始文件的 10% 是不可能的,除非您提前知道 pdf 的内容、大量图像,并且您使用 iTextSharp 手动编写解决方案以利用 pdf 的组合方式。
如果您喜欢您所拥有的组件的工作方式,并且它不是线程安全的,为什么不直接用它创建 10 个单独的进程呢? 如果您有很多大图像,请小心内存不足错误。
The company's website shows three examples - one compresses a pdf from 9.1mb to 133kb. Opening them up with Notepad shows a single 2500x3000 mostly black image compressed with FlateDecode converted to the same size image compressed with JPEG2000. This kind of compression ratio is probably the best-case scenario. The other two examples are more reasonable; 741kb to 349kb and 940kb to 804kb. They also include a screenshot of the settings; one checked in all three examples contains a warning: "VERY SLOW!!!" Seems like a good product, though. It does all the right things, including web optimization.
10% of the original is unlikely unless your pdfs' contents are known ahead of time, heavy in images, and you handcode a solution using iTextSharp to take advantage of the way the pdfs are put together.
If you like the way the component you have works, and it is not thread safe, why not just create 10 separate processes with it? If you've got a lot of large images, be careful of out-of-memory errors.
尝试 Apago 的 PDFshrink。 它是一款商业产品,支持使用多核 CPU 进行 PDF 压缩。
Try Apago's PDFshrink. It's a commercial product and supports PDF compression using multi-core CPUs.
Morovia 的 PDFLeo 能够将 PDF 压缩为小尺寸。 它采用两种主要技术——数据流压缩和对象流。 根据其手册:
是通过增量更新产生的,很多对象是不需要的。
增量更新是一种允许处理应用程序
在文件末尾追加更改而不删除先前的对象
定义。 该技术减少了内存使用,但代价是
更大的文件大小。
使用紧凑语法输出 多余的空格被删除。
十六进制字符串用更紧凑的二进制编写
交涉。
除了那些必须保持完整的溪流之外的所有溪流。
流对象可以放入特殊的对象流中
压缩的。
Morovia's PDFLeo is capable of compressing PDF into small size. It employs two major techniques - data stream compression and object streams. According to its manual:
is produced through incremental update, many objects are not needed.
Incremental update is a feature to allow a processing application to
append changes at the file end without removing prior object
definitions. This technique reduces the memory usage at the cost of
bigger file size.
output using compact syntax Extra white spaces are removed.
Hexadecimal strings are written with more compact binary
representations.
all streams except those who must be kept intact.
stream objects can be placed into a special object stream and
compressed.