itext html to pdf

BaseFont bfChinese = BaseFont.createFont( "STSongStd-Light" ,"UniGB-UCS2-H",false ); 
        Font font =  new  Font(bfChinese,12,Font.NORMAL, BaseColor.BLACK); 
        
        MyFontProvider myFontProvider = new MyFontProvider(BaseColor.BLACK, "", "", false, false, 12, 1, font);
		 // step 1
        Document document = new Document(PageSize.A4);
        Rectangle A42 = new RectangleReadOnly(800,700);
        document.setPageSize(A42);
        // step 2
        String filename = SystemConfig.getInstance().getFilePath()+".pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        // step 3
        document.open();
        // step 4
        XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                new FileInputStream(fnFile),null, Charset.forName("UTF-8"),myFontProvider);
        // step 5
        document.close();

 

 

 

MyFontProvider.javajava

/**
 * 
 */
package com.customerservice.cusbill;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontProvider;
import com.itextpdf.text.pdf.BaseFont;

public class MyFontProvider implements FontProvider {
	private BaseColor bc;
	private String fontname;
	private String encoding;
	private boolean embedded;
	private boolean cached;
	private float size;
	private int style;
	private Font baseFont;

	public MyFontProvider() {
	}

	public BaseColor getBc() {
		return bc;
	}

	public void setBc(BaseColor bc) {
		this.bc = bc;
	}

	public String getFontname() {
		return fontname;
	}

	public void setFontname(String fontname) {
		this.fontname = fontname;
	}

	public String getEncoding() {
		return encoding;
	}

	public void setEncoding(String encoding) {
		this.encoding = encoding;
	}

	public boolean isEmbedded() {
		return embedded;
	}

	public void setEmbedded(boolean embedded) {
		this.embedded = embedded;
	}

	public boolean isCached() {
		return cached;
	}

	public void setCached(boolean cached) {
		this.cached = cached;
	}

	public float getSize() {
		return size;
	}

	public void setSize(float size) {
		this.size = size;
	}

	public int getStyle() {
		return style;
	}

	public void setStyle(int style) {
		this.style = style;
	}

	public Font getFont() {
		return baseFont;
	}

	public void setFont(Font baseFont) {
		this.baseFont = baseFont;
	}

	public MyFontProvider(BaseColor bc, String fontname, String encoding, boolean embedded, boolean cached, float size,
			int style, Font baseFont) {
		super();
		this.bc = bc;
		this.fontname = fontname;
		this.encoding = encoding;
		this.embedded = embedded;
		this.cached = cached;
		this.size = size;
		this.style = style;
		this.baseFont = baseFont;
	}

	public Font getFont(String arg0, String arg1, boolean arg2, float arg3, int arg4, BaseColor arg5) {
		Font font = null;
		if (baseFont == null) {
			font = new Font();
		} else {
			font = new Font(baseFont);
		}
		font.setColor(arg5);
		font.setFamily(fontname);
		font.setSize(size);
		font.setStyle(arg4);
		return font;
	}

	public boolean isRegistered(String arg0) {
		// TODO Auto-generated method stub
		return true;
	}
}

 

須要3個jar:xmlworker-5.5.6.jar     itext-asian.jar    itextpdf-5.5.9.jaride

相關文章
相關標籤/搜索