首页 > 解决方案 > 通过 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);
    }
}

标签: javahtmlpdfitextitext7

解决方案


推荐阅读