11
Document document = new Document(reader.getPageSizeWithRotation(1));
PdfCopy writer = new PdfCopy(document, new FileOutputStream(outFile));
document.open();
PdfImportedPage page = writer.getImportedPage(reader, ++i);
writer.setFullCompression();
writer.addPage(page);
document.close();
writer.close();

我正在使用 iText 拆分和合并 PDF,我需要您的帮助以编程方式减小(压缩)输出 PDF 大小。请让我知道实现相同的步骤。

4

4 回答 4

7

使用 iText

PdfReader reader = new PdfReader(new FileInputStream("input.pdf"));
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output.pdf"));
int total = reader.getNumberOfPages() + 1;
for ( int i=1; i<total; i++) {
   reader.setPageContent(i + 1, reader.getPageContent(i + 1));
}
stamper.setFullCompression();
stamper.close();
于 2014-01-09T16:02:52.133 回答
6

writer.setFullCompression()尽可能用你已经压缩的文件。使用 iText,您将无能为力。

于 2013-01-16T09:26:08.513 回答
4

还将 更改PdfCopyPdfSmartCopy。它将消除具有相同哈希(md5)的重复流。

于 2013-01-16T17:04:35.090 回答
0

您可以使用 ghostscript,调用带有特定参数的 exe,以使用 ghostscript 的 pdfwriter 打印您的 pdf(例如:sDEVICE=pdfwrite -sOutputFile=myfile.pdf)。有几个可接受的参数,用于压缩或质量级别等。它可能会导致优化和更小的文件。

于 2013-11-05T22:13:20.493 回答