Каков наилучший способ гарантировать, что закодированный файл PDF декодируется правильно без повреждения - PullRequest
0 голосов
/ 16 апреля 2020

Это код, используемый для кодирования PDF-файла, полученного от поставщика (банка) путем очистки экрана и установленного в контексте сценария. Этот сценарий в основном развертывается и выполняется как пакеты OSGI в веб-сервисе очистки и отправляется в эту службу через контекст сценария, а затем декодируется в конце службы. После чего декодированный байт [] отправляется в службу извлечения через http-запрос, который попытается извлечь данные из полученного PDF-файла как байт [] и преобразовать его в xml. Проблема заключается в том, что файл PDF в источнике после загрузки проверен и выглядит правильно, но при попытке преобразования из PDF в xml возникает проблема с файлом, который поступает в службу извлечения. Команда извлечения использует инструмент с открытым исходным кодом, называемый poppler, для конвертации PDF в xml и лицензированный Acrobat Reader для визуализации PDF. Визуальные элементы PDF выглядят корректно, но во время преобразования (из PDF в xml) он жалуется на то, что в PDF есть ненужные символы.

В конце сценария, который в основном вырезает PDF с веб-сайта и устанавливает encodedContent в контексте скрипта

byte[] pdfByteArray = webBrowser.postBinaryURL(DOWNLOAD_PDF_URL, "");
String encodedContent = Base64.getEncoder().encodeToString(pdfByteArray);

В веб-сервисе очистки

byte[] content = Base64.getDecoder().decode(encodedContent);

Это содержимое отправляется в виде составного http-запроса в службу извлечения

MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
multipartEntityBuilder.addBinaryBody(formName, content, ContentType.create("application/pdf", "ISO-8859-1"), formName);

Есть ли способ проанализировать и убедиться, что исходный PDF и целевой PDF совпадают?

...