Docker выдает исключение - Html2Pdf library - PullRequest
1 голос
/ 27 февраля 2020

Я создал приложение, используя htmlToPdf , и приложение работало нормально. но когда я развернул его на своем docker с помощью приведенного ниже конвейера.

FROM openjdk:8-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
      libc6 \
      libx11-6 \
      libxext6 \
      libxrender1 \
      libstdc++6 \
      libssl1.0 \
      libfreetype6 \
      fontconfig \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/*

, я добавил эти библиотеки, потому что они нужны для правильной работы. Но все равно он показывает ту же ошибку, показанную в документации.

, которая:

Caused by: java.lang.UnsatisfiedLinkError: Unable to load library '/tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so': Native library (tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so) not found in resource path 

Я проверил папку / tmp контейнера docker, в которой в качестве исключений содержится требуемый файл

1 Ответ

2 голосов
/ 03 марта 2020

Как я вижу, вы боретесь с библиотекой html2pdf.

Но вы забываете, что эта библиотека использует wkhtmltopdf для внутренних целей. так что вы можете использовать эту библиотеку. Чтобы использовать его в своем коде java, вы можете использовать любую оболочку.

Вот ссылка на эту оболочку: https://github.com/jhonnymertz/java-wkhtmltopdf-wrapper

, например:

Pdf pdf = new Pdf();

pdf.addPageFromString("<html><head><meta charset=\"utf-8\"></head><h1>Müller</h1></html>");
pdf.addPageFromUrl("http://www.google.com");

// Add a Table of Contents
pdf.addToc();

// The `wkhtmltopdf` shell command accepts different types of options such as global, page, headers and footers, and toc. Please see `wkhtmltopdf -H` for a full explanation.
// All options are passed as array, for example:
pdf.addParam(new Param("--no-footer-line"), new Param("--header-html", "file:///header.html"));
pdf.addParam(new Param("--enable-javascript"));

// Add styling for Table of Contents
pdf.addTocParam(new Param("--xsl-style-sheet", "my_toc.xsl"));

// Save the PDF
pdf.saveAs("output.pdf");
...