iText 导出 PDF,所需 jar 包如下:
itext-asian-5.2.0.jar 支持导出中文的 jar 包
itextpdf-5.5.9.jar PDF 核心 jar 包
bcprov-jdk15on-147.jar PDF 加密 jar 包 不加入则会报:org.bouncycastle.asn1.ASN1OctetString 错误。
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.Image; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Phrase; 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 JavaPdfHelloWorld { public static void main(String[] args) throws IOException { Document document = new Document(); try { //中文字体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); //写入器 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\Users\\hp\\Desktop\\HelloWorld.pdf")); // 设置密码为:"World" writer.setEncryption("xiaofei".getBytes(), "12346".getBytes(), PdfWriter.ALLOW_SCREENREADERS, PdfWriter.STANDARD_ENCRYPTION_128); //添加PDF属性 document.addTitle("小飞机的测试PDF"); document.setPageSize(PageSize.A4); document.addAuthor("xiaofei.xian"); document.addCreationDate(); document.addKeywords("xianxiaofei,xiaofei,fei,pdf,PDF,sysecho,Sysecho,SYSECHO"); document.addSubject("12341234567"); document.open(); Paragraph pph1 = new Paragraph("因为我想活着,我不能掩藏我心中的本欲,正如我心中爱你美丽,又怎能嘴上装四大皆空。", FontChinese); pph1.setSpacingAfter(50); pph1.setSpacingBefore(50); pph1.setFont(FontChinese); document.add(pph1); //读取一个图片 Image image = Image.getInstance("C:\\Users\\hp\\Desktop\\1.jpg"); //设置图片的位置 image.setAbsolutePosition(50, 750); //设置图片的大小 image.scaleAbsolute(68, 80); //插入一个图片 document.add(image); //表格插入 PdfPTable table = new PdfPTable(3); table.setHorizontalAlignment(Element.ALIGN_LEFT); PdfPCell cell = new PdfPCell(new Phrase("表头1", FontChinese)); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); cell.setPhrase(new Phrase("表头2", FontChinese)); table.addCell(cell); cell.setPhrase(new Phrase("表头3", FontChinese)); table.addCell(cell); table.addCell("2.1"); table.addCell("2.2"); table.addCell("2.3"); document.add(table); document.close(); writer.close(); System.out.println("pdf exported success!"); } catch (DocumentException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于