- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在使用 iText 和 XMLWorker 进行 HTML 到 pdf 的转换(Java),如下所示
public void convertHtmlToPdf(StringBuilder content, String path) throws Exception {
String methodName = "convertHtmlToPdf";
try {
XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontProvider.register("C:/Users/Aaryan/Downloads/arial.ttf");
final OutputStream file = new FileOutputStream(new File(path));
final Document document = new Document();
final PdfWriter writer = PdfWriter.getInstance(document, file);
document.open();
final TagProcessorFactory tagProcessorFactory = Tags.getHtmlTagProcessorFactory();
tagProcessorFactory.removeProcessor(HTML.Tag.IMG);
tagProcessorFactory.addProcessor(new ImageTagProcessor(), HTML.Tag.IMG);
final CssFilesImpl cssFiles = new CssFilesImpl();
cssFiles.add(XMLWorkerHelper.getInstance().getDefaultCSS());
final StyleAttrCSSResolver cssResolver = new StyleAttrCSSResolver(cssFiles);
final HtmlPipelineContext hpc = new HtmlPipelineContext(new CssAppliersImpl(fontProvider));
hpc.setAcceptUnknown(true).autoBookmark(true).setTagFactory(tagProcessorFactory);
final HtmlPipeline htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(document, writer));
final Pipeline<?> pipeline = new CssResolverPipeline(cssResolver, htmlPipeline);
final XMLWorker worker = new XMLWorker(pipeline, true);
final Charset charset = Charset.forName("UTF-8");
final XMLParser xmlParser = new XMLParser(true, worker, charset);
InputStream is2 = new ByteArrayInputStream(content.toString().getBytes());
xmlParser.parse(is2, charset);
is2.close();
document.close();
file.close();
} catch (Exception ex) {
System.out.println("Exception in Class::" + className + "::Method::" + methodName + "::" + ex.getMessage());
ex.printStackTrace();
throw new Exception(ex);
}
}
PDFGeneration 工作正常。为 pdfConversion 解析的 HTML 内容具有特殊字符作为适当的实体,如下所示
StringBuilder content = new StringBuilder();
content.append("<html><body style=\"font-size:12.0pt; font-family:Arial\">
<p>Testes → → Vasa efferentia → Kidney → Seminal Vescile</p></body></html>");
生成的 pdf 显示“?”相反,使用适当的特殊字符(箭头符号)。 “睾丸??瓦萨传出?肾脏?精囊”。我哪里错了。请指导我。
最佳答案
该解决方案几乎与代码/类/对象无关......
您需要将 CSS“font-family”设置为与您请求的输出字符集相匹配的内容
例如,如果“p”html 标签内有特殊字符,那么您可以使用所需的字体系列设置以下样式:
<HEAD>
<style>
p {
font-family: -good-font-family-
}
</style>
</HEAD>
关于java - 如何使用 iText 和 XMLWorker 在 HTML 到 pdf 转换期间呈现特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57537623/
我有 2 个(或更多)嵌套表:第一个用于布局目的,其他是带有数据的普通表。 我使用第一个表是因为我需要在每个页面中重复页眉和页脚,所以我使用 repeat-header:yes; repeat-foo
如果你检查这段代码: Blah Blah Bla
我正在尝试从 HTML 生成 PDF,生成 PDF 后,在第二步中,在左上角的每个页面上添加水印图像,并在右上角添加某种引用。 但这仅在第 2...n-1 页是必需的。我找到了一个解决方案,即在第一段
我正在使用 iText 和 XMLWorker 生成 PDF。问题是我们需要为页码为 PDF 的目录生成目录。我在列表中有 mt 部分标题。使用此列表,我可以生成没有页码的目录。但我们的要求是我们也需
我一直在使用 iTextSharp 将 MVC View 转换为 pdf。该 View 使用内联样式。以下代码一切正常但解析速度很慢- using (var ms = new Memo
我正在使用以下代码在我的 WPF 应用程序中使用 iTextSharp XMLWorker 解析 HTML 字符串: var css = ""; using (var htmlMS = new Mem
我想使用 HTML 和动态图像创建动态 PDF 文档。我的代码适用于标准 HTML 和图像的完整路径,但是当我尝试将图像内联嵌入到文档中时,出现错误 Exception Details: System
XmlWorker 无法识别表格单元格上的边框底部。 这是我的代码: Your name
当我运行此代码时,文档顶部有一个边距。 我不知道如何摆脱它。我正在运行最新版本的 iText 和 XMLWorker。 Document document = new Document(PageSiz
在 IText XMLWorker 中处理嵌入的图像。 有没有办法在 XMLWorker 中处理嵌入式 (Base64) 图像?在版本 5.3.5我使用的 ImageProvider 不再工作(之前引
我使用xmlWorker最新版本(5.4.3)将XHTML文件转换为PDF。当 TABLE TAG 位于 DIV TAG 内部且表格超出页面时,表格将被截断... 这在我看来很奇怪。或者不是? 有什么
我正在将 ElementList 中的元素添加到 PdfPCell。这些元素可以是从简单的文本短语到要点列表的任何内容。但是,将这些元素打印到 pdf 的字体太大。所以,我的问题是:如何调整解析为 p
如何使用 XMLWorker 将我的 PDF 正文字体大小设置为“6.6pt”? 我已经实现了使用 HTMLWorker 如下所示, var style = new StyleSheet(); sty
我正在尝试在 Java 中使用 iText 7。想要将 HTML/XHTML 转换为 PDF。 显然 xmlworker.jar 在 iText 7 core 中不存在。 iText 7 的替代品是什
我正在使用 Itext 和 xmlworker 创建 PDF。我的问题是我想在新页面中创建内容。下面是我的代码。 File file = new File("D:/PDFFiles/Sathesh.p
有人可以提供一个在 iTextSharp (C#) 中使用 XMLWorkerHelper 将 HTML 解析为元素列表的示例。 文档中给出的 JAVA 版本是: XMLWorkerHelper.ge
我正在使用 itext-pdf 5.4 创建 PDF 文档。在这个过程中,我打算创建一些 HTML,然后使用 xmlworker 附加组件进行解析。但是,不管事实如何,我都在指定 .. 或 我看不到
世界我使用 XMLWorker (5.5.6) 将包含阿拉伯字符的 XHTML 页面转换为 PDF。一切正常,但“分页前”不起作用!这是我的 html 页面: Décla
我创建了一个简单的 JavaFX (2.2) FXML 项目。我正在尝试将 html 字符串转换为不同的元素,并将它们添加到 iText 生成的 PDF 文档中的段落中。由于 HTMLWorker 已
我们使用 iText 从 Java 代码生成 PDF 文件,这在大多数情况下都运行良好。几天前,我们开始生成 PDF/A,而不是需要嵌入所有字体的普通 PDF 文件。 iText Document主要
我是一名优秀的程序员,十分优秀!