Tag: xmlworker

iTextPdf 5.5.1 – 使用自定义字体将大型HTML转换为单页PDF

我正在使用包含CSS样式的HTML文档。 我想创建一个带有自定义字体的pdf文件和根据文档内容的高度。 我按照这个实现调整了基于HTML数据量的页面大小但它需要单独的HTML和CSS。 我将整个文档字符串作为HTML提供,并将CSS String保留为null。 它给了我例外。 而且如果有任何例子在Java中实现自定义字体请帮忙。 Proforma-Quittung 27.03.17 11:18 2017/2432 @font-face { font-family: “Roboto Mono”; src: url(‘RobotoMono-Bold.ttf’) format(‘ttf’), url(‘RobotoMono-BoldItalic.ttf’) format(‘ttf’), url(‘RobotoMono-Italic.ttf’) format(‘ttf’), url(‘RobotoMono-Light.ttf’) format(‘ttf’), url(‘RobotoMono-LightItalic.ttf’) format(‘ttf’), url(‘RobotoMono-Medium.ttf’) format(‘ttf’), url(‘RobotoMono-MediumItalic.ttf’) format(‘ttf’), url(‘RobotoMono-Regular.ttf’) format(‘ttf’), url(‘RobotoMono-Thin.ttf’) format(‘ttf’), url(‘RobotoMono-ThinItalic.ttf’) format(‘ttf’); } body { font-family: “Roboto Mono”; font-size: 10pt; width: 100%; margin: 0pt; } .documentType { text-transform: uppercase; } […]

解析HTML片段并添加到PdfPTable

我正在创建一个由几个PdfPTable组成的PDF,其中一些PdfCell由简单的短语组成,其他的则需要解析HTML片段。 为了确保解析的HTML添加了所需的样式,并在正确的位置,我已将其存储在段落中,然后将其添加到PdfPCell。 但是,这样做会导致我在处理列表和引号等HTML标记时遇到问题。 下面是我正在做的一个粗略的例子,我该怎么做才能正确处理HTML列表,引号等? 例如:iText正确处理HTML列表并知道将其转换为iText List / ListItem。 我需要将该List添加到我的PdfTable中。 我知道将列表元素放入段落中取消了正确的样式(整个列表最终都在一行而没有编号)并且想知道处理这个的正确方法 PdfPTable table = new PdfPTable(1); table.addCell(parseHtmlToParagraph(htmlString)); table.addCell(new Phrase(“Name” + user.getName())); public Paragraph parseHtmlToParagraph(String str) throws IOException { StringReader body = new StringReader(str); final Paragraph para = new Paragraph(); XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() { @Override public void add(Writable w) { if (w instanceof WritableElement) { List elements = […]

将PdfDiv添加到段落中

这是与表单元格中的列表项相关联的主题未格式化 。 我正在使用XmlWorker处理格式化控件的HTML输出(来自Dojo的dijit / Editor)。 有一些块(当你使用居中或边距格式化器时)像这样:  My centered Para  但是,当我将它们添加到像这里添加到表中的Paragraph中时: PdfPCell htmlCell = new PdfPCell(); htmlCell.setBackgroundColor(new BaseColor(213, 226, 187)); htmlCell.addElement(html2Para(html)); htmlCell.setPaddingBottom(5); htmlCell.setPaddingLeft(5); table.addCell(htmlCell); private Paragraph html2para(String html) { final Paragraph para = new Paragraph(); try { XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() { @Override public void add(Writable wri) { if (wri instanceof WritableElement) { List elems = ((WritableElement) wri).elements(); […]

如何使用自定义字体从servlet使用iText + XMLWorker创建PDF?

使用iText / XMLWorker示例(主要是这一个 ),我可以轻松编写能够使用我自己的额外字体从HTML代码创建PDF文件的简单应用程序,但是一旦尝试在某些Web服务代码中使用我的东西,我就结束了例外: Table ‘name’ does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf ExceptionConverter: com.itextpdf.text.DocumentException: Table ‘name’ does not exist in file:/C:/work/MyServer/target/classes/fonts/My%20Font.ttf …似乎指出在Web服务上下文中,无法按预期加载字体文件。 这是我的大部分代码: public HtmlRenderer(final String css, final String[] fontPaths) { // fontPaths = { // “/fonts/My Font.ttf”, // “/fonts/My Other Font.ttf”, // … // }; // CSS cssResolver = new StyleAttrCSSResolver(); if (css != null) […]