我为我的英语感到抱歉。
我正在尝试使用 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;
}
我尝试使用其他字体,但它对我没有帮助(((
我该如何解决这个问题?
当你使用setFont()
,您更改了字体Phrase
对于所有添加的内容after字体已设置。内容"Номер"
已经存在于Phrase
before你改变了它。因此"Номер"
以默认字体 Helvetica 表示。由于 Helvetica 不知道如何表示西里尔字母字形,因此未呈现文本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)