gpt4 book ai didi

tomcat - Itext 5.5 将 RTL 语言(阿拉伯语)的 HTML 转换为 PDF 不适用于 tomcat

转载 作者:行者123 更新时间:2023-11-28 23:21:03 24 4
gpt4 key购买 nike

我正在从 Itext 5.5 和 XMLWorker 编写 HTML to PDF Conversion of Arabic Text。

这在运行独立的 Java 程序时工作得很好。 (它按预期在 RTL 中打印语言)但是在 tomcat 中运行相同的程序时总是打印 LTR。 (甚至尝试使用硬编码字符串,tomcat 应用程序代码中的文件)。

这是示例代码。取自http://developers.itextpdf.com/question/how-convert-arabic-html-pdf

public void createPdf(File file)
throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer =
PdfWriter.getInstance(document, new FileOutputStream(file));
// step 3
document.open();
// step 4
// Styles
CSSResolver cssResolver = new StyleAttrCSSResolver();
XMLWorkerFontProvider fontProvider =
new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontProvider.register("/Users/ashish/Downloads/NotoNaskhArabicRegular.ttf");
CssAppliers cssAppliers = new CssAppliersImpl(fontProvider);
HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);
htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());

// Pipelines
PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);
HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

// XML Worker
XMLWorker worker = new XMLWorker(css, true);
XMLParser p = new XMLParser(worker);
String htmlContentAr ="<table><tr><td>String of Arabia</td><td dir=\"rtl\" style=\"font-family: Noto Naskh Arabic\">لورانس العرب</td></tr></table>";

//p.parse(new FileInputStream(HTML), Charset.forName("UTF-8"));
p.parse( new ByteArrayInputStream(htmlContentAr.getBytes(StandardCharsets.UTF_8)), Charset.forName("UTF-8"));

// step 5
document.close();
}

最佳答案

对不起。愚蠢的问题。问题是在我的 war 部署中,复制了 2 个版本的 itext,这导致了问题。

这适用于 5.5.5 Jar of Itext 和 Xmlworker。

关于tomcat - Itext 5.5 将 RTL 语言(阿拉伯语)的 HTML 转换为 PDF 不适用于 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43758109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com