首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

java生成pdf议案总结

2012-12-27 
java生成pdf方案总结java生成pdf方案总结文章分类:Java编程java生成pdf方案很多,常用的如下: 1. 利用jacob

java生成pdf方案总结

java生成pdf方案总结文章分类:Java编程java生成pdf方案很多,常用的如下: 1. 利用jacob生成pdf:这种方法调用office的本地方法实现对pdf API的操作,只能在windows平台使用 2. 利用openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行 3. itext + flying saucer生成pdf:itext和flying saucer都是免费开源的,且与平台无关,结合css和velocity技术,可以很好的实现。 我们重点介绍第三种方案。它实现的步骤是非常简单的: 1.新建一个ITextRenderer类 2.添加字体 3.设置ITextRenderer的源文档 4.调用layout()方法 5.调用createPdf()方法 6.关闭输出流 代码如下: Java代码 1.package com.hank.pdfhtml;   2.  3./**  4. * @author Hank  5. * 2009-12-30  6. */  7.  8.import java.io.File;   9.import java.io.FileNotFoundException;   10.import java.io.FileOutputStream;   11.import java.io.IOException;   12.import java.io.OutputStream;   13.import java.net.MalformedURLException;   14.import java.net.URL;   15.  16.import org.xhtmlrenderer.pdf.ITextFontResolver;   17.import org.xhtmlrenderer.pdf.ITextRenderer;   18.  19.import com.lowagie.text.DocumentException;   20.import com.lowagie.text.pdf.BaseFont;   21.  22.public class Html2Pdf {   23.    private static void addFonts() throws DocumentException, IOException{   24.        if(null == renderer) {   25.            return;   26.        }   27.           28.        // 添加所需的字体   29.        ITextFontResolver fontResolver = renderer.getFontResolver();    30.  31.        URL fontsUrl = Html2Pdf.class.getResource("/com/hank/fonts/");//该文件夹下放所需字体文件   32.        File fonts = new File(fontsUrl.getPath());   33.        File[] fileList = fonts.listFiles();   34.        for(int i=0; i < fileList.length; i++){   35.            fontResolver.addFont(fileList[i].getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);   36.        }   37.           38.    }   39.       40.    public static String print2Pdf(String inputFile) {   41.        String url = null;   42.        try {   43.            url = new File(inputFile).toURI().toURL().toString();   44.        } catch (MalformedURLException e) {   45.            return null;   46.        }   47.  48.  49.        String outputFile = inputFile.substring(0, inputFile.lastIndexOf(".")) + ".pdf";   50.  51.        OutputStream os = null;   52.        try {   53.            os = new FileOutputStream(outputFile);   54.        } catch (FileNotFoundException e) {   55.               56.            return null;   57.        }   58.  59.        ITextRenderer renderer = null;   60.        try {   61.            renderer = new ITextRenderer();   62.        } catch (Exception e) {   63.            return null;   64.        }   65.           66.        renderer.setDocument(url);   67.           68.        // 解决图片的相对路径问题   69.        renderer.getSharedContext().setBaseURL("file:/D:/working/HtmlTemp/image/");   70.           71.        renderer.layout();   72.        try {   73.            renderer.createPDF(os);   74.        } catch (DocumentException e) {   75.            return null;   76.        }   77.           78.        try {   79.            os.close();   80.        } catch (IOException e) {   81.            return null;   82.        }   83.           84.        return outputFile;   85.    }   86.  87.        public static void main(String args[]){   88.            String inputFile = "D:/working/HtmlTemp/test.html"; //必须符合W3C标准   89.            Html2Pdf.print2Pdf(inputFile);   90.        }   91.}  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/strawbingo/archive/2010/10/14/5941203.aspx

热点排行