我正在使用iTextG 5.5.3生成一个波斯语pdf文件。因此,我使用了以下代码:
Document document = new Document(PageSize.A4);
PdfWriter.getInstance(document, pdfFileOutputStream);
document.open();
Paragraph p1 = new Paragraph("سلام این متن برای تست است.");
BaseFont farsiFont = BaseFont.createFont("assets/fonts/BMitra.ttf", "UTF-8", BaseFont.EMBEDDED);
Font paraFont= new Font(farsiFont);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
PdfPTable table = new PdfPTable(1);
PdfPCell cell = new PdfPCell(p1);
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
table.addCell(cell);
document.add(table);
document.close();但是波斯字符没有写入输出文件。我还读过这个答案。
发布于 2014-10-22 15:28:31
使用这个答案,我将代码更改为:
Paragraph p1 = new Paragraph();
BaseFont farsiFont = BaseFont.createFont("assets/fonts/BMitra.ttf", "UTF-8", BaseFont.EMBEDDED);
Font paraFont= new Font(farsiFont);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
p1.add("سلام این متن برای تست است.");而且它是有效的。
https://stackoverflow.com/questions/26511031
复制相似问题