我有以下代码片段来合并两个单页 PDF 文件(第一个和第二个):
byte[] codes = IOUtils.toByteArray(resource.getURI());
PdfReader first = new PdfReader(firstBytes);
PdfReader second = new PdfReader(secondBytes);
Document document = new Document(PageSize.A4);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
PdfCopy copy = new PdfCopy(document, byteArrayOutputStream);
document.open();
copy.addDocument(first);
copy.addDocument(second);
document.close();
return byteArrayOutputStream.toByteArray();
接下来我有以下测试:
byte[] generated = new Merger(...).generate(...); // Location of the snippet above
File file = new File("dir", "generated.pdf");
FileUtils.writeByteArrayToFile(file , generated);
PdfReader pdfReader = new PdfReader(new FileInputStream(file));
assertThat(pdfReader.getNumberOfPages()).isEqualTo(2);
此测试在本地运行良好,但在我们的构建服务器上失败。
在本地生成的 PDF 看起来只包含两个 A4 页面在构建服务器上有三个页面:
第一个文件
一页空白
第二个文件
前两页好像是letter格式,而最后一页好像是A4纸。
我该如何解决?
编辑:一些额外的信息。本地操作系统是 Windows。构建系统运行Linux。
神不在的星期二
相关分类