IText实现url转pdf, 解决中文字体问题

IText实现url转pdf

入门文章:http://www.micmiu.com/opensource/expdoc/itext-pdf-demo/
进阶文章:http://www.micmiu.com/opensource/expdoc/itext-url-pdf/

实现中文的两种方法

1、

BaseFont base = BaseFont.createFont("fonts\\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font fontCN = new Font(base, 12, Font.NORMAL, BaseColor.BLUE);
document.add(new Paragraph("这是中文:欢迎来到iText世界。", fontCN));

或者:

BaseFont base = BaseFont.createFont("fonts\\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font fontCN = new Font(base, 12, Font.NORMAL, BaseColor.BLUE);
Paragraph p = new Paragraph();
p.setFont(font);
p.add("这是一个段落 hello world");
document.add(p);

2、

Font f1 = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
document.add(new Paragraph("hello world, 你好a世界", f1));

==================================

写文章记录一下

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.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;

public class IText2PDF {

    public static void main(String[] args) throws Exception {
        String pdfPath = "E:\\Desktop/iText.pdf";
        createFirstPDF(pdfPath);
    }

    public static void createFirstPDF(String pdfPath) throws Exception {
        // 第一步: Create a Document
        Document document = new Document(PageSize.A4);
        // 第二 步: Get a PdfWriter instance.
        PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
        // 第三步:Open the Document.
        document.open();

        // 添加Meta信息
        document.addAuthor("Dong Hao");
        document.addCreator("Dong Hao");
        document.addTitle("URL转换PDF");
        document.addSubject("COSMOPlat");
        document.addCreationDate();
        document.addKeywords("Java,iText");

        // 添加Header信息
        document.addHeader("blog", "https://blog.csdn.net/weixin_39715012");
        document.addHeader("mail", "donghao0205@163.coom");

        // 第四步:添加内容

        // 添加 Paragraph
        document.add(new Paragraph("Hello iText."));
        document.add(Chunk.NEWLINE);

        // 添加 中文信息
        BaseFont base = BaseFont.createFont("fonts\\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        Font fontCN = new Font(base, 12, Font.NORMAL, BaseColor.BLUE);
        document.add(new Paragraph("这是中文:欢迎来到iText世界。", fontCN));

        // 第五步:Close the Document.
        document.close();
    }

}
1、解决中文问题 2、附字体 3、动态html拼接pdf public static void htmlCodeComeString(String linkcss,String htmlCode, String outputFile,String title) throws Exception { OutputStream os = new FileOutputStream(outputFile); ITextRenderer renderer = new ITextRenderer(); renderer.setDocumentFromString(getConversionHtmlCode(linkcss,htmlCode,title)); ITextFontResolver fontResolver = renderer.getFontResolver(); URL fontPath = ItextUtil.class.getResource("simsun.ttc"); fontResolver.addFont(fontPath.toString(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); // 解决图片的相对路径问题 // renderer.getSharedContext().setBaseURL("file:/F:/teste/html/"); renderer.layout(); renderer.createPDF(os); System.out.println("======换成功!"); os.close(); os.flush(); } public static void main(String[] args) { ItextUtil itextUtil = new ItextUtil(); String html = ""; html += ""; html += "企业信息"; html += " "; html += " "; html += " 登记日期"; html += " 2006-04-28"; html += " "; html += " "; html += " 纳税人编号"; html += " HSJIHKS002"; html += " "; html += " "; html += " 有效标志"; html += " Y"; html += " "; html += " "; html += " 社会信用代码"; html += " 916101317H"; html += " "; html += " "; html += " 评估机关代码"; html += " 盛世"; html += " "; html += " "; html += " 工商注销日期"; html += " 2006-04-28"; html += " "; html += " "; html += ""; String outputFile = "D:\\pdf\\aa.pdf"; try { itextUtil.htmlCodeComeString("",html,outputFile,""); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("生成结束!!!"); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值