PDFTron - HTML2PDF - Ошибка поиска файла операции

При конвертации массовых html-файлов в pdf ошибка преобразования не удалась. Для того же HTML-файла иногда это работает. Главным образом, когда есть больше файлов, один или два терпят неудачу.

Версия PdfTron: сентябрь 2016 г., среда: Linux, Java 8

Следил за этой статьей, https://www.pdftron.com/pdfnet/samplecode/HTML2PDFTest.java.html

String inputHtml = "/myfolder/output.html";
String outputPdf = "/myfolder/output.pdf";
PDFNet.initialize();
PDFDoc doc = new PDFDoc();
HTML2PDF converter = new HTML2PDF();
converter.setLandscape(false);
converter.setPaperSize(9);
converter.insertFromHtmlString(new String(Files.readAllBytes(Paths.get(inputHtml))));
if (converter.convert(doc)) {
    doc.initSecurityHandler();
    doc.save(outputPdf, SDFDoc.e_linearized, null);
} else {
    log.error("Conversion failed. HTTP Code: " + converter.getHTTPErrorCode() + "\n" + converter.getLog());
}

Выход

Conversion failed. HTTP Code: 0
Loading pages (1/6)
[>                                                           ] 0%
[======>                                                     ] 10%
[=================>                                          ] 29%
[===================>                                        ] 33%
[=====================>                                      ] 36%
[============================================================] 100%
Counting pages (2/6)                                               
[============================================================] Object 1 of 1
Resolving links (4/6)                                                       
[============================================================] Object 1 of 1
Loading headers and footers (5/6)                                           
Printing pages (6/6)
[>                                                           ] Preparing
[==============================>                             ] Page 1 of 2
[============================================================] Page 2 of 2
Done                                                                      
Post Process Error: Operation file seek failed
StdFile.cpp:478
DataWrite

3 ответа

Решение

Скорее всего, есть проблема с правами на чтение / запись для используемой временной папки.

Пожалуйста, попробуйте следующее.

PDFNet.setTempPath(folder_that_you_know_your_process_can_read_write);
PDFNet.initialize();

В Java вы не можете использовать простые обратные слеши в строках, представляющих путь. Строка "\myfolder\output.pdf" равно "myfolderoutput.pdf", Либо используйте двойную обратную косую черту (\), либо прямую косую черту (/)

Добавление разрешения на выполнение для файлов lib, присутствующих в модуле HTML2PDF, сработало для меня (на macos)

      chmod a+x HTML2PDFMac/html2pdf_chromium.dylib 
chmod a+x HTML2PDFMac/libswiftshader_libGLESv2.dylib
chmod a+x HTML2PDFMac/libswiftshader_libEGL.dylib
Другие вопросы по тегам