java - 通过 iText html2pdf 将 Html 转换为 PDF 后阿拉伯文本被反转
问题描述
我正在尝试使用 iText html2pdf 将 HTML 页面转换为 PDF 文件,但我发现转换后阿拉伯文本正在反转。在 HTML 页面上,文本以“#”开头,但在 PDF 上,文本以“#”结尾,字符完全错误。查看以下图片了解更多详情: HTML 页面 PDF 页面
有谁知道如何解决这个问题?
测试.html
<!DOCTYPE html>
<html>
<head>
<meta content="text/html" charset="utf-8">
<title>Arabic testing</title>
<style type="text/css">
body {
direction: rtl;
}
</style>
</head>
<body>
<div>حاوية #</div>
</body>
</html>
@Test
public void convert() {
File htmlFile = new File("/Users/scott/Downloads/pdf/test.html");
File pdfFile = new File("/Users/scott/Downloads/pdf/test.pdf");
try {
PdfWriter writer = new PdfWriter(pdfFile.getPath());
PdfDocument pdfDoc = new PdfDocument(writer);
pdfDoc.setTagged();
pdfDoc.setDefaultPageSize(PageSize.A4.rotate());
ConverterProperties converterProperties = new ConverterProperties();
converterProperties.setCharset(StandardCharsets.UTF_8.name());
FontProvider fontProvider = new DefaultFontProvider(false, false, false);
fontProvider.addFont("/Users/scott/Downloads/pdf/Amiri-Regular.ttf");
converterProperties.setFontProvider(fontProvider);
HtmlConverter.convertToPdf(new FileInputStream(htmlFile), pdfDoc, converterProperties);
} catch (IOException e) {
log.error("Render PDF failed, ", e);
}
}
解决方案
推荐阅读
- angular - angular2中的剑道网格-如何停止绑定网格
- jpa - 引起:java.lang.StackOverflowError: null Mapstruct
- nginx - 我的子域无法使用我的 VPS 和 NGINX 来托管应用程序
- css - 使用 Bootstrap 自定义断点
- ios - UIPageViewController 内的水平 UIScrollView
- javascript - Reactjs - 如何在编辑表单期间防止分配 null
- java - 使用 Saxon 对 Mei 文件 (xml) 运行 XSL 转换
- windows - cmd和资源管理器启动可执行文件之间的区别
- reactjs - 如何在 CKeditor5-ReactJS 或 .Net 中添加 MathType 和 ChemType 插件?
- c - C:返回本地结构有效但返回本地数组无效?