用iText5-2-其他类型PDF

 //设置文件属性的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"+ "\r\n" +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();
        }
    }
}

 

posted @ 2019-12-10 10:47  wf.zhang  阅读(359)  评论(0编辑  收藏  举报