使用iText在PDF上无法正确打印数据
这是我的XHTML:
Type Custodian Name Relationship to Owner Percent Minor Name For the State of UTMA/UGMA QQQQQQQQQQQQQQQQQQQQQQQQQ MMMMMMMMMMMMMMMMMMMMMMMMMM Common Law Husband 15% RRRRRRRRRRRRRRRRRRRRRRRR BBBBBBBBBBBBBBBBBBBBBB DC
当我尝试使用此代码将其转换为PDF时:
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.DocumentException; public class Practice { public static void main(String[] args) throws IOException, DocumentException { String inputFile = "sample.xhtml"; String url = new File(inputFile).toURI().toURL().toString(); String outputFile = "firstdoc.pdf"; OutputStream os = new FileOutputStream(outputFile); ITextRenderer renderer = new ITextRenderer(); renderer.setDocument(url); renderer.layout(); renderer.createPDF(os); os.close(); } }
它给了我这个输出:
但是当我在浏览器中打开XHTML时,它是这样的:
我没有遇到问题。 我的主要目标是打破那个特定空间的话语。 我使用iText 2.0.8,我不能使用其他API,因为我的公司不允许这样做。 任何建议都会有很多帮助。
您使用的是几年前的iText版本。 为什么不使用当前版本并查看问题是否得到了解决? 在此期间,他们已经完成了大量的工作,将HTML和XML转换为PDF(反之亦然)。 事实上,我会说,这是他们所做的主要事情。
您正在使用Flying Saucer(org.xhtmlrenderer.pdf.ITextRenderer),这是一个将XHTML + CSS转换为PDF的库。 它使用iText进行PDF生成。
如果您的问题出在CSS支持中,您应该关注Flying Saucer。 在使用iText将呈现的内容转换为PDF之前完成XHTML和CSS呈现。