有人可以告诉我如何用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();
}
}
答案 0 :(得分:0)
您的问题的答案很简单。尝试为文件提供字体,例如:-
1)创建Paragraph对象时未指定PdfFont。结果,将选择默认的PdfFont(Helvetica,常规,为12)。
2)Helvetica不包含呈现您列出的所有可能脚本所需的字形。当iText询问PdfFont“请给我x字符的字形”并且PdfFont返回null时,iText根本不画任何东西。这就是为什么它空白的原因。
3)某些高级印刷功能(包括连字)仅可使用pdfCalligraph(iText7的封闭源插件)使用。您需要这些功能来准确表示北印度语,泰米尔语(以及其他各种非西方文字)