gpt4 book ai didi

Java 用 Flying Saucer 生成 PDF

转载 作者:行者123 更新时间:2023-12-01 10:15:26 29 4
gpt4 key购买 nike

我使用的jar来自maven repo

我正在测试的代码来自以前的堆栈 solution

我担心它可能已经过时了,因为库已经贬值了。测试时如下代​​码:

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;

import org.w3c.dom.Document;
import org.xhtmlrenderer.pdf.ITextRenderer;

public class test
{

public static void main(String[] args)
{
ITextRenderer renderer = new ITextRenderer();

// if you have html source in hand, use it to generate document object
renderer.setDocumentFromString( "C:/Users/Goran/Documents/Documents/Development/workspace/FlyingSaucer/data/input/report.xhtml" );
renderer.layout();

String fileNameWithPath = "C:/Users/Goran/Documents/Documents/Development/workspace/FlyingSaucer/data/output/" + "PDF-FromHtmlString.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();

System.out.println( "File 2: '" + fileNameWithPath + "' created." );
}

}

这一行出现以下错误:renderer.createPDF( fos );

The type com.lowagie.text.DocumentException cannot be resolved. It is indirectly referenced from required .class files

任何人都可以阐明这一点,或者建议用java创建pdf文档的最佳方法?我有 XML 和 XHTML 文档可用。

编辑 当我从 repo 添加 com.lowagie.text 库时

Exception in thread "main" java.lang.NoClassDefFoundError: org/xhtmlrenderer/extend/UserAgentCallback
at test.main(test.java:16)
Caused by: java.lang.ClassNotFoundException: org.xhtmlrenderer.extend.UserAgentCallback
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more

我是否使用了正确的库/最新的库?

拥有最新库或知道存储库的存储库的人可以链接它们吗?

编辑 2 放弃了使用 Flying Saucer 并按照建议使用 ApacheFop 的想法。当前错误是:

Mar 10, 2016 9:58:23 PM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400".
Mar 10, 2016 9:58:23 PM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400".
Mar 10, 2016 9:58:23 PM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #1.

最佳答案

我创建了一个简单的 Maven 项目,具有以下依赖关系:

    <dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>

我使用您上面发布的代码创建了一个测试类,并且能够毫无问题地编译它。这是 Eclipse 显示为 Maven 依赖项的内容:

enter image description here

请注意,我必须更改此行才能使代码正常工作:

renderer.setDocumentFromString("<html><body><strong>Hello</strong> <em>world</em>!</body></html>");

...因为字符串应该是 HTML 内容本身,而不是文件的路径。

PDF 看起来像这样:

enter image description here

希望对您有所帮助...

<小时/>

关于Java 用 Flying Saucer 生成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930872/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com