欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

itext PDF的使用

程序员文章站 2022-03-11 17:42:41
...

iText PDF添加下划线的三种方式

生成一个简单的PDF

public class ItextPDF {

    //定义默认字体
    private static BaseFont bfSong = null;
    private static Font Fontsong12 = null;
    private static Font Fontsong12U=null;
    private static Document document = new Document(PageSize.A4,20.0F, 20.0F, 36.0F, 36.0F);//普通a4
    /**
     * 字体初始化
     */
    static {
        try {
            bfSong = BaseFont.createFont("font/song.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        } catch (Exception e) {
            e.printStackTrace();
        }
        Fontsong12 = new com.itextpdf.text.Font(bfSong, 12, com.itextpdf.text.Font.NORMAL);//12号宋
        Fontsong12U=new Font(bfSong, 12, Font.NORMAL);
        Fontsong12U.setStyle(Font.UNDERLINE);
    }

    public static void main(String[] args) throws Exception {

        File f = new File("c:" + File.separator +"pdfTest"+File.separator+"iTextPdfTest.pdf");
        OutputStream out = null;
        try {
            out = new FileOutputStream(f);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        Document document = new Document(PageSize.A4);
        PdfWriter.getInstance(document, out);
        document.open();

        PdfPTable table1 = new PdfPTable(1);
        PdfPCell cell11 = new PdfPCell(new Paragraph("Hello World iTextPDF", Fontsong12));
        cell11.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
        cell11.setHorizontalAlignment(Element.ALIGN_CENTER);//设置水平居中
        cell11.setBorder(0);
        table1.addCell(cell11);
        document.add(table1);
        document.close();
    }
}

结果演示:
itext PDF的使用

生成下划线的方式1:

使用cell11.setBorder(BOTTOM); //设置下划线
注意:需要导入 import static com.itextpdf.text.Rectangle.BOTTOM;
itext PDF的使用
结果演示:
itext PDF的使用

生成下划线的方式2:

通过对字体进行设置,对其设置setStyle(Font.UNDERLINE),同上代码的Fontsong12U
itext PDF的使用
结果演示:
itext PDF的使用

生成下划线的方式3:

将cell的上左右变成设为0,下边框设为1,模拟下划线情况
itext PDF的使用
结果演示:
itext PDF的使用

项目过程中遇到了一句话中会有好几个下划线分开的情况,只需要将其拆分成多个cell然后进行拼接起来即可.