Тестирование порядка страниц документа, созданного с помощью PDFBoxJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тестирование порядка страниц документа, созданного с помощью PDFBox

Сообщение Anonymous »

Я работаю над приложением Kotlin, которому необходимо обработать коллекцию PDF-файлов и объединить их в один документ. Одной из функций, запрошенных пользователями, является сортировка страниц в объединенном документе на основе имен файлов исходных документов.
Проблема, с которой я борюсь, заключается в том, как написать модульный тест, чтобы убедиться, что страницы объединенного документа расположены в правильном порядке. Мне нужен какой-то способ извлечь уникальный идентификатор для каждой страницы объединенного документа, который я могу сравнить со списком ожидаемых результатов. Кто-нибудь знает хороший способ сделать это?
Для справки, моя функция для объединения коллекции файлов выглядит так:
internal fun List.mergePdfsToOne(
path: String,
newFileTitle: String,
parentZipFileModifiedDate: Date,
dp: INT202DependencyProvider
): File {
return this.let { filesToMerge ->
COSStream().use { cosStream ->
ByteArrayOutputStream().use { mergedPdfOutputStream ->
val pdfMergeUtil = PDFMergerUtility()
pdfMergeUtil.destinationStream = mergedPdfOutputStream
generateDocInfo(
cosStream,
newFileTitle,
parentZipFileModifiedDate,
dp.integrationId.value()
).let { docInfo ->
// PDF and XMP properties must be identical, otherwise document is not PDF/A compliant
pdfMergeUtil.destinationDocumentInformation = docInfo.first
pdfMergeUtil.destinationMetadata = docInfo.second
}

pdfMergeUtil.addSources(filesToMerge.map { it.inputStream() })
pdfMergeUtil.mergeDocuments(MemoryUsageSetting.setupTempFileOnly())

File("$path/$newFileTitle").let { fileToWrite ->
FileUtils.writeByteArrayToFile(fileToWrite, mergedPdfOutputStream.toByteArray())
fileToWrite
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ith-pdfbox
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»