フォントをiTextにしたいときは、次のようにします。
protected final static Font FONT_SIZE_11_BOLD = new Font(Font.HELVETICA, 11f, Font.BOLD);
次のように、好きな場所で使用できます。
monthSize11 = new Chunk(month, FONT_SIZE_11_BOLD);
HELVETICAの代わりにArialを使用したいのですが、Arialを直接使用できません。つまり、私はできない
new Font(Font.ARIAL, 11f, Font.BOLD);
arialはFontクラスで定義されていませんが、Arial.ttfファイルはシステムのC:\ WINDOWS\Fontsの下にあるためです。問題は、Arial.ttfファイルをiTextにバインドする方法と、それをどのように使用できるかです。
事前に多くのthnaks。
編集:独自のフォントを使用したいと思います。つまり、「myCompany.ttf」というファイルがあり、独自のフォントが定義されており、いくつかの場所で使用する必要があります。問題はArialだけではありません。
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....
続きを読む こちら 。
ロードしますJAR内から先頭のスラッシュを使用します。それ以外の場合は、フォントの絶対パスを使用します(C:\...\fonts\Sansation_Regular.ttf
)。例えば:
Font font = FontFactory.getFont("/fonts/Sansation_Regular.ttf",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 0.8f, Font.NORMAL, BaseColor.BLACK);
BaseFont baseFont = font.getBaseFont();
BaseFont.createFontを使用して、新しいFontオブジェクトを作成します。
Type1またはTTFフォントを渡すことができます。フォントファイルが一緒に配布されることを確認する必要があります。参照 BaseFont API
itextを使用したカスタムフォントの作成は簡単です
以下に同じコードを記述しました
間違いなく誰かを助けます
public class CustomFontStyle {
public static void main(String[] args) {
// creation of the document with a certain size and certain margins
// may want to use PageSize.LETTER instead
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
// creation of the different writers
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("CustomFontsStyle.pdf"));
final String NEWLINE = "\n";
document.open();
Phrase phrase = new Phrase();
BaseFont baseFont3 = BaseFont.createFont("Xenotron.ttf", BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
Font font2 = new Font(baseFont3, 12);
document.add(new Paragraph("Custom Xenotron Font: ", font2));
phrase.add(NEWLINE);
document.add(phrase);
document.close();
}
catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}