如何在itext5 android的底部表中写(波斯语)或阿拉伯语?

时间:2017-05-15 22:17:15

标签: java android itext arabic persian

enter image description here

照片中的问题

如何在itext5 android的底层表中编写(波斯语)?

我的问题是,在底部表中,字符是分开的。

如何在底部表中编写正确的波斯语?

我的代码是:

Phrase p ;
public void createPdf(String dest) throws Exception {

    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    Font f = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED,12);

    PdfPTable table = new PdfPTable(new float[] { 2, 1, 2 });


    table.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
    table.getDefaultCell().setPaddingBottom(10);
    table.addCell(new Phrase(":سن", f));
    table.addCell(new Phrase(":وزن", f));
    table.addCell(new Phrase(":مکان", f));
    table.setHeaderRows(1);
    PdfPCell[] cells = table.getRow(0).getCells();
    for (int j=0;j<cells.length;j++){
        cells[j].setBackgroundColor(BaseColor.GRAY);
    }
    for (int i=1;i<45;i++){

        table.addCell(new Phrase("سن"+i, f));
        table.addCell(new Phrase("وزن"+i, f));
        table.addCell(new Phrase("مکان"+i, f));

    }


    document.add(table);
    p = new Phrase("خبر", f);
       String b="در پی برخی خبرسازی ها و شبهه افکنی ها در خصوص ارسال پیامک بررسی برقراری مجدد یارانه برای گروهی از هموطنان، دبیرخانه شورای اطلاع رسانی دولت ضمن تکذیب موارد مطرح شده تاکید کرد که بررسی و برقراری مجدد یارانه افراد معترض که طبق قانون مشمول دریافت یارانه محسوب می شوند اقدامی متعارف و بر اساس روال ماههای گذشته بوده است";
   // p.add(new Phrase("در پی برخی خبرسازی ها و شبهه افکنی ها در خصوص ارسال پیامک بررسی برقراری مجدد یارانه برای گروهی از هموطنان، دبیرخانه شورای اطلاع رسانی دولت ضمن تکذیب موارد مطرح شده تاکید کرد که بررسی و برقراری مجدد یارانه افراد معترض که طبق قانون مشمول دریافت یارانه محسوب می شوند اقدامی متعارف و بر اساس روال ماههای گذشته بوده است", f));
    String name1 = new String(b.getBytes(), "UTF-8");
    document.add(new Phrase(name1,f));

    ColumnText canvas = new ColumnText(writer.getDirectContent());
    canvas.setSimpleColumn(40, 590, 650, 580);
    canvas.setRunDirection(PdfWriter.RUN_DIRECTION_LTR);
    canvas.addElement(p);


    canvas.go();

    document.close();
}

什么是问题?

0 个答案:

没有答案