Voglio convertire una pagina HTML che contiene caratteri arabi in un file PDF utilizzando FlyingSaucer, ma il PDF generato non contiene caratteri combinati e stampa l'output all'indietro.Convertire la pagina HTML contenente caratteri arabi in PDF utilizzando FlyingSaucer
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body style="font-size:15px;font-family: Arial Unicode MS;">
<center style="font-size: 18px; font-family: Arial Unicode MS;">
<b>
<i style="font-family: Arial Unicode MS;">
جميع الحقوق<br />
</i>
</b>
</center>
</body>
</html>
Java Estratto:
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();
Actual PDF Risultato:
atteso PDF Risultato:
Che cosa posso fare per ottenere il risultato giusto?
In realtà si sta tentando di convertire un'immagine di tela in pdf ??? – CoderNeji
Questo mi sembra un insetto di un disco volante. I caratteri unicode arabi si trovano in un intervallo ben definito e sono (ovviamente) noti come RTL (da destra a sinistra). Chiaramente il browser sta visualizzando RTL, ma non lo è il disco volante. Segnala l'errore a google. –
Hai una soluzione per il formato arabo? – Hana90