//设置文件属性的PDF
package com.wf.zhang.test; import java.io.FileOutputStream; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.Font; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; public class test01 { public static void main(String[] args) { Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("设置文件属性的PDF.pdf")); document.open(); //设置宋体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置字大小 颜色 Font font = new Font(bfChinese, 20, Font.NORMAL, BaseColor.RED); //准备Person类 Person person = new Person(); person.setName("娃哈哈"); person.setAge(99); person.setAdress("杭州西湖区文一路"); document.add(new Paragraph(person.toString(), font)); //Set attributes here document.addAuthor("没有正经的人"); //作者 document.addCreationDate(); //创建时间 document.addCreator("销售报表.com"); //创建程序 document.addTitle("新的标题"); //标题 document.addSubject("第二次+++++++++生成pdf"); //主题 document.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
//带图片的PDF
package com.wf.zhang.test; import java.io.FileOutputStream; import java.net.URL; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.Font; import com.itextpdf.text.Image; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; public class test02 { public static void main(String[] args) { Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("带图片的PDF.pdf")); document.open(); //设置宋体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置字大小 颜色 Font font = new Font(bfChinese, 20, Font.NORMAL, BaseColor.RED); //准备Person类 Person person = new Person(); person.setName("娃哈哈"); person.setAge(99); person.setAdress("杭州西湖区文一路"); document.add(new Paragraph("带图片的123456PDF"+ " " +person.toString(), font)); // Add Image Image image1 = Image.getInstance("temp.jpg"); // Fixed Positioning image1.setAbsolutePosition(100f, 550f); //图片在PDF中的绝对位置 // Scale to new height and new width of image image1.scaleAbsolute(100, 100); //图片在PDF中的大小 // Add to document document.add(image1); String imageUrl = "http://www.eclipse.org/xtend/images/java8_logo.png"; Image image2 = Image.getInstance(new URL(imageUrl)); document.add(image2); document.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
//带表格的PDF
package com.wf.zhang.test; import java.io.FileOutputStream; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; public class test03 { public static void main(String[] args) { Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("表格的PDF.pdf")); document.open(); //设置宋体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置字大小 颜色 Font font = new Font(bfChinese, 20, Font.NORMAL, BaseColor.RED); PdfPTable table = new PdfPTable(3); // 3 columns. table.setWidthPercentage(100); // Width 100% table.setSpacingBefore(10f); // Space before table table.setSpacingAfter(10f); // Space after table // Set Column widths float[] columnWidths = { 1f, 1f, 1f }; table.setWidths(columnWidths); PdfPCell cell1 = new PdfPCell(new Paragraph("序号",font)); cell1.setBorderColor(BaseColor.BLUE); cell1.setPaddingLeft(10); cell1.setHorizontalAlignment(Element.ALIGN_CENTER); cell1.setVerticalAlignment(Element.ALIGN_MIDDLE); PdfPCell cell2 = new PdfPCell(new Paragraph("日期",font)); cell2.setBorderColor(BaseColor.GREEN); cell2.setPaddingLeft(10); cell2.setHorizontalAlignment(Element.ALIGN_CENTER); cell2.setVerticalAlignment(Element.ALIGN_MIDDLE); PdfPCell cell3 = new PdfPCell(new Paragraph("销售量",font)); cell3.setBorderColor(BaseColor.RED); cell3.setPaddingLeft(10); cell3.setHorizontalAlignment(Element.ALIGN_CENTER); cell3.setVerticalAlignment(Element.ALIGN_MIDDLE); // To avoid having the cell border and the content overlap, if you // are having thick cell borders // cell1.setUserBorderPadding(true); // cell2.setUserBorderPadding(true); // cell3.setUserBorderPadding(true); table.addCell(cell1); table.addCell(cell2); table.addCell(cell3); document.add(table); document.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
//创建列表项的PDF
package com.wf.zhang.test; import java.io.FileOutputStream; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Chunk; import com.itextpdf.text.Document; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.GreekList; import com.itextpdf.text.List; import com.itextpdf.text.ListItem; import com.itextpdf.text.Paragraph; import com.itextpdf.text.RomanList; import com.itextpdf.text.ZapfDingbatsList; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; public class test04 { public static void main(String[] args) { Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("创建列表项的PDF.pdf")); document.open(); //设置宋体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置字大小 颜色 Font font = new Font(bfChinese, 20, Font.NORMAL, BaseColor.RED); document.add(new Paragraph("首页",font)); // Add ordered list List orderedList = new List(List.ORDERED); orderedList.add(new ListItem("第一行",font)); orderedList.add(new ListItem("第二行",font)); orderedList.add(new ListItem("第三行",font)); document.add(orderedList); // Add un-ordered list List unorderedList = new List(List.UNORDERED); unorderedList.add(new ListItem("第一条",font)); unorderedList.add(new ListItem("第二条",font)); unorderedList.add(new ListItem("第三条",font)); document.add(unorderedList); // Add roman list RomanList romanList = new RomanList(); romanList.add(new ListItem("第一项",font)); romanList.add(new ListItem("第二项",font)); romanList.add(new ListItem("第三项",font)); document.add(romanList); // Add Greek list GreekList greekList = new GreekList(); greekList.add(new ListItem("第一点",font)); greekList.add(new ListItem("第二点",font)); greekList.add(new ListItem("第三点",font)); document.add(greekList); // ZapfDingbatsList List Example ZapfDingbatsList zapfDingbatsList = new ZapfDingbatsList(43, 30); zapfDingbatsList.add(new ListItem("第一步",font)); zapfDingbatsList.add(new ListItem("第二步",font)); zapfDingbatsList.add(new ListItem("第三步",font)); document.add(zapfDingbatsList); // List and Sublist Examples List nestedList = new List(List.UNORDERED); nestedList.add(new ListItem("Item 1")); List sublist = new List(true, false, 30); sublist.setListSymbol(new Chunk("", FontFactory.getFont(FontFactory.HELVETICA, 6))); sublist.add("A"); sublist.add("B"); nestedList.add(sublist); nestedList.add(new ListItem("Item 2")); sublist = new List(true, false, 30); sublist.setListSymbol(new Chunk("", FontFactory.getFont(FontFactory.HELVETICA, 6))); sublist.add("C"); sublist.add("D"); nestedList.add(sublist); document.add(nestedList); document.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
//带样式的PDF 在wps 会变成两页 不知道是什么鬼 使用网站的图片
package com.wf.zhang.test; import java.io.FileOutputStream; import com.itextpdf.text.Chapter; import com.itextpdf.text.Document; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Section; import com.itextpdf.text.pdf.CMYKColor; import com.itextpdf.text.pdf.PdfWriter; public class test05 { public static void main(String[] args) { Font blueFont = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, new CMYKColor(255, 0, 0, 0)); Font redFont = FontFactory.getFont(FontFactory.COURIER, 12, Font.BOLD, new CMYKColor(0, 255, 0, 0)); Font yellowFont = FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new CMYKColor(0, 0, 255, 0)); Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("带样式的PDF.pdf")); document.open(); // document.add(new Paragraph("Styling Example")); // Paragraph with color and font styles Paragraph paragraphOne = new Paragraph("Some colored paragraph text", redFont); document.add(paragraphOne); // Create chapter and sections Paragraph chapterTitle = new Paragraph("Chapter Title", yellowFont); Chapter chapter1 = new Chapter(chapterTitle, 1); chapter1.setNumberDepth(0); Paragraph sectionTitle = new Paragraph("Section Title", redFont); Section section1 = chapter1.addSection(sectionTitle); Paragraph sectionContent = new Paragraph("Section Text content", blueFont); section1.add(sectionContent); document.add(chapter1); document.close(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }
//用户密码 和所有者密码都能打开PDF
package com.wf.zhang.test; import java.io.File; import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class test06 { private static String USER_PASSWORD = "123456"; //用户密码 private static String OWNER_PASSWORD = "asdfgh"; //所以者密码 public static void main(String[] args) { try { java.io.OutputStream file = new FileOutputStream(new File("加密的PDF.pdf")); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, file); writer.setEncryption(USER_PASSWORD.getBytes(), OWNER_PASSWORD.getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); document.open(); document.add(new Paragraph("Password Protected pdf example !!")); document.close(); file.close(); } catch (Exception e) { e.printStackTrace(); } } }
//具有权限的PDF
package com.wf.zhang.test; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class test07 { public static void main(String[] args) { try { OutputStream file = new FileOutputStream(new File("具有权限的PDF.pdf")); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, file); writer.setEncryption("".getBytes(), "".getBytes(), PdfWriter.ALLOW_PRINTING , //Only printing allowed; Try to copy text !! PdfWriter.ENCRYPTION_AES_128); document.open(); document.add(new Paragraph("Limited Access File !!")); document.close(); file.close(); } catch (Exception e) { e.printStackTrace(); } } }
//文字加图片的PDF 修改之前的HelloWorldPDF
package com.wf.zhang.test; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfStamper; public class test08 { public static void main(String[] args) { try { // Read file using PdfReader PdfReader pdfReader = new PdfReader("HelloWorld.pdf"); // Modify file using PdfReader PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("HelloWorld-modified.pdf")); Image image = Image.getInstance("temp.jpg"); image.scaleAbsolute(100, 50); image.setAbsolutePosition(100f, 500f); for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) { PdfContentByte content = pdfStamper.getUnderContent(i); content.addImage(image); } pdfStamper.close(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } } }