【发布时间】:2017-05-26 00:00:02
【问题描述】:
我在网上找到了许多示例,其中之一:
var oldFile = @"C:\Users\XXX\Downloads\3921B2014901_2014_7346.pdf";
var newFile = @"C:\Users\XXX\Downloads\new\3921B2014901_2014_7346.pdf";
RandomAccessFileOrArray raf = new RandomAccessFileOrArray(oldFile);
PdfReader reader = new PdfReader(raf, null);
using (FileStream fs = new FileStream(newFile, FileMode.Create))
{
PdfStamper stamper = new PdfStamper(reader, fs, PdfWriter.VERSION_1_5);
PdfWriter writer = stamper.Writer;
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_5);
writer.CompressionLevel = PdfStream.BEST_COMPRESSION;
for (int i = 1; i <= reader.NumberOfPages; i++)
{
reader.SetPageContent(i, reader.GetPageContent(i), PdfStream.BEST_COMPRESSION, true);
}
stamper.SetFullCompression();
stamper.Close();
}
reader.Close();
raf.Close();
原始文件为 2.75Mb,生成的新文件为 2.77Mb。为什么?
我尝试了在线转换器,它们将同一文件减少到 500Kb。我怎样才能达到同样的效果?
【问题讨论】:
-
Pdf 压缩是一件棘手的事情。看看这个问题:stackoverflow.com/questions/21341130/…
-
嗯,写了很多....但实际上并没有什么用处。
-
Adobe Acrobat 的“审核空间使用”功能对于了解决定文件大小的因素非常有用,恕我直言,这是一个很好的起点。
-
好吧,我必须以编程方式减少它们......就像许多网站一样。
标签: pdf compression itext