web-dev-qa-db-ja.com

javaを使用してItextに新しいフォントを追加する方法

フォントを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だけではありません。

19
Luixv
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....

続きを読む こちら

24
dacwe

ロードします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();
  • フォントの相対パスは次のとおりです: 'src/main/resources/fonts'
  • Itext 5.4.5の使用
  • コード例
24
4F2E4A2E

BaseFont.createFontを使用して、新しいFontオブジェクトを作成します。

Type1またはTTFフォントを渡すことができます。フォントファイルが一緒に配布されることを確認する必要があります。参照 BaseFont API

3
Ankit Gupta

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());
        }
    }

}
1
Mohit Singh