5

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

    }

}

私は何を間違っているのですか?

4

5 に答える 5

21

両方のスタイルでフォントオブジェクトを定義できます。

private static final Font SUBFONT = new Font(Font.getFamily("TIMES_ROMAN"), 12,    Font.BOLD|Font.UNDERLINE);
于 2014-12-19T10:19:41.760 に答える
8

ITextライブラリを使用しているので、ここを読んでください。

基本的にチャンクを使用してから、それらのチャンクをドキュメントに追加します。

Chunk underline = new Chunk("Underline. ");
underline.setUnderline(0.1f, -2f); //0.1 thick, -2 y-location
document.add(underline);

自分で試したことがないので、どうなるかはまだわかりません。iTextのドキュメントをさらに読むと、最初に太字のフォントを定義してから実装する必要があるようです。このチュートリアルは、iTextでの太字フォントの使用例と太字テキストでPDFを作成する例を示しています。そこから、上記のコードを太字のテキストとwalah!、太字の下線付きのテキストに実装できると確信しています:D

于 2013-03-20T15:38:17.710 に答える
2

クラスで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));
于 2019-09-27T14:00:19.977 に答える
1

それを試してみてください

Font fontbold = FontFactory.getFont("Times-Roman", 12, Font.BOLD);
        document.add(new Paragraph("Times-Roman, Bold", fontbold));

undelineの場合はFont.UNDERLINE

于 2013-03-20T15:32:31.450 に答える
0

以下を使用して、太字と下線の両方を取得できます。-

Chunk buyerOrder = new Chunk("Buyer's Order Number", FontFactory.getFont(FontConstants.TIMES_ROMAN,8,Font.BOLD));
buyerOrder.setUnderline(0.1f, -2f); 

それが役に立てば幸い!ありがとう

于 2019-09-04T11:13:27.583 に答える