对不起我的英语。 我试图用PdfPTable(iText库)创建表。 表格显示空栏![在此输入图像说明] [1]
public class CreatePDF {
File file;
BaseFont bf;
Font f_title;
Font f_text;
public void setFont() throws DocumentException, IOException{
try{
bf = BaseFont.createFont("/fonts/Times_New_Roman.ttf", BaseFont.IDENTITY_H , BaseFont.EMBEDDED);
f_title = new Font(bf, 14 );
f_text = new Font(bf);
}catch(Exception ex){
ex.printStackTrace();
}
}
public void make_invoice() throws DocumentException, IOException{
setFont();
Document doc = new Document(PageSize.A4);
Desktop d = Desktop.getDesktop();
try{
file = new File("invoice.pdf");
PdfWriter.getInstance(doc, new FileOutputStream(file));
doc.open();
Paragraph title = new Paragraph();
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(f_title);
title.add("Счет фактура");//this work!
doc.add(create_table());
doc.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public PdfPTable create_table() throws DocumentException{
PdfPTable table = new PdfPTable(2);
table.setWidthPercentage(100);
table.setSpacingBefore(5f);
PdfPCell cell;
Phrase ph = new Phrase("Номер");//it's doesn't work ((
ph.setFont(f_text);
cell = new PdfPCell(ph);
table.addCell(cell);
table.addCell("Nuber");
return table;
}
我尝试过使用其他字体,但它对我没有帮助((
我该如何解决这个问题?
答案 0 :(得分:0)
使用setFont()
时,在设置字体后,为添加的所有内容更改Phrase
的字体。在更改之前,"Номер"
中已经存在内容Phrase
。因此,"Номер"
以默认字体Helvetica表示。由于Helvetica不知道如何表示西里尔字形,因此没有呈现文本。