2014-05-21 2 views
3

J'essaye de convertir une chaîne HTML avec du texte arabe de Itext 5.5 & XMLWorker. Après la conversion, les caractères arabes sont vides.HTML vers PDF Conversion de texte arabe à partir de Itext 5.5 et XMLWorker

Le Code Snippet utilisé est le suivant:

public class CreateArabic { 

    public static void main(String args[]) { 

     try { 

      Rectangle pagesize = new Rectangle(8.5f * 72, 11 * 72); 

      Document document = new Document(pagesize, 72, 72, 72, 72); 

      PdfWriter writer = PdfWriter.getInstance(document, 
        new FileOutputStream("c:\\report.pdf")); 

      writer.getAcroForm().setNeedAppearances(true); 

      document.open(); 

      FontFactory.registerDirectories(); 
      Font font = FontFactory.getFont("C:\\damase.ttf", 
        BaseFont.IDENTITY_H, true, 22, Font.BOLD); 


      document.open(); 



      XMLWorkerHelper helper = XMLWorkerHelper.getInstance(); 
      // CSS 
      CSSResolver cssResolver = new StyleAttrCSSResolver(); 
      CssFile cssFile = helper.getCSS(new FileInputStream(
      "D:\\Itext_Test\\Test\\src\\test.css")); 
      cssResolver.addCss(cssFile); 

      // HTML 
      XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(); 
      fontProvider.getFont("C:\\damase.ttf", BaseFont.IDENTITY_H,BaseFont.EMBEDDED); 
      fontProvider.register("C:\\damase.ttf"); 


      CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); 
      HtmlPipelineContext htmlContext = new HtmlPipelineContext(
      cssAppliers); 
      htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); 

      PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer); 
      HtmlPipeline html = new HtmlPipeline(htmlContext, pdf); 
      CssResolverPipeline css = new CssResolverPipeline(cssResolver, 
      html); 

      XMLWorker worker = new XMLWorker(css, true); 

      XMLParser p = new XMLParser(worker); 

         String htmlString = "<html><head></head><body>"+"اب"+"</body></html>"; 

ByteArrayInputStream is = new ByteArrayInputStream(htmlString.getBytes("UTF-8")); 

p.parse(is, Charset.forName("UTF-8")); 



      document.close(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 

     } 

    } 
} 
+0

Modifier votre code, il est pas ajouté correctement. – Arpan

+0

Quel est le problème? S'il vous plaît, dites. – sheena

Répondre

1

J'ai même question, la différence est juste que je l'ai utilisé la police turque et qui manquent: -

s'il vous plaît voir ma réponse solution pour cette

espoir vous aide Cordialement,

Questions connexes