Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用iText创建波斯语PDF_Java_Pdf_Netbeans - Fatal编程技术网

Java 如何使用iText创建波斯语PDF

Java 如何使用iText创建波斯语PDF,java,pdf,netbeans,Java,Pdf,Netbeans,我知道很多人以前可能问过这个问题。几乎所有的书我都读过,但都不能帮我解决问题。 我正在使用iTextJava库生成一个波斯PDF。我正在使用下面的 如何使用PdfWriter.RUN\u DIRECTION\u RTL 代码: String ruta = txtruta.getText(); String contenido= txtcontenido.getText(); try { FileOutputStream archivo = new FileOutp

我知道很多人以前可能问过这个问题。几乎所有的书我都读过,但都不能帮我解决问题。 我正在使用iTextJava库生成一个波斯PDF。我正在使用下面的

如何使用
PdfWriter.RUN\u DIRECTION\u RTL

代码:

String ruta = txtruta.getText();
    String contenido= txtcontenido.getText();
    try {
        FileOutputStream archivo = new FileOutputStream(ruta+".pdf");
        Document doc = new Document(PageSize.A4,50,50,50,50);
          PdfWriter.getInstance(doc, archivo);
          doc.open();
          BaseFont bfComic = BaseFont.createFont("D:\\Font\\B Lotus.ttf", BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
          Font font = new Font(bfComic, 12,Font.NORMAL);
           doc.add(new Paragraph(contenido,font));
       doc.close();
       JOptionPane.showMessageDialog(null,"ok");

    } catch (Exception e) {
        System.out.println("Eroor"+e);    
    }
输出:
Document.add()
不支持RTL文本。您必须使用
ColumnText.setRunDirection
PdfPTable.setRunDirection

我没有使用过波斯语。但是,我认为您的问题在于您使用的字体(B Lotus.ttf)。在大多数情况下,使用注册的Unicode字体可以解决问题。请使用其他字体重试

您还可以使用以下代码RTL文本短语

PdfPCell pdfCell=新的PdfPCell(新短语(contenido,myunicordepersianfont))
pdfCell.setRunDirection(PdfWriter.RUN\u DIRECTION\u RTL)


您将找到一个。

我成功了

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

      JFileChooser dlg = new JFileChooser();
               int option = dlg.showSaveDialog(this);
               if(option==JFileChooser.APPROVE_OPTION){
                  File f = dlg.getSelectedFile();
                  txtaddress.setText(f.toString());
               }


}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         


    String ruta = txtaddress.getText();
    String con= content.getText();
    try {
          FileOutputStream archivo = new FileOutputStream(ruta+".pdf");
          Document doc = new Document(PageSize.A4,50,50,50,50);
          PdfWriter Writer = PdfWriter.getInstance(doc, archivo);
          doc.open();
          LanguageProcessor al = new ArabicLigaturizer();
          Writer.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
          BaseFont bfComic = BaseFont.createFont("D:\\Font\\titr.ttf", BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
          Font font = new Font(bfComic, 12,Font.NORMAL);
          Paragraph p = new Paragraph(al.process(con),font);
          p.setAlignment(Element.ALIGN_RIGHT);
          doc.add(p);
          doc.close();
          JOptionPane.showMessageDialog(null,"Yes");

    } catch (Exception e) {
           System.out.println("Eroor"+e);    
    }




}     

你能问问题主体中的确切问题吗?你越是解释你的问题,就越有机会得到很大的帮助:)祝你好运!我想在pdfMy问题中保存时使用RTL文本现在RTL文本我不知道如何使用ColumnText.setRunDirection,PdfPTable.setRunDirection plz帮助我。请为我写代码谢谢如果你发现这个答案解决了你的问题,请友好地投票支持这个答案或将其标记为“已接受”。老实说,在这里我想在网站上获得一些声誉。:-)