我使用的罐子来自maven repo
我正在测试的代码来自以前的堆栈解决方案
我担心它可能过时了,因为图书馆被贬值了。测试以下代码时:
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。创建PDF(fos)
The type com.lowagie.text.DocumentException cannot be resolved. It is indirectly referenced from required .class files
有人能对此有所了解,或者建议在java中创建pdf文档的最佳方法吗?我有可用的XML和XHTML文档。
添加com时进行编辑。洛瓦吉。来自repo的文本库
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放弃了使用飞碟和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.
我使用与您提到的完全相同的依赖项,所以这应该不是问题。
但是,您肯定以错误的方式使用了方法setDocumentFromString。而不是:
renderer.setDocumentFromString( "C:/some/path/report.xhtml" );
输入参数必须是超文本标记语言本身,而不是它的路径。像这样:
renderer.setDocumentFromString( "<html><body>some content</body></html>" );
或者,(最好)使用setDocument方法,该方法以字符串或文件形式的路径作为输入。参见JavaDoc
我创建了一个简单的Maven项目,具有以下依赖性:
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>
我使用您上面发布的代码创建了一个测试类,并且能够毫无问题地编译它。这就是Eclipse显示为Maven依赖项的内容:
请注意,我必须更改这行代码才能工作:
renderer.setDocumentFromString("<html><body><strong>Hello</strong> <em>world</em>!</body></html>");
... 因为字符串应该是HTML内容本身,而不是文件的路径。
PDF看起来像这样:
我希望这有助于。。。
我正在使用飞碟生成pdf文件。我想要第一页,第二页是横向模式,其余的是纵向模式。所以,我这样做: 但是它会自动在第一个pdf文件中创建2个空白页?如何修复它?
我有下面给我的html,当我把这个转换成PDF使用飞碟,它不适合A4的肖像大小。如何生成横向pdf文件。 我使用下面给定的代码将html转换为pdf
我想用外部资源(jpg、css)从html创建pdf。 这是用于生成pdf File对象的代码,带有Flie Saucer和itext: 不幸的是,所有与https链接的资源都被忽略,而超文本传输协议资源运行良好。 编辑: 我扩展了iTextureAgent以拦截https调用资源,但出现了以下错误: 太阳安全供应商。证书路径。SunCertPathBuilderException:无法找到请求目
问题内容: 我意识到之前曾有人问过这个问题(我查看了所有解决方案并尝试了所有解决方案),但我仍在尝试生成一个PDF文件,该文件的页眉和页脚在每个页面上都重复出现。 我在使用R8时尝试了许多不同的方法来使其正常工作,但到目前为止没有任何效果。我测试过的一些方法是https://gist.github.com/626264,使用运行元素和边距框 http://pigeonholdings.com/pr
我使用飞碟R8生成PDF文件。PDF需要一个标题,该标题将在每一页上重复。标题将由用户指定,因此我无法确定其高度。我设法使页眉在每一页上重复,但问题是,如果页眉有多行文本,它不会动态地重新调整正文的高度,最终会与正文重叠。这是我的代码: 使用飞碟生成后,生成的PDF如下所示: 谁能帮我找到一个解决办法,使我的头球不与身体其他部位重叠?
我正在使用飞碟/iText生成报告。现在,报告有一个条件,即如果发生特定情况,报告应移动到pdf的下一页,并在pdf上添加数据,等等<问候Pawan