Ich bin HTML-Konvertierung von PDF-Konvertierung von arabischem Text von Itext 5.5 und XMLWorker.Itext 5.5 Konvertieren von HTML in PDF für RTL-Sprachen (Arabisch) funktioniert nicht auf Tomcat
Dies funktioniert einwandfrei, wenn Java-Programm ausgeführt wird. (es sprint Sprache in RTL wie erwartet) aber immer LTR drucken, wenn Sie das gleiche Programm in Tomcat ausführen. (Ausprobiert sogar mit einer fest codierten Zeichenkette, Datei innerhalb des Tomcat-Anwendungscodes).
Hier ist der Beispielcode. Genommen von 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();
}