У меня есть следующий фрагмент кода для объединения двух 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. На сервере сборки есть три страницы:
- первый документ
- одна пустая страница
- второй документ
Первые две страницы выглядят в буквенном формате, а последняя страница выглядит как страница А4.
Как это исправить?
Редактировать: дополнительная информация.Локальная ОС - это Windows.Система сборки работает под управлением Linux.