我正在尝试为我的pdf添加新字体,我需要将其加粗并加下划线..
我可以添加新的字体,但不能同时加粗和加下划线。
我尝试了以下方式..
public class PdfGenerator {
private static final String BASE_FONT = "Trebuchet MS";
private static final String BASE_FONT_BOLDITALIC = "Trebuchet MS BI";
private static final String BASE_FONT_BOLD = "Trebuchet MS B";
private static final Font titlefontSmall = FontFactory.getFont(
BASE_FONT_BOLD, 10, Font.UNDERLINE);
static {
String filePath = "..my font directory";
String fontPath = filePath + "\\" + "trebuc.ttf";
String fontPathB = filePath + "\\" + "TREBUCBD.TTF";
String fontPathBI = filePath + "\\" + "TREBUCBI.TTF";
FontFactory.register(fontPath, BASE_FONT);
FontFactory.register(fontPathB, BASE_FONT_BOLD);
FontFactory.register(fontPathBI, BASE_FONT_BOLDITALIC);
}
public void genMyPdf(String filePath) {
try {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(filePath));
document.open();
Paragraph p = new Paragraph("This should be bold & underline",
titlefontSmall);
document.add(p);
document.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
我做错了什么?
答案 0 :(得分:17)
您可以使用两种样式定义字体对象:
private static final Font SUBFONT = new Font(Font.getFamily("TIMES_ROMAN"), 12, Font.BOLD|Font.UNDERLINE);
答案 1 :(得分:6)
阅读 HERE ,因为您使用的是IText库。
基本上使用块然后将这些块添加到文档中。
Chunk underline = new Chunk("Underline. ");
underline.setUnderline(0.1f, -2f); //0.1 thick, -2 y-location
document.add(underline);
我自己没有尝试过,所以我不知道结果如何。 进一步阅读iText文档,似乎必须先定义粗体字然后再实现它。 THIS TUTORIAL 显示了使用iText加粗字体并使用粗体文字制作pdf的示例。从那里,我确信你可以将上面的代码实现为粗体文本和walah !,带下划线的粗体文字:D
答案 2 :(得分:1)
试试吧
Font fontbold = FontFactory.getFont("Times-Roman", 12, Font.BOLD);
document.add(new Paragraph("Times-Roman, Bold", fontbold));
和未定的Font.UNDERLINE
答案 3 :(得分:0)
您可以使用以下命令同时获得粗体和下划线:-
Chunk buyerOrder = new Chunk("Buyer's Order Number", FontFactory.getFont(FontConstants.TIMES_ROMAN,8,Font.BOLD));
buyerOrder.setUnderline(0.1f, -2f);
希望有帮助!谢谢
答案 4 :(得分:0)
您可以在班级中这样定义FONT:
public final static Font CUSTOM_FONT = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD | Font.UNDERLINE);
,然后将其用作:
paragraph.add(new Phrase( " YOUR TEXT HERE ",PDFCreator.CUSTOM_FONT));