java 其他文件转成pdf java生成pdf

来源:互联网 发布:fi是什么软件 编辑:程序博客网 时间:2024/05/16 12:35

java生成pdf需要用到的包pd4ml.jar

下载地址:http://download.csdn.net/detail/yanning1314/7124741

package com.cular.util;import java.awt.Dimension;import java.awt.Insets;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.net.URL;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.zefer.pd4ml.PD4ML;import org.zefer.pd4ml.PD4PageMark;public class PDFConverter {//public byte[] generatePDF(InputStreamReader isr, String pdfFilename, String baseurl){////FileOutputStream fos = null;//byte[] res = null;//ByteArrayOutputStream baos = null; //try{////fos = new FileOutputStream(new File(pdfFilename));//baos = new ByteArrayOutputStream();//PD4ML pd4ml = new PD4ML();//pd4ml.setPageInsets(new Insets(10, 10, 10, 10));//pd4ml.setHtmlWidth(1000);//pd4ml.enableImgSplit(false);////Dimension format = PD4ML.A4;////pd4ml.setPageSize(pd4ml.changePageOrientation(format)); // landscape page orientation//pd4ml.useTTF("java:fonts", true );////pd4ml.enableDebugInfo();////// footer if needed////PD4PageMark footer = new PD4PageMark(); ////footer.setPageNumberTemplate("page $[page] of $[total]");   ////footer.setPageNumberAlignment(PD4PageMark.RIGHT_ALIGN);   ////footer.setInitialPageNumber(1);   ////footer.setPagesToSkip(1);   ////footer.setFontSize(10);   ////footer.setAreaHeight(18);      ////pd4ml.setPageFooter(footer); //////pd4ml.render(isr, baos, new URL(baseurl));////res = baos.toByteArray();//}catch(Exception e){//e.printStackTrace();////try{fos.close();fos=null;}catch(Exception ee){}////fos=null;//try{baos.close();baos=null;}catch(Exception ee){}//baos=null;//}finally{////try{fos.close();fos=null;}catch(Exception ee){}//try{baos.close();baos=null;}catch(Exception ee){}//}////return res;//}public static void main(String[] args) {PDFConverter pdf = new PDFConverter();pdf.processFile("d://123/", "123.pdf", "http://localhost:8080/CULAR/", "test.jsp");}/** *  * @param folder 生成pdf后放在哪个目录 * @param filename pdf的名称 * @param baseurl 要生成pdf的url * @param jspString 要把哪个生成pdf * @return */public boolean processFile(String folder, String filename,String baseurl,String jspString){boolean res = false;InputStreamReader isr = null;try{File f = new File(folder);if (f.isDirectory()) {f.mkdir();}String fullfilename = folder + filename;HttpClient client = new DefaultHttpClient();HttpGet h_request = new HttpGet(baseurl + jspString);HttpResponse h_response = client.execute(h_request);isr = new InputStreamReader(h_response.getEntity().getContent(), "UTF-8");PDFConverter converter = new PDFConverter();//String localpath = getServletContext().getInitParameter("pdfDir") + admin.getUserid() + "/" + lessonid + ".pdf";//String downloadUrl = getServletContext().getInitParameter("pdfUrl") + admin.getUserid() + "/" + lessonid + ".pdf";res = converter.generatePDF(isr, fullfilename, baseurl);}catch(Exception e){e.printStackTrace();}finally{try{isr.close();isr=null;}catch(Exception e){}}return res;}/** * 生成pdf * @param isr * @param pdfFilename * @param baseurl * @return */public boolean generatePDF(InputStreamReader isr, String pdfFilename, String baseurl){FileOutputStream fos = null;boolean res = false;try{fos = new FileOutputStream(new File(pdfFilename));PD4ML pd4ml = new PD4ML();pd4ml.setPageInsets(new Insets(10, 10, 10, 10));pd4ml.setHtmlWidth(1000);pd4ml.enableImgSplit(false);//Dimension format = PD4ML.A4;//pd4ml.setPageSize(pd4ml.changePageOrientation(format)); // landscape page orientationpd4ml.useTTF("java:fonts", true );//pd4ml.enableDebugInfo();// footer if needed//PD4PageMark footer = new PD4PageMark(); //footer.setPageNumberTemplate("page $[page] of $[total]");   //footer.setPageNumberAlignment(PD4PageMark.RIGHT_ALIGN);   //footer.setInitialPageNumber(1);   //footer.setPagesToSkip(1);   //footer.setFontSize(10);   //footer.setAreaHeight(18);      //pd4ml.setPageFooter(footer); pd4ml.render(isr, fos, new URL(baseurl));res = true;//res = baos.toByteArray();}catch(Exception e){e.printStackTrace();}finally{try{fos.close();fos=null;}catch(Exception ee){}}return res;}}


1 1
原创粉丝点击