Java开源工具iText生成PDF简单实例

时间:2021-05-20

iText下载页面: http://sourceforge.net/projects/itext/files/
1.创建简单的PDF文件

package console.pdf;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.PageSize;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.PdfWriter;/** * 使用iText生成PDF文件 */public class CreatePDF { public static void main(String[] args) { CreatePDF p001 = new CreatePDF(); String filename = "P001.pdf"; p001.createPDF(filename); } public void createPDF(String filename) { // step 1 Document document = new Document(PageSize.A4); // step 2 try { PdfWriter.getInstance(document, new FileOutputStream(filename)); document.addTitle("ID.NET"); document.addAuthor("dotuian"); document.addSubject("This is the subject of the PDF file."); document.addKeywords("This is the keyword of the PDF file."); // step 3 document.open(); // step 4 document.add(new Paragraph("Hello World!")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } finally { // step 5 document.close(); } } }


2.在PDF文件中添加Table

package console.pdf;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.itextpdf.text.BaseColor;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.PageSize;import com.itextpdf.text.Phrase;import com.itextpdf.text.Rectangle;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;/** * 使用iText生成PDF文件 * 在PDF文件中创建表格 */public class TableOfPDF { public static void main(String[] args) { TableOfPDF p001 = new TableOfPDF(); String filename = "P002.pdf"; p001.createPDF(filename); } public void createPDF(String filename) { // step 1 Document document = new Document(PageSize.A4); // step 2 try { PdfWriter.getInstance(document, new FileOutputStream(filename)); document.addTitle("ID.NET"); document.addAuthor("dotuian"); document.addSubject("This is the subject of the PDF file."); document.addKeywords("This is the keyword of the PDF file."); // step 3 document.open(); // step 4 PdfPTable table = createTable1(); document.add(table); table = createTable2(); table.setSpacingBefore(5); table.setSpacingAfter(5); document.add(table); table = createTable3(); document.add(table); table = createTable4(); table.setSpacingBefore(5); table.setSpacingAfter(5); document.add(table); table = createTable5(); document.add(table); table = createTable6(); document.add(table); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } finally { // step 5 document.close(); } } /** * Creates a table; widths are set with setWidths(). * * @return a PdfPTable * @throws DocumentException */ public static PdfPTable createTable1() throws DocumentException { PdfPTable table = new PdfPTable(3); table.setWidthPercentage(288 / 5.23f); table.setWidths(new int[] { 2, 1, 1 }); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 1")); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cell with rowspan 2")); cell.setRowspan(2); table.addCell(cell); table.addCell("row 1; cell 1"); table.addCell("row 1; cell 2"); table.addCell("row 2; cell 1"); table.addCell("row 2; cell 2"); return table; } /** * Creates a table; widths are set with setWidths(). * * @return a PdfPTable * @throws DocumentException */ public static PdfPTable createTable2() throws DocumentException { PdfPTable table = new PdfPTable(3); table.setTotalWidth(288); table.setLockedWidth(true); table.setWidths(new float[] { 2, 1, 1 }); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 2")); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cell with rowspan 2")); cell.setRowspan(2); table.addCell(cell); table.addCell("row 1; cell 1"); table.addCell("row 1; cell 2"); table.addCell("row 2; cell 1"); table.addCell("row 2; cell 2"); return table; } /** * Creates a table; widths are set in the constructor. * * @return a PdfPTable * @throws DocumentException */ public static PdfPTable createTable3() throws DocumentException { PdfPTable table = new PdfPTable(new float[] { 2, 1, 1 }); table.setWidthPercentage(55.067f); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 3")); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cell with rowspan 2")); cell.setRowspan(2); table.addCell(cell); table.addCell("row 1; cell 1"); table.addCell("row 1; cell 2"); table.addCell("row 2; cell 1"); table.addCell("row 2; cell 2"); return table; } /** * Creates a table; widths are set with special setWidthPercentage() method. * * @return a PdfPTable * @throws DocumentException */ public static PdfPTable createTable4() throws DocumentException { PdfPTable table = new PdfPTable(3); Rectangle rect = new Rectangle(523, 770); table.setWidthPercentage(new float[] { 144, 72, 72 }, rect); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 4")); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cell with rowspan 2")); cell.setRowspan(2); table.addCell(cell); table.addCell("row 1; cell 1"); table.addCell("row 1; cell 2"); table.addCell("row 2; cell 1"); table.addCell("row 2; cell 2"); return table; } /** * Creates a table; widths are set with setTotalWidth(). * * @return a PdfPTable * @throws DocumentException */ public static PdfPTable createTable5() throws DocumentException { PdfPTable table = new PdfPTable(3); table.setTotalWidth(new float[] { 144, 72, 72 }); table.setLockedWidth(true); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 5")); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cell with rowspan 2")); cell.setRowspan(2); table.addCell(cell); table.addCell("row 1; cell 1"); table.addCell("row 1; cell 2"); table.addCell("row 2; cell 1"); table.addCell("row 2; cell 2"); return table; } public static PdfPTable createTable6() throws DocumentException{ PdfPTable table = new PdfPTable(10); table.setTotalWidth(595); //table.setLockedWidth(true); PdfPCell cell; cell = new PdfPCell(new Phrase("Table 6")); cell.setColspan(10); table.addCell(cell); for (int i = 1; i < 100; i++) { cell = new PdfPCell(new Phrase(String.valueOf(i))); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); } // cell = new PdfPCell(new Phrase("Cell with rowspan 2"));// cell.setRowspan(2);// table.addCell(cell);// table.addCell("row 1; cell 1");// table.addCell("row 1; cell 2");// table.addCell("row 2; cell 1");// table.addCell("row 2; cell 2"); return table; } }



3.在PDF文件中添加图片,并且指定文本位置

package console.pdf;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Image;import com.itextpdf.text.PageSize;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfContentByte;import com.itextpdf.text.pdf.PdfWriter;/** * 使用iText生成PDF文件 * 在PDF文件中添加背景图片,并指定文本在PDF文件中的位置 */public class BackgroundImageOfPDF { public static void main(String[] args) { BackgroundImageOfPDF p001 = new BackgroundImageOfPDF(); String filename = "P003.pdf"; p001.createPDF(filename); } public void createPDF(String filename) { // step 1 Document document = new Document(PageSize.A4.rotate(),0,0,0,0); // step 2 try { PdfWriter pdfwriter = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.addTitle("ID.NET"); document.addAuthor("dotuian"); document.addSubject("This is the subject of the PDF file."); document.addKeywords("This is the keyword of the PDF file."); // step 3 document.open(); // step 4 Image image = Image.getInstance("bg.jpg"); document.add(image); PdfContentByte pdfContentByte = pdfwriter.getDirectContent(); pdfContentByte.beginText(); BaseFont bf = BaseFont.createFont(BaseFont.TIMES_ROMAN,BaseFont.WINANSI,BaseFont.EMBEDDED); pdfContentByte.setFontAndSize(bf, 12); for (int i = 0; i <= 842; i = i + 50) { for (int j = 0; j <= 595; j = j + 20) { pdfContentByte.setTextMatrix(i, j); pdfContentByte.showText("(" + i + ":" + j + ")"); } } pdfContentByte.endText(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // step 5 document.close(); } }}


声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章