• 大小: 93.78MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-08-16
  • 语言: Java
  • 标签: java  pdf  itext  freemarket  

资源简介

是java普通项目,直接导入MyEclipse即可运行即可使用(已包含jar包,没有数据库),代码注释很清楚,网上很多都是maven项目,且bug很多,现已进行修复。main方法执行即可生成。

资源截图

代码片段和文件信息

package main.com.example.pdf.util;

import java.io.IOException;

import org.bouncycastle.util.encoders.base64;  
import org.w3c.dom.Element;  
import org.xhtmlrenderer.extend.FSImage;  
import org.xhtmlrenderer.extend.ReplacedElement;  
import org.xhtmlrenderer.extend.ReplacedElementFactory;  
import org.xhtmlrenderer.extend.UserAgentCallback;  
import org.xhtmlrenderer.layout.LayoutContext;  
import org.xhtmlrenderer.pdf.ITextFSImage;  
import org.xhtmlrenderer.pdf.ITextImageElement;  
import org.xhtmlrenderer.render.BlockBox;  
import org.xhtmlrenderer.simple.extend.FormSubmissionListener;  
  
import com.lowagie.text.BadElementException;  
import com.lowagie.text.Image; 

public class B64ImgReplacedElementFactory implements ReplacedElementFactory {  
    
    /* 
     *  
     * 

title: createReplacedElement

  
     * 

Description: 

  
     * 

sql: 

  
     * 
     * @author  2016年11月1日 下午7:05:55 
     *  
     * @param c 上下文 
     * @param box 盒子 
     * @param uac 回调 
     * @param cssWidth css宽  
     * @param cssHeight css高 
     * @return  
     * @see org.xhtmlrenderer.extend.ReplacedElementFactory#createReplacedElement(org.xhtmlrenderer.layout.LayoutContext org.xhtmlrenderer.render.BlockBox org.xhtmlrenderer.extend.UserAgentCallback int int) 
     */  
    @Override  
    public ReplacedElement createReplacedElement(LayoutContext c BlockBox box UserAgentCallback uac int cssWidth  
            int cssHeight) {  
        Element e = box.getElement();  
        if (e == null) {  
            return null;  
        }  
        String nodeName = e.getNodeName();  
        // 找到img标签  
        if (nodeName.equals(“img“)) {  
            String attribute = e.getAttribute(“src“);  
            FSImage fsImage;  
            try { // 生成itext图像  
                fsImage = buildImage(attribute uac);  
            } catch (BadElementException e1) {  
                fsImage = null;  
            } catch (IOException e1) {  
                fsImage = null;  
            }  
            if (fsImage != null) { // 对图像进行缩放  
                if (cssWidth != -1 || cssHeight != -1) {  
                    fsImage.scale(cssWidth cssHeight);  
                }  
                return new ITextImageElement(fsImage);  
            }  
        }  
        return null;  
    }  
      
    /** 
     *  
     * TODO(将base64编码解码并生成itext图像)  
     * @author 2016年11月1日 下午7:08:57   
     * @param srcAttr 属性 
     * @param uac 回调  
     * @return 
     * @throws IOException 
     * @throws BadElementException 
     */  
    protected FSImage buildImage(String srcAttr UserAgentCallback uac) throws IOException BadElementException {  
        FSImage fsImage;  
        if (srcAttr.startsWith(“data:image/“)) {  
            String b64encoded = srcAttr.substring(srcAttr.indexOf(“base64“) + “base64“.length() srcAttr.length()); // 解码  
            byte[] decodedByt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        604  2018-05-08 17:00  pdf\.classpath

     文件        282  2018-05-07 16:52  pdf\.mymetadata

     文件       1746  2018-05-08 16:21  pdf\.project

     文件        500  2018-05-07 16:52  pdf\.settings\.jsdtscope

     文件        234  2018-05-08 17:05  pdf\.settings\org.eclipse.core.resources.prefs

     文件        364  2018-05-07 16:52  pdf\.settings\org.eclipse.jdt.core.prefs

     文件        447  2018-05-07 16:52  pdf\.settings\org.eclipse.wst.common.component

     文件        252  2018-05-07 16:52  pdf\.settings\org.eclipse.wst.common.project.facet.core.xml

     文件         49  2018-05-07 16:52  pdf\.settings\org.eclipse.wst.jsdt.ui.superType.container

     文件          6  2018-05-07 16:52  pdf\.settings\org.eclipse.wst.jsdt.ui.superType.name

     文件       1578  2018-05-07 16:51  pdf\demo-pdf\.project

     文件       1578  2018-05-07 16:51  pdf\demo-pdf\bin\.project

     文件       3764  2018-05-08 16:27  pdf\src\main\com\example\pdf\util\B64ImgReplacedElementFactory.java

     文件        319  2018-05-08 16:20  pdf\src\main\java\com\example\pdf\Demo1Application.java

     文件        747  2018-05-08 15:55  pdf\src\main\java\com\example\pdf\domain\SchedulePlan.java

     文件       4526  2018-05-08 17:01  pdf\src\main\java\com\example\pdf\util\PdfHelper.java

     文件       5238  2018-05-09 10:33  pdf\src\main\java\com\example\pdf\util\PdfUtils.java

     文件          0  2018-05-07 17:05  pdf\src\main\resources\application.properties

     文件   22932592  2018-05-07 17:05  pdf\src\main\resources\templates\arialuni.ttf

     文件   15067744  2018-05-07 17:05  pdf\src\main\resources\templates\msyh.ttf

     文件   16247072  2018-05-07 17:05  pdf\src\main\resources\templates\msyhbd.ttc

     文件   12003540  2018-05-07 17:05  pdf\src\main\resources\templates\msyhl.ttc

     文件   10499104  2018-05-07 17:05  pdf\src\main\resources\templates\simsun.ttf

     文件       3754  2018-05-09 10:31  pdf\src\main\resources\templates\test.ftl

     文件        335  2018-05-08 16:27  pdf\src\test\java\com\example\pdf\Demo1ApplicationTests.java

     文件        834  2018-05-07 16:52  pdf\WebRoot\index.jsp

     文件         36  2018-05-07 16:52  pdf\WebRoot\meta-INF\MANIFEST.MF

     文件       3487  2018-05-09 09:33  pdf\WebRoot\WEB-INF\classes\main\com\example\pdf\util\B64ImgReplacedElementFactory.class

     文件       1165  2018-05-09 09:33  pdf\WebRoot\WEB-INF\classes\main\java\com\example\pdf\domain\SchedulePlan.class

     文件       5207  2018-05-09 09:33  pdf\WebRoot\WEB-INF\classes\main\java\com\example\pdf\util\PdfHelper.class

............此处省略68个文件信息

评论

共有 条评论