使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF

我想使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF文件,但生成的PDF不包含组合字符并向后打印输出。

HTML:

          جميع الحقوق

Java摘录:

 String inputFile = "c:\\html.html"; String url = new File(inputFile).toURI().toURL().toString(); String outputFile = "c:\\html.pdf"; OutputStream os = new FileOutputStream(outputFile); ITextRenderer renderer = new ITextRenderer(); renderer.getFontResolver().addFont("c://ARIALUNI.TTF", BaseFont.IDENTITY_H,BaseFont.EMBEDDED); renderer.setDocument(url); renderer.layout(); renderer.createPDF(os); os.close(); 

实际PDF结果: 实际结果

预期PDF结果: 预期结果

我该怎么做才能获得正确的结果?

当我使用阿拉伯字体时,我遇到了类似的对齐问题。 阿拉伯语是一种RTL语言。 您需要特定的jar来以RTL语言生成PDF。 目前,当您尝试生成PDF时,模式是正常LTR,因为您正在获得当前输出。

是的,它与RTL有关,但如果您没有选择与字体相关的选项,那么您可以使用Arial字体,其中包含您需要的所有字符。 点击此链接https://stackoverflow.com/a/47801584/3335776查看代码。

飞碟默认字体有些问题

你可以在这里找到完整的文章

Interesting Posts