Docker 抛出异常 - Html2Pdf 库
Docker throws exception - Html2Pdf library
我使用 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
我检查了 docker 容器的 /tmp 文件夹,它包含所需的文件作为例外
据我所知,您正在为 html2pdf 库苦苦挣扎。
但是您忘记了这个库在内部使用 wkhtmltopdf。所以你可以使用那个库。要在您的 java 代码中使用它,您可以使用任何包装器。
这是包装器的 link: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");
我使用 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
我检查了 docker 容器的 /tmp 文件夹,它包含所需的文件作为例外
据我所知,您正在为 html2pdf 库苦苦挣扎。
但是您忘记了这个库在内部使用 wkhtmltopdf。所以你可以使用那个库。要在您的 java 代码中使用它,您可以使用任何包装器。
这是包装器的 link: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");