如何在Android中以乌尔都语生成PDF

时间:2019-06-27 08:59:14

标签: android fonts itext urdu

有人可以告诉我如何用urdu或除英语以外的任何其他语言生成pdf报告吗?我只想要乌尔都语的标题(硬编码)。所有其他字段均为英文。那么我该如何用乌尔都语书写标题呢?我正在尝试的所有方法均无效。已创建pdf,但未显示urdu。这是我的代码:

private void savePDF(){
    Document mDoc = new Document();
    fileName = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.getDefault()).format(System.currentTimeMillis());
    filePath = Environment.getExternalStorageDirectory() + "/Cattle App/" ;
    try{
        File dir = new File(filePath);
        if (!dir.exists())
            dir.mkdirs();

        file = new File(dir, selName + "_" +fileName+".pdf");
        FileOutputStream fOut = new FileOutputStream(file);
        PdfWriter.getInstance(mDoc,fOut);
        mDoc.open();

        mDoc.addTitle("Cattle App");
        mDoc.addSubject("Add Buyer and sellers");
        mDoc.addKeywords("Cattle App");
        mDoc.addAuthor("Softix");
        mDoc.addCreator("Fahad");

        Paragraph preface = new Paragraph();
        Paragraph repTitle = new Paragraph("الیکٹرونک ریکارڈ مینیجمنٹ سسٹم", catFont);
        repTitle.setAlignment(Element.ALIGN_CENTER);
        preface.add(repTitle);

        Paragraph repTitlepowered = new Paragraph("رسید براے ٹیکس فری کیٹل مارکیٹ____________________________", smallBold);
        repTitlepowered.setAlignment(Element.ALIGN_CENTER);
        preface.add(repTitlepowered);
        Paragraph emptyL = new Paragraph("\n");
        preface.add(emptyL);
        mDoc.add(preface);

        mDoc.close();

    }catch (Exception e){
        Toast.makeText(this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

1 个答案:

答案 0 :(得分:0)

您的问题的答案很简单。尝试为文件提供字体,例如:-

1)创建Paragraph对象时未指定PdfFont。结果,将选择默认的PdfFont(Helvetica,常规,为12)。

2)Helvetica不包含呈现您列出的所有可能脚本所需的字形。当iText询问PdfFont“请给我x字符的字形”并且PdfFont返回null时,iText根本不画任何东西。这就是为什么它空白的原因。

3)某些高级印刷功能(包括连字)仅可使用pdfCalligraph(iText7的封闭源插件)使用。您需要这些功能来准确表示北印度语,泰米尔语(以及其他各种非西方文字)