PDFBox 使用字体

PDFBox 使用字体 介绍

在 PDFBox 中,可能需要添加具有不同字体系列和大小的文本。PDFBox 规范声明“标准的 14 种字体集将始终可用于处理 PDF 文档”。在 PDFBox 中,这 14 种字体集被定义为PDType1Font 类中的常量。字体是通过使用PDType1Font API从文件加载的。PDFBox 支持以下字体

标准字体集 描述
PDType1Font.TIMES_ROMAN Times regular
PDType1Font.TIMES_BOLD Times bold
PDType1Font.TIMES_ITALIC Times italic
PDType1Font.TIMES_BOLD_ITALIC Times bold italic
PDType1Font.HELVETICA Helvetica regular
PDType1Font.HELVETICA_BOLD Helvetica bold
PDType1Font.HELVETICA_OBLIQUE Helvetica italic
PDType1Font.HELVETICA_BOLD_OBLIQUE Helvetica bold italic
PDType1Font.COURIER Courier
PDType1Font.COURIER_BOLD Courier bold
PDType1Font.COURIER_OBLIQUE Courier italic
PDType1Font.COURIER_BOLD_OBLIQUE Courier bold italic
PDType1Font.SYMBOL Symbol Set
PDType1Font.ZAPF_DINGBATS Dingbat Typeface

我们可以使用Content Stream上提供的setFont API为文本配置字体。

PDPageContentStream contentStream = new PDPageContentStream(document, page);  
contentStream.setFont( PDType1Font.HELVETICA_BOLD, 28 );  

PDFBox 使用字体 示例

本示例创建一个新文档并打印文本“Hello World!!!” 使用 PDF base 字体

package com.yiidian;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

import java.io.IOException;

public class WorkingWithFont {

    public static void main(String[] args) throws IOException {
        // Create a document and add a page to it
        PDDocument document = new PDDocument();
        PDPage page = new PDPage();
        document.addPage(page);

        // Create a new font object selecting one of the PDF base fonts
        PDFont font = PDType1Font.HELVETICA_BOLD;

        // Start a new content stream which will "hold" the to be created content
        PDPageContentStream contentStream = new PDPageContentStream(document, page);

        // Define a text content stream using the selected font, and print the text
        contentStream.beginText();
        contentStream.setFont(font, 28);
        contentStream.newLineAtOffset(100, 700);
        contentStream.showText("Hello World !!!!");
        contentStream.endText();

        System.out.println("Text Content is added in the PDF Document.");

        //  closed the content stream class.  
        contentStream.close();

        // Save the results and ensure that the document is properly closed.  
        document.save("Hello World.pdf");
        document.close();
    }
}  

输出结果如下:

热门文章

优秀文章