zoukankan      html  css  js  c++  java
  • iTex导出PDF

     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 错误。

     1 import java.io.FileNotFoundException;
     2 import java.io.FileOutputStream;
     3 import java.io.IOException;
     4 
     5 import com.itextpdf.text.BaseColor;
     6 import com.itextpdf.text.Document;
     7 import com.itextpdf.text.DocumentException;
     8 import com.itextpdf.text.Element;
     9 import com.itextpdf.text.Font;
    10 import com.itextpdf.text.Image;
    11 import com.itextpdf.text.PageSize;
    12 import com.itextpdf.text.Paragraph;
    13 import com.itextpdf.text.Phrase;
    14 import com.itextpdf.text.pdf.BaseFont;
    15 import com.itextpdf.text.pdf.PdfPCell;
    16 import com.itextpdf.text.pdf.PdfPTable;
    17 import com.itextpdf.text.pdf.PdfWriter;
    18 
    19 public class JavaPdfHelloWorld {
    20     public static void main(String[] args)
    21         throws IOException {
    22         Document document = new Document();
    23         try {
    24             //中文字体
    25             BaseFont bfChinese =
    26                 BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
    27             Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
    28             //写入器
    29             PdfWriter writer = PdfWriter.getInstance(document,
    30                 new FileOutputStream("C:\Users\hp\Desktop\HelloWorld.pdf"));
    31             // 设置密码为:"World"  
    32             writer.setEncryption("xiaofei".getBytes(),
    33                 "12346".getBytes(),
    34                 PdfWriter.ALLOW_SCREENREADERS,
    35                 PdfWriter.STANDARD_ENCRYPTION_128);
    36             //添加PDF属性
    37             document.addTitle("小飞机的测试PDF");
    38             document.setPageSize(PageSize.A4);
    39             document.addAuthor("xiaofei.xian");
    40             document.addCreationDate();
    41             document.addKeywords("xianxiaofei,xiaofei,fei,pdf,PDF,sysecho,Sysecho,SYSECHO");
    42             document.addSubject("12341234567");
    43             document.open();
    44             Paragraph pph1 = new Paragraph("因为我想活着,我不能掩藏我心中的本欲,正如我心中爱你美丽,又怎能嘴上装四大皆空。", FontChinese);
    45             pph1.setSpacingAfter(50);
    46             pph1.setSpacingBefore(50);
    47             pph1.setFont(FontChinese);
    48             document.add(pph1);
    49             //读取一个图片
    50             Image image = Image.getInstance("C:\Users\hp\Desktop\1.jpg");
    51             //设置图片的位置 
    52             image.setAbsolutePosition(50, 750);
    53             //设置图片的大小 
    54             image.scaleAbsolute(68, 80);
    55             //插入一个图片
    56             document.add(image);
    57             
    58             //表格插入
    59             PdfPTable table = new PdfPTable(3);
    60             table.setHorizontalAlignment(Element.ALIGN_LEFT);
    61             PdfPCell cell = new PdfPCell(new Phrase("表头1", FontChinese));
    62             cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
    63             cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    64             table.addCell(cell);
    65             cell.setPhrase(new Phrase("表头2", FontChinese));
    66             table.addCell(cell);
    67             cell.setPhrase(new Phrase("表头3", FontChinese));
    68             table.addCell(cell);
    69             table.addCell("2.1");
    70             table.addCell("2.2");
    71             table.addCell("2.3");
    72             document.add(table);
    73             document.close();
    74             writer.close();
    75             System.out.println("pdf exported success!");
    76         }
    77         catch (DocumentException e) {
    78             e.printStackTrace();
    79         }
    80         catch (FileNotFoundException e) {
    81             e.printStackTrace();
    82         }
    83     }
    84 }
  • 相关阅读:
    Java知识点梳理——集合
    Java知识点梳理——装箱和拆箱
    Shiro RememberMe 1.2.4 反序列化漏洞详细复现
    哈希长度拓展攻击之De1CTF
    Discuz! ML RCE漏洞 getshell 复现
    Redis基于主从复制的RCE 4.x/5.x 复现
    WebLogic反序列化漏洞(CVE-2019-2725补丁绕过)
    【实战2】记一次获取远程桌面历程
    远程桌面远程代码执行漏洞(CVE-2019-0708)Poc
    【实战1】记一次提至administrator权限历程
  • 原文地址:https://www.cnblogs.com/rememberme/p/iText_PDF.html
Copyright © 2011-2022 走看看