Java 如何使用iText创建波斯语PDF
我知道很多人以前可能问过这个问题。几乎所有的书我都读过,但都不能帮我解决问题。 我正在使用iTextJava库生成一个波斯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
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帮助我。请为我写代码谢谢如果你发现这个答案解决了你的问题,请友好地投票支持这个答案或将其标记为“已接受”。老实说,在这里我想在网站上获得一些声誉。:-)