当flying-saucer使用模板文件加载html代码 生成PDF时,如果css样式使用了相对路径这会出现加载不上的问题,

类似问题 http://stackoverflow.com/questions/9722038/flying-saucer-itext-pdf-in-servlet-not-finding-css-file

<link href="/css/home.css" type="text/css" rel="stylesheet"/> 

解决方法:

1.将stylesheet 的连接地址写成完整的URL地址,如http://..../css/home.css即可

<link href="http://..../css/home.css" type="text/css" rel="stylesheet"/> 
本应用地址生成代码:
HttpServletRequest request = getRequest();
		String path = request.getContextPath();
		String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path
				+ "/";

2.也可以写成是绝对地址

<link href="file:/E:\\home.css" type="text/css" rel="stylesheet"/> 

3.可以再读取模板是就将css读出来,拼接模板文件中

buf.append("<head><style>");
buf.append(readFile(getServletContext().getRealPath("/PDFservlet.css"), "UTF-8"));
buf.append("</style></head>");
4.使用document生成PDF时,可以设置相对url地址
  • Your document has <link href="my.css" ..
  • The css is located at http://example.com/something/my.css
  • You should call renderer.setDocument(doc, "http://example.com/something/page.html");
public static void html To PDF (String pdf Path, String html Path) throws Exception { try { IText Renderer renderer = new IText Renderer(); IText FontResolver fontResolver = renderer.getFontResolver(); OutputStre 验证XML Worker支持代码:Tags class。如果支持标记,在这种情况下为true,请查看默认实现。这是由the HorizontalRule class处理的。但是,我们发现不支持您的用例,因此一种方法是将该代码用作蓝图。 (如下所示)您还可以继承特定的标记类并覆盖End()方法as done here。无论哪种方式,您所做的只是实现自定义标签处理器。如果支持不标记,则需要通过继承Ab... 使用的jar文件xmlworker-5.5.11.jar itext pdf -5.5.11.jar以下为测试代码package com.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io. File ;import java.io. File InputStream;impor... 我们的应用程序类似,我们有一个RTF编辑器(TinyMCE),输出是通过 iText PDF 生成 PDF 。我们希望 HTML 尽可能整洁,理想情况下,仅使用 iText HTML Worker支持的 HTML 标签。 TinyMCE可以执行其中的一些操作,但是在某些情况下,最终用户可以提交确实被搞砸的 HTML ,这可能会破坏 iText 生成 PDF 的能力。我们结合使用了jSoup和jTidy + CSS Parser来... 我是一个.NET开发人员,所以该代码是在C#。但是你应该可以轻松地翻译以下内容。 iText 是一个 PDF 优先库,而[X] HTML 解析相当复杂,所以它在这方面不是全功能。每当解析[X] HTML ,事情不会你期望的特定标签的方式,你应该遵循的基本步骤是:验证XML Worker支持标签:Tags class。如果标签是支持,在这种情况下,这是真实的,看看默认的实现。这是由the HorizontalRul... 我试图通过使用其方法在 iText 的帮助下将 html 转换为 pdf Html Converter.convertTo Pdf ( html String, pdf Document, converterProp);但似乎这项服务并不尊重 html 中定义的 css 属性。这是我的 html 字符串String html = ""+ ""+ ""+ "* {-webkit-box-sizing: border-box;-moz-... <br />Flaying Saucer 是一个纯Java渲染X HTML + CSS 2.1的渲染器,包括tables, forms, the box model, lists, selectors,   images, and text formatting.不支持脚本,它可以输出为image格式,或 PDF 格式。<br />最简单的应用就是写一个X HTML 并指定 CSS ,用它按格式渲染这个文件,用于显示或存为图片。<br /> <br />index.x html 里面带了 CSS 格式。<br /> <br />1、例