0

次のスニペットを使用して、コードに反映されるように HTML に複数のフォント スタイルを含めようとしています。フォント フェイス タグにフォント スタイルが記載されている場合、HTML テキストは、PDF に表示されるように選択されていません。

String htmlText = value.trim();

             ColumnText ct = new ColumnText(over);
             List<AcroFields.FieldPosition> positions1 = form.getFieldPositions(key);
             Rectangle rect = positions1.get(0).position;
             ct.setSimpleColumn(rect.getLeft(), rect.getBottom(),rect.getRight(), rect.getTop());
             Reader htmlreader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(htmlText.getBytes("UTF-8"))));
             StyleSheet styles = new StyleSheet();
             styles.loadTagStyle("body", "font", "Comic Sans MS");
             List<Element> objects = HTMLWorker.parseToList(htmlreader,styles);

             for (Element element : objects) 
             {
                 ct.addElement(element);
           }
            ct.go();

StyleSheet クラスは、言及しているにもかかわらず、PDF のフォントを反映していません。デフォルトは常に Arial です。

Fontタグのface属性に記載されているフォントが何であれ、PDFに反映する必要があります。そのような状況で私が取り入れなければならない方法は何ですか。

4

1 に答える 1

1

フォントを登録しましたか?iTextSharp は、パフォーマンス/キャッシュの悪夢につながる可能性があるため、指示しない限り、システムにインストールされているフォントをスキャンしません。

FontFactory.Register("C:\\Windows\\Fonts\\comic.ttf", "Comic Sans MS");

iTextSharp にフォント フォルダーをスキャンするように指示することもできますが、お勧めしません。

FontFactory.RegisterDirectory("C:\\WINDOWS\\Fonts")
于 2014-03-28T14:55:11.887 に答える