Lorsque j'utilise ITextRenderer convertir html à PDF.this est mon codeproblèmes arabes avec la conversion HTML au format PDF à l'aide ITextRenderer
ByteArrayOutputStream out = new ByteArrayOutputStream();
ITextRenderer renderer = new ITextRenderer();
String inputFile = "C://Users//Administrator//Desktop//aaa2.html";
String url = new File(inputFile).toURI().toURL().toString();
renderer.setDocument(url);
renderer.getSharedContext().setReplacedElementFactory(
new B64ImgReplacedElementFactory());
// 解决阿拉伯语问题
ITextFontResolver fontResolver = renderer.getFontResolver();
try {
fontResolver.addFont("C://Users//Administrator//Desktop//arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
} catch (DocumentException e) {
e.printStackTrace();
}
renderer.layout();
OutputStream outputStream = new FileOutputStream("C://Users//Administrator//Desktop//HTMLasPDF.pdf");
renderer.createPDF(outputStream, true);
/*PdfWriter writer = renderer.getWriter();
writer.open();
writer.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
OutputStream outputStream2 = new FileOutputStream( "C://Users//Administrator//Desktop//HTMLasPDFcopy.txt");
renderer.createPDF(outputStream2);*/
renderer.finishPDF();
out.flush();
out.close();
PDF Actual Résultat:
PDF Résultat attendu:
Comment faire une ligature arabe?
En effet, l'OP utilise un outil tiers appelé « soucoupe volante. » Flying Saucer utilise une ancienne version iText qui ne supporte pas les ligatures. Voir [Comment convertir du HTML contenant des caractères arabes/hébraïques en PDF?] (Https://developers.itextpdf.com/content/itext-7-converting-html-pdf-pdfhtml/chapter-7-frequently-asked-questions- A propos de-pdfhtml/comment-convert-html contenant-arabichebrew-caractères-pdf) dans la section FAQ du HTML officiel tutoriel PDF. –