【发布时间】:2019-09-24 05:28:52
【问题描述】:
我正在尝试使用 PDDocument 在 Java 中创建临时的 PDF 文件。我正在使用以下方法来创建一个临时的PDF 文件。
/* Create a temporary PDF file.*/
private File createPdf(String fileName) throws IOException {
final PDDocument document = new PDDocument();
final File file = File.createTempFile(fileName, ".pdf");
//write it
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write("This is the temporary pdf file content");
bw.close();
document.save(file);
document.close();
return file;
}
这是测试。
@Test
public void testCreateAndMergePdfs() throws IOException {
Collection<File> pdfs = new ArrayList<>(Arrays.asList(createPdf("File1"), createPdf("File2")));
assertFalse(CollectionUtils.isEmpty(pdfs));
PdfPrintPojo pdfPrintPojo = new PdfPrintPojo(pdfs);
File mergedFile = service.createAndMergePDFs(pdfPrintPojo, "Merged");
assertNotNull(mergedFile);
List<File> list = new ArrayList<>(pdfs);
File file1 = list.get(0);
File file2 = list.get(1);
assertTrue(FileUtils.contentEquals(file1, file2));
}
我在这里要做的是创建和合并两个PDF 文件。当我运行测试时,它会在temp 文件夹中创建两个PDF 文件,例如\AppData\Local\Temp\File16375814641476797612.pdf 和\AppData\Local\Temp\File24102718409195239661.pdf 以及\AppData\Local\Temp\Merged_merged_3755858389884894769.pdf 的合并文件。但测试失败
assertTrue(FileUtils.contentEquals(file1, file2));
当我尝试打开temp 文件夹中的PDF 文件时,它说PDF 已损坏。另外,我不知道为什么文件没有保存为File1 和File2。谁能帮我这个?
【问题讨论】:
-
你的 createAndMergePDFs 方法在哪里?
-
@Mak 它在服务类中,我认为这在这里不太重要。