我正在阅读PDF并输出PDF,其中包含原始PDF的多个副本.我通过对PDFBox和iText做同样的事情进行测试.如果我单独复制每个页面,iText会创建一个小得多的输出.
问题:在PDFBox中是否有另一种方法可以实现更小的输出PDF.
对于一个示例输入文件,使用这两个工具为输出生成两个副本:
PDFBox的Java代码(很遗憾对您造成错误处理).注意它如何反复读取输入并将其作为一个整体复制:
PDFMergerUtility merger = new PDFMergerUtility();
PDDocument workplace = null;
try {
for (int cnt = 0; cnt < COPIES; ++cnt) {
PDDocument document = null;
InputStream stream = null;
try {
stream = new FileInputStream(new File(sourceFileName));
document = PDDocument.load(stream);
if (workplace == null) {
workplace = document;
} else {
merger.appendDocument(workplace, document);
}
} finally {
if (document != null && document != workplace) {
document.close(); …Run Code Online (Sandbox Code Playgroud)