多语言展示
当前在线:1069今日阅读:2今日分享:31

Java 在PDF中绘制多种不同字体

我们在创建PDF文档时,常需要绘制不同字体样式、不同语言的文本,此时需要应用不同字体来绘制,如Standard字体、TrueType字体、CJK字体或者自定义的(私有)字体。下面通过Java程序代码来展示如何实现使用以上类型的字体来绘制文本。
工具/原料
1

Jdk:1.8.0

2

代码编译工具:IntelliJ IDEA

3

测试文档:PDF

4

PDF jar包工具:Free Spire.PDF for Java 4.4.1

方法/步骤
1

下载jar包到本地,解压。

2

执行如下步骤导入:

3

jar导入结果:

4

键入如下代码:import com.spire.pdf.*; import com.spire.pdf.graphics.*;  public class ApplyDifferentFonts {     public static void main(String[] args) {         //创建PdfDocument对象         PdfDocument pdf = new PdfDocument();          //添加一页         PdfPageBase page = pdf.getPages().add();          //初始化y坐标         float y = 30;          //使用standard字体绘制文字         PdfFont standardFont = new PdfFont(PdfFontFamily.Helvetica, 14f);         page.getCanvas().drawString('Standard Font - Helvetica', standardFont, PdfBrushes.getBlack(), 0, y);         standardFont = new PdfFont(PdfFontFamily.Times_Roman, 14f);         page.getCanvas().drawString('Standard Font - Times_Roman', standardFont, PdfBrushes.getBlack(), 0, (y = y + 16));         standardFont = new PdfFont(PdfFontFamily.Courier, 14f);         page.getCanvas().drawString('Standard Font - Courier', standardFont, PdfBrushes.getBlack(), 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, PdfBrushes.getBlue(), 0, (y = y + 30f));          //使用私有字体绘制文字         String fontFileName = 'C:\\Users\\Administrator\\Desktop\\STZHONGS.ttf';         trueTypeFont = new PdfTrueTypeFont(fontFileName, 14f);         page.getCanvas().drawString('Private Font: 华文宋体', trueTypeFont, PdfBrushes.getDarkGreen(), 0, (y = y + 30f));          //使用cjk字体绘制文字         PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Monotype_Hei_Medium, 14f);         page.getCanvas().drawString('你 好', cjkFont, PdfBrushes.getDeepPink(), 0, (y = y + 30f));         cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Hanyang_Systems_Gothic_Medium, 14f);         page.getCanvas().drawString('こんにちは', cjkFont, PdfBrushes.getOrangeRed(), 0, (y = y + 16f));         cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.Hanyang_Systems_Shin_Myeong_Jo_Medium, 14f);         page.getCanvas().drawString('안녕하세요', cjkFont, PdfBrushes.getPurple(), 0, (y = y + 16f));          //保存文档         pdf.saveToFile('ApplyDifferdentFonts.pdf');         pdf.dispose();     } }

5

执行程序,生成PDF文档。在IDEA程序项目文件夹路径下可查看生成的结果文档,字体应用效果如图:

推荐信息