您的位置:首页 > 其它

自己动手写CSDN博客提取器源码分析之三:处理网页保存为pdf文件

2014-06-22 00:10 686 查看
转载自: http://blog.csdn.net/w397090770/article/details/7768129
 

 

下面我讲下处理pdf文件的,这里我用了PD4ML来处理的,原因有几个:(1)、它对CSS的支持做的很好;(2)、可以处理图片(很爽吧)(3)、可以处理中文,不过麻烦一些。基础的过程可以看我的另外一篇帖子java编程将HTML文件转换成PDF文件http://blog.csdn.net/w397090770/article/details/7753166。下面是我的处理流程:

 

[java]
view plaincopy

/** 
 *  
 */  
package com.wyp.html2pdf;  
  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.StringReader;  
  
import org.zefer.pd4ml.PD4Constants;  
import org.zefer.pd4ml.PD4ML;  
import org.zefer.pd4ml.PD4PageMark;  
  
/** 
 * @author w397090770 
 * Create Data: 2012-7-18 
 * Email: wyphao.2007@163.com 
 *  
 * 版权所有,翻版不究,但是在修改本程序的时候务必加上这些注释。谢谢 
 * 仅用于学习交流之用 
 *  
 * 保存网页为PDF 
 */  
public class saveAsPDF {  
      
      
    // HTML代码来自于HTML文件  
    public void generatePDF_2(File outputPDFFile, String contents, String title)  
            throws Exception {  
          
        File saveFileName = new File(outputPDFFile.getAbsoluteFile() + File.separator + title + ".pdf");  
        if(!saveFileName.exists()){  
            saveFileName.createNewFile();  
        }else{  
            return;  
        }  
          
        FileOutputStream fos = new FileOutputStream(saveFileName);  
        PD4ML pd4ml = new PD4ML();  
        //页眉  
        PD4PageMark headerMark = new PD4PageMark();  
        headerMark.setAreaHeight(30);  
        headerMark.setInitialPageNumber(1);  
        headerMark.setPagesToSkip(1);  
        headerMark.setTitleAlignment(PD4PageMark.CENTER_ALIGN);  
        headerMark.setHtmlTemplate(title); // autocompute  
        pd4ml.setPageHeader(headerMark);  
        //页脚  
        PD4PageMark footerMark = new PD4PageMark();  
        footerMark.setAreaHeight(30);  
        footerMark.setInitialPageNumber(10);  
        footerMark.setHtmlTemplate("武汉大学");  
        pd4ml.setPageFooter(footerMark);  
        //选择纸张大小、字库目录、字体等  
        pd4ml.setPageSize(PD4Constants.A4);  
        pd4ml.useTTF("file:fonts", true);  
        pd4ml.setDefaultTTFs("YouYuan", "Arial", "Courier New");  
        pd4ml.enableDebugInfo();  
        pd4ml.render(new StringReader(contents), fos);  
    }  
}  

代码页很简单的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐