Spire.PDF for Javaでは「標準フォント」「TrueTypeフォント」及び「CJKフォント」が適用できます。今回はPDFにこれらのフォントを埋め込む方法を紹介します。
下準備
1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。
2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire.PDF.jarを参照に追加してください。
```JAVA import com.spire.pdf.graphics.*;public class PdfFonts {
public static void main(String[] args) {
//PdfDocument objectを作成します。
PdfDocument doc = new PdfDocument();
//ページ一つを追加します。
PdfPageBase page = doc.getPages().add();
// ブラッシュを作成します。
PdfBrush brush = PdfBrushes.getBlack();
//Yを初期化します。
float y = 30;
// 標準のフォントでテキストを書きます。
PdfFont standardFont = new PdfFont(PdfFontFamily.Helvetica, 14f);
page.getCanvas().drawString("Standard Font - Helvetica", standardFont, brush, 0, y);
standardFont = new PdfFont(PdfFontFamily.Times_Roman, 14f);
page.getCanvas().drawString("Standard Font - Times_Roman", standardFont, brush, 0, (y = y + 16));
standardFont = new PdfFont(PdfFontFamily.Courier, 14f);
page.getCanvas().drawString("Standard Font - Courier", standardFont, brush, 0, (y = y + 16));
//true typeフォントでテキストを書きます。
java.awt.Font font = new java.awt.Font("Arial", java.awt.Font.BOLD, 14);
PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font);
page.getCanvas().drawString("TrueType Font - Arial", trueTypeFont, brush, 0, (y = y + 30f));
//プライベートフォントででテキストを書きます。
String fontFileName = "C:\\Users\\Administrator\\Desktop\\Khadija.ttf";
trueTypeFont = new PdfTrueTypeFont(fontFileName, 14f);
page.getCanvas().drawString("Private Font - Khadija", trueTypeFont, brush, 0, (y = y + 30f));
//cjkでテキストを書きます。
PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Monotype_Hei_Medium, 14f);
page.getCanvas().drawString("How to say 'Font' in Chinese? \u5B57\u4F53", cjkFont, brush, 0, (y = y + 30f));
cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Hanyang_Systems_Gothic_Medium, 14f);
page.getCanvas().drawString("How to say 'Font' in Japanese? \u30D5\u30A9\u30F3\u30C8", cjkFont, brush, 0, (y = y + 16f));
cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Hanyang_Systems_Shin_Myeong_Jo_Medium, 14f);
page.getCanvas().drawString("How to say 'Font' in Korean? \uAE00\uAF34", cjkFont, brush, 0, (y = y + 16f));
//保存します。
doc.saveToFile("Fonts.pdf");
doc.close();
}
}
<h4><strong>実行結果</strong></h4>
<p><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/l/lendoris/20210303/20210303150757.png" alt="f:id:lendoris:20210303150757p:plain" title="" class="hatena-fotolife" itemprop="image" /></p>
<p> </p>