2014-11-02 7 views
7

Ich möchte eine HTML-Seite, die arabische Zeichen enthält, mit FlyingSaucer in eine PDF-Datei konvertieren, aber das generierte PDF enthält keine kombinierten Zeichen und druckt die Ausgabe rückwärts.Konvertieren von HTML-Seite mit arabischen Zeichen in PDF mit 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;"> 
 
        &#x062C;&#x0645;&#x064A;&#x0639; &#x0627;&#x0644;&#x062D;&#x0642;&#x0648;&#x0642;<br /> 
 
       </i> 
 
      </b> 
 
     </center> 
 
    </body> 
 
</html>

Java Auszug:

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 Ergebnis:actual result

Expected PDF Ergebnis:expected result

Was kann ich tun, das richtige Ergebnis zu erhalten?

+0

Eigentlich versuchen Sie eine Leinwand Bild in PDF zu konvertieren ??? – CoderNeji

+0

Das sieht für mich wie eine Flieger-Untertassen-Wanze aus. Arabische Unicode-Zeichen liegen in einem klar definierten Bereich und sind (offensichtlich) als RTL bekannt (von rechts nach links). Klar, der Browser rendert RTL, aber fliegende Untertasse ist es nicht. Melden Sie den Fehler bei Google. –

+0

Hatten Sie eine Lösung für das arabische Format? – Hana90

Antwort

0

Während ich mit arabischen Schriftart arbeitete, sah ich ähnliche Ausrichtung Problem. Arabisch ist eine RTL-Sprache. Sie benötigen bestimmte Jars, um PDFs in einer RTL-Sprache zu generieren. Derzeit, wenn Sie versuchen, PDF zu generieren, ist der Modus normal LTR, wegen dem Sie aktuelle Ausgabe erhalten.

+0

Wie repariere es?? – Hana90