测试一下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.URLEncoder;
import java.util.Date;
import java.util.Map;

import javax.swing.ImageIcon;




import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;









/**
 *
 *
 * @author <a href="http://www.micmiu.com">Michael Sun</a>
 */
public class Demo4HTMLCn2 {
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {

      /*  StringBuilder sb = new StringBuilder();
        BaseFont baseFont = BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        //BaseFont.createFont("C:/WINDOWS/Fonts/arialuni.ttf", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        PrintStream printStream = new PrintStream(new FileOutputStream(
                "E:/Test/iText.html"));
        sb.append("<html>");
        sb.append("<head>");
        sb.append("<title></title>");
        sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=GBK\" />");
        sb.append("</head>");
        sb.append("<style>");
        sb.append(".table{width:100%; margin:auto; border-top:3px solid #000;border-left:3px solid #000; border-bottom:2px solid #000;border-right:2px solid #000;}");
//		        sb.append(".top{border-bottom:3px solid #000;height:54px; padding:10px 0; font-weight:bold;}");
        sb.append("@font-face { font-family: simsun1;src:url('C:\\Windows\\Fonts\\'); }");
        sb.append(".td{border-right:1px solid #000;border-bottom:1px solid #000;height:60px; padding:10px 0; text-align:center;}");
        sb.append(".td1{border-right:1px solid #000;border-bottom:1px solid #000; height:45px;  padding:10px 0; text-align:center;}");
        sb.append(".td2{border-right:1px solid #000;border-bottom:1px solid #000; height:45px;  padding:10px 0; text-align:left;}");
        sb.append(".td3{border-right:1px solid #000;border-bottom:1px solid #000; height:45px;  padding:10px 0; text-align:center;}");
        sb.append(".gttd{border-right:1px solid #000;border-bottom:1px solid #000;  padding:10px 0; text-align:center;}");
        sb.append(".PageNext{page-break-after: always;}");
        sb.append(".span{font-size:10.0pt; font-family:simsun;}");
        sb.append(".gqp{margin-right:50px;margin-left:50px;line-height:25px;}");
        sb.append(".gqxyp{margin-right:70px;margin-left:70px;line-height:25px;}");

        sb.append(".span1{font-size:12.0pt; font-family:simsun}");
        sb.append(".cont{line-height:20px;text-align:left;margin-right:50px;margin-left:50px;}");
        sb.append(".cont1{line-height:20px;text-align:left;margin-right:50px;margin-left:50px;}");
        sb.append(".cnsp{text-align:left;line-height:40px;margin-right:25px;margin-left:25px;}");
        sb.append(".cnsspan{font-size:17.0pt; font-family:simsun}");

        sb.append(".part_title1{background:url(../images/border_left.png) left no-repeat; padding-left:14px; margin-left:10px;color:#806000; font-size:25px; margin-bottom:20px; font-family:simsun;}");
        sb.append(".part_title{margin-left:10px;color:#806000; font-size:15px; line-height:16px; margin-bottom:20px; font-family:simsun;}");
        sb.append(".part_title_year{border-left:4px solid #804000; padding-left:10px; margin-left:10px; color:#806000; font-size:18px; line-height:16px; margin-bottom:20px; text-decoration:underline; font-family:simsun;}");
        sb.append(".table_xq{ border:0pt;}");
        sb.append(".table_xq td{ line-height:20px; padding:8px 0; font-size:14px; color:#000; vertical-align:top; }");
        sb.append(".table_list{ style=\"text-align:center;\"; font-size:14px;}");
        sb.append(".table_list th{border:1px solid #efefef; background:#eae3db; height:43px; color:#830100; vertical-align:middle; padding:0 5px;}");
        sb.append(".table_list td{border:1px solid #efefef; height:30px; vertical-align:middle; text-align:center; padding:7px 5px; word-break:break-all; color:#000;}");
        sb.append(".table_listth{border:1px solid #efefef; background:#eae3db; height:43px; color:#830100; style=\"text-align:right;\"; padding:0 5px;}");
        sb.append(".table_listtd{border:1px solid #efefef; height:30px; style=\"text-align:left;\"; padding:7px 5px; word-break:break-all; color:#000;}");
        sb.append(".table_list .cell_light{background:#f9f9f9;}");
        sb.append(".table_list a.link{color:#3278b6; cursor:pointer; margin:0 5px;}");
        sb.append(".table_list a.link:hover{text-decoration:underline;}");
        sb.append(".table_list td ul {}");
        sb.append(".table_list td li{padding:2px 0;}");
        sb.append(".table_list td ul li+li{border-top:1px solid #efefef;}");
        sb.append(".span2{font-size:11px; font-family:simsun;color:red;}");

        sb.append("</style>");
        sb.append("<body>");

        sb.append("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"table_list\">");
        if(false){
            sb.append("<tr><td width=\"100%\" class=\"td\"><span class=\"span\">暂无社保信息</span></td></tr>");
        }else{
            sb.append("<tr><th class=\"table_listth\" width=\"25%\" ><span class=\"span\">城镇职工基本养老保险</span></th>"+
                    "<td class=\"td\" width=\"25%\"><span class=\"span\">"+1+"</span></td>");
            sb.append("<th class=\"table_listth\" width=\"25%\" ><span class=\"span\">失业保险</span></th>"+
                    "<td class=\"td\" width=\"25%\"><span class=\"span\">"+1+"</span></td></tr>");
            sb.append("<tr><th class=\"table_listth\" width=\"25%\" ><span class=\"span\">职工基本医疗保险</span></th>"+
                    "<td class=\"td\" width=\"25%\"><span class=\"span\">"+1+"</span></td>");
            sb.append("<th class=\"table_listth\" width=\"25%\" ><span class=\"span\">工伤保险</span></th>"+
                    "<td class=\"td\" width=\"25%\"><span class=\"span\">"+1+"</span></td></tr>");
            sb.append("<tr><th class=\"table_listth\" width=\"25%\" ><span class=\"span\">生育保险</span></th>"+
                    "<td class=\"td\" width=\"25%\"><span class=\"span\">"+1+"</span></td><th></th><td></td></tr>");
            sb.append("</table>");
            sb.append("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"table_list\" >");
            sb.append("<tr><th class=\"table_listth\"  rowspan=\"6\" ><span class=\"span\">单位缴费基数(万元)</span></th></tr>");
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">单位参加城镇职工基本养老保险缴费基数</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td>");
            }
            sb.append("</tr>");
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">单位参加失业保险缴费基数</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">单位参加职工基本医疗保险缴费基数</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">单位参加生育保险缴费基数</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }

            sb.append("<tr><th class=\"table_listth\"  rowspan=\"5\" ><span class=\"span\">本期实际缴费金额(万元)</span></th></tr>");
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">参加城镇职工基本养老保险本期实际缴费金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">参加失业保险本期实际缴费金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">参加职工基本医疗保险本期实际缴费金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\" ><span class=\"span\">参加工伤保险本期实际缴费金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">参加生育保险本期实际缴费金额</span></th>");
            if(true){
                sb.append("<td class=\"td\"><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }

            sb.append("<tr><th class=\"table_listth\"  rowspan=\"5\" ><span class=\"span\">单位累计欠缴金额</span></th></tr>");
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">单位参加城镇职工基本养老保险累计欠缴金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\" ><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">单位参加失业保险累计欠缴金额</span></th>");
            if(true){
                sb.append("<td class=\"td\"><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">单位参加职工基本医疗保险累计欠缴金额</span></th>");
            if(true){
                sb.append("<td class=\"td\"><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">单位参加工伤保险累计欠缴金额</span></th>");
            if(true){
                sb.append("<td class=\"td\"><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }
            sb.append("<tr><th class=\"table_listth\"><span class=\"span\">单位参加生育保险累计欠缴金额</span></th>");
            if(true){
                sb.append("<td class=\"td\" ><span class=\"span\">"+1+"</span></td></tr>");
            }else{
                sb.append("<td class=\"td\"><span class=\"span\">企业选择不公示</span></td></tr>");
            }


        }
        sb.append("</table><br/>");


        sb.append("</body></html>");

        //String str = new String(sb.toString().getBytes("UTF-8"));
        //String UTF8 = URLEncoder.encode(sb.toString(), "UTF-8");

        printStream.println(sb.toString());



*/


        String pdfFile = "E:/Test/iText.pdf";
        String htmlFile = "E:/Test/2016122700003449.html";

        Document document = new Document();
        PdfWriter pdfwriter = PdfWriter.getInstance(document,
                new FileOutputStream(pdfFile));
        pdfwriter.setViewerPreferences(PdfWriter.HideToolbar);
        document.open();

        InputStreamReader isr = new InputStreamReader(new FileInputStream(
                htmlFile), "UTF-8");
        XMLWorkerHelper.getInstance().parseXHtml(pdfwriter, document, isr);

        document.close();
        //addPdfMark(pdfFile,"d:/Test/iText1.pdf","d:/123.png",1);

        waterMark("E:/Test/iText.pdf","E:/Test/shuiyin.png","E:/Test/2016122700003449.pdf","",1);

    }

    public static void waterMark(String inputFile, String imageFile,
                                 String outputFile, String waterMarkName, int permission) {
        try {
            PdfReader reader = new PdfReader(inputFile);
            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFile));
            BaseFont base = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
            //BaseFont base = BaseFont.createFont("STSong-Light",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
            /*BaseFont base = BaseFont.createFont(
                    "C:/WINDOWS/Fonts/simsun.ttc,1", "Identity-H", true);*/

            /*int total = reader.getNumberOfPages() + 1;
            Image image = Image.getInstance(imageFile);


            image.setAbsolutePosition(0, 0);
            PdfContentByte under;
            int j = waterMarkName.length();
            char c = 0;
            int rise = 0;
            for (int i = 1; i < total; i++) {
                rise = 400;
                under = stamper.getUnderContent(i);
                under.beginText();
                under.setFontAndSize(base, 10);

                if (j >= 15) {
                    under.setTextMatrix(100, 60);
                    for (int k = 0; k < j; k++) {
                        under.setTextRise(rise);
                        c = waterMarkName.charAt(k);
                        under.showText(c + "");
                    }
                } else {
                    under.setTextMatrix(100, 60);
                    for (int k = 0; k < j; k++) {
                        under.setTextRise(rise);
                        c = waterMarkName.charAt(k);
                        under.showText(c + "");
                        rise -= 18;

                    }
                }
                under.addImage(image);
            }*/
            stamper.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值