用java實現html轉pdf

來源:互聯網
上載者:User

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;

import com.lowagie.text.pdf.BaseFont;

public class TestFlyingSauser
{

    public static void main( String[] args ) throws Exception
    {
//        demo_1();
        demo_2();
    }

    // 不支援中文
    public static void demo_1() throws Exception
    {
        String inputFile = "D:/Test/flying.html";
        String url = new File( inputFile ).toURI().toURL().toString();
        String outputFile = "D:/Test/flying.pdf";
        OutputStream os = new FileOutputStream( outputFile );
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument( url );
        renderer.layout();
        renderer.createPDF( os );
        os.close();
    }

    // 支援中文
    public static void demo_2() throws Exception { 
        String outputFile = "G:/demo_3.pdf"; 
        OutputStream os = new FileOutputStream(outputFile); 
        ITextRenderer renderer = new ITextRenderer(); 
        ITextFontResolver fontResolver = renderer.getFontResolver(); 
        fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 

        StringBuffer html = new StringBuffer(); 
        // DOCTYPE 必需寫否則類似於 這樣的字元解析會出現錯誤 
        html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); 

        html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").
             append("<head>") 
            .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
            .append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")

            .append("</head>") 
            .append("<body>"); 
        html.append("<div>支援中文!</div>"); 
        html.append("</body></html>"); 
        renderer.setDocumentFromString(html.toString()); 
        // 解決圖片的相對路徑問題 
        // renderer.getSharedContext().setBaseURL("file:/F:/teste/html/"); 
        renderer.layout(); 
        renderer.createPDF(os); 
        os.close(); 
    }}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.