gpt4 book ai didi

java - iText - PdfPTable 不显示西里尔文(俄语)符号

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:16 31 4
gpt4 key购买 nike

我对我的英语感到抱歉。我正在尝试使用 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的字体。在您更改之前,“Номер” 内容已存在于短语中。因此 "Номер" 以默认字体 Helvetica 表示。由于 Helvetica 不知道如何表示西里尔字母字形,因此未呈现文本。

关于java - iText - PdfPTable 不显示西里尔文(俄语)符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533331/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com