Это код, используемый для кодирования 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 совпадают?