-
大小: 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\.myme
文件 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.xm
文件 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\me
文件 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个文件信息
相关资源
- Tomcat与Java Web开发技术详解(第二版和
- jdk-11.0.2
-
java+Jfr
ame+sqlServer 图书管理系统 - Java编写的歌手大奖赛系统
- jdk_8.0.1310.11_64.rar
- 基于java在线点餐系统+源码+数据库语
- 基于java新闻发布及管理系统源码+论文
- java工具jdk1.80111
- eclipse-java-2019-09-R-win32-x86_64.zip
- Java性能优化权威指南 中文完整版 带
- Java仿QQ2.0版
- jdk-11.09,11版本最后的release版本
- 《算法》第4版,java语言,作者Rober
- Java核心技术卷1完整中文电子版
- java jdk-11.0.1 64位 绿色版
- java实现的语法分析程序
- java 栈的实现和应用
- java管理系统飞机订票源代码
- 计算机网络大作业_CSMA-CD协议退避算法
- (购买的_慕课网)java设计模式精讲
- java实现自动阅卷系统
- java俄罗斯方块源代码169448
- javaweb音乐网站
- jsp30个项目,适合初学者
- 基于内容的图像检索Java实现相当易懂
- java web入门经典书中光盘中的源码
- Java 网上招聘系统的设计与实现源码
- JAVA加密与解密的艺术第2版(良心保证
- 基于ssm的问卷调查系统
- 数据库课设学生宿舍管理系统源码j
评论
共有 条评论