我正在使用虚拟html字符串,并试图创建pdf从…一旦它尝试创建ITextRenderer对象,我就会得到"java.lang。NoClassDefFoundError: javax/xml/转换/TransformerConfigurationException"
Document doc = Jsoup.parse("<html><head><title>Pdf Generation..!</title></head><body><p>Pdf generated using flying saucer pdf openpdf!!!!</p></body></html>","UTF-8");
doc.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
try (OutputStream os = new FileOutputStream("output.pdf")){
ITextRenderer renderer = new ITextRenderer();
SharedContext cntxt = renderer.getSharedContext();
cntxt.setPrint(true);
cntxt.setInteractive(false);
renderer.setDocumentFromString(doc.html(), "");
renderer.layout();
renderer.createPDF(os);
logger.info("PDF Generation using OpenPDF Done Successfully!!!");
}
catch(Exception ex){
ex.printStackTrace();
}
这是一个maven原型项目,它使用的依赖项是,
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-openpdf</artifactId>
<version>9.1.20</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-core</artifactId>
<version>9.1.20</version>
</dependency>
我看过一些共享的建议,但没有一个可以解决这个问题…
检查BND Maven插件中的Import-Package指令。要么显式导入javax.xml.transform,要么导入所有内容(*)
javax.xml.transform。*是一个提供的API,它存在于许多bundle定义中。正确的Import-Package应该包括如下内容:
javax.xml.transform,version=2.1.0 from org.apache.felix.framework (0)