适用于.NET的快速PDF压缩库

时间:2009-08-04 14:54:08

标签: .net pdf compression

我需要一个用于.NET的快速PDF压缩库,它允许我运行10个并发线程,每个线程将单独的PDF文件压缩到其原始大小的大约10%。有什么建议? (我已经从neeviaPDF.com试用了这个产品。它没有我需要的那么快。)

3 个答案:

答案 0 :(得分:2)

该公司的网站显示了三个例子 - 一个压缩pdf从9.1mb到133kb。使用记事本打开它们显示单个2500x3000,主要是使用FlateDecode压缩的黑色图像转换为使用JPEG2000压缩的相同大小的图像。这种压缩比可能是最好的情况。另外两个例子更合理; 741kb至349kb和940kb至804kb。它们还包括设置的屏幕截图;在所有三个示例中检查的一个包含警告:“非常慢!”看起来好像是一个好产品。它做了所有正确的事情,包括网络优化。

除非您的pdfs内容提前知道,图像太重,并且您使用iTextSharp手动编码解决方案以利用pdf的组合方式,否则不太可能有10%的原始内容。

如果你喜欢你所使用的组件的方式,并且它不是线程安全的,为什么不用它创建10个独立的进程呢?如果你有很多大图像,请注意内存不足错误。

答案 1 :(得分:0)

尝试Apago的PDFshrink。它是商业产品,支持使用多核CPU进行PDF压缩。

答案 2 :(得分:0)

Morovia的PDFLeo能够将PDF压缩成小尺寸。它采用两种主要技术 - 数据流压缩和对象流。根据其manual

  • 删除未使用的对象。未使用的对象将被丢弃。如果是PDF 通过增量更新生成,不需要许多对象。 增量更新是允许处理应用程序的功能 在文件末尾追加更改而不删除先前的对象 定义。这种技术以降低内存使用量为代价 更大的文件大小。
  • 以紧凑的语法编写对象。 PDFLeo写道 使用紧凑语法输出删除额外的空格。 十六进制字符串使用更紧凑的二进制编写 表示。
  • 压缩流。指定时,pdfleo压缩 除了那些必须保持完整的人之外的所有溪流。
  • 对象流。非 流对象可以放入特殊的对象流中 压缩。