expected='endstream' actual='' org.apache.pdfbox.io.PushBackInputStream@21a06946
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.20</version>
</dependency>
使用PDFBOX做合成时出现的问题,部分pdf出现。
经过检查发现最新版本的可以支持,之前出错是因为pdf太大【达到两兆】,读取的时候不支持那么大的缓存区,现在这个版本已经可以兼容。
pdfbox-2.0.20.jar
import java.util.Date;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
public class MEGAPDF2 {
static String BASE_PATH = "D://";
static String SRC_PATH1 = BASE_PATH + "1.pdf"; //待合并文件1
static String SRC_PATH2 = BASE_PATH + "2.pdf"; //待合并文件2
static String SRC_PATH3 = BASE_PATH + "22.pdf"; //合并后文件
public static void main(String[] args) throws Exception {
// pdf合并工具类
PDFMergerUtility mergePdf = new PDFMergerUtility();
// 合成文件
mergePdf.addSource(SRC_PATH1);
mergePdf.addSource(SRC_PATH2);
// 设置合并生成pdf文件
mergePdf.setDestinationFileName(SRC_PATH3);
// 合并pdf
try {
mergePdf.mergeDocuments();
} catch (Exception e) {
System.out.println("pdf文件合并失败");
e.printStackTrace();
}
System.out.println("pdf文件合并成功");
}
}