Я пытаюсь создать временные PDF
файлы в Java, используя PDDocument
.Я использую следующий метод для создания временного 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
файла.Когда я запускаю тест, он создает два файла PDF
в папке temp
, например, \AppData\Local\Temp\File16375814641476797612.pdf
и \AppData\Local\Temp\File24102718409195239661.pdf
и объединенный файл в \AppData\Local\Temp\Merged_merged_3755858389884894769.pdf
.Но тест не проходит в assertTrue(FileUtils.contentEquals(file1, file2));
Когда я пытаюсь открыть файлы PDF
в папке temp
, он говорит, что PDF
поврежден.Кроме того, я понятия не имею, почему файлы не сохраняются как File1
и File2
.Кто-нибудь может мне с этим помочь?