itext pdf文档生成

2017-01-16  本文已影响0人  前端进城打工仔

在日常开发过程中,若是想要把java中的某个对象中的内容,按某种排列方式输出到PDF中,有几种方式,此处只使用了itextpdf的方式。
itext pdf 文档

一、加入依赖

在gradle中只需要加入

compile group: 'com.itextpdf', name: 'itextpdf', version: '5.5.6'

二、创建一个Document,并加入内容

public void createPdf() {
        Document document = new Document();
        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
            document.open();
            document.add(new Paragraph("Some content here"));
            settings(document);            
            style(document);
            document.close();
            writer.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

新建一个Document对象,再定义PdfWriter,把document中的内容写入HelloWorld.pdf文件。
在添加内容到document之前需要执行document.open()才可以。
document可以添加Paragraph、PdfPTable等元素。

三、踩过的坑

PdfPCell cell = new PdfPCell(new Paragraph(100,"Table 1"));
PdfPCell cell= new PdfPCell();
cell.addElement(new Paragraph(100,"Table 1"));

这两种方法中第一种不支持设置Leading为100,第二种方法支持设置Leading为100。除了在初始化Paragraph时可以设置Leading,还可以调用setLeading()来设置,第一个参数是固定的行间距,第二个参数是行间距为行高的倍数。

Paragraph element = new Paragraph("Some content here");
element.setLeading(0,2);
PdfPTable table = new PdfPTable(3);
table.setWidths(new int[]{2, 1, 1});
PdfPCell cell = new PdfPCell(new Phrase("StackOverflow"));
cell.setBorder(Rectangle.NO_BORDER);
上一篇下一篇

猜你喜欢

热点阅读