当前位置: 首页 > wzjs >正文

济南网站制作多少钱友情链接作用

济南网站制作多少钱,友情链接作用,邯郸建设局公开网站,电子商务网站cms目录 前言一、引入依赖二、整体思路与步骤三、代码实现(完整例子)1、创建一个接口2、创建自定义事件处理器3、创建一个实现类4、写一个控制器调用接口5、启动springboot项目,浏览器调用接口前言 iTextPDF 是一个用于创建和操作 PDF 文档的 Java 库。它功能强大,支持生成、修…

目录

  • 前言
    • 一、引入依赖
    • 二、整体思路与步骤
    • 三、代码实现(完整例子)
      • 1、创建一个接口
      • 2、创建自定义事件处理器
      • 3、创建一个实现类
      • 4、写一个控制器调用接口
      • 5、启动springboot项目,浏览器调用接口

前言

  iTextPDF 是一个用于创建和操作 PDF 文档的 Java 库。它功能强大,支持生成、修改、加密、签名 PDF 文件,二维码、条形码生成等操作,本文使用iTextPDF的8.0.5版本,总结了利用iTextPDF技术来实现pdf生成的各种操作,如果大家在项目中有pdf生成的需求可以按照此篇文章的例子来实现。

一、引入依赖

  在pom文件中引入如下依赖
1、itextpdf核心包

<dependency><groupId>com.itextpdf</groupId><artifactId>itext-core</artifactId><version>8.0.5</version><type>pom</type>
</dependency>

2、中文字体支持包

<dependency><groupId>com.itextpdf</groupId><artifactId>font-asian</artifactId><version>8.0.5</version>
</dependency>

3、二维码和条形码包

<dependency><groupId>com.itextpdf</groupId><artifactId>barcodes</artifactId><version>8.0.5</version>
</dependency>

4、加密相关包(如无pdf加密可以不引入)

<dependency><groupId>com.itextpdf</groupId><artifactId>kernel</artifactId><version>8.0.5</version>
</dependency>
<dependency><groupId>com.itextpdf</groupId><artifactId>bouncy-castle-adapter</artifactId><version>8.0.5</version>
</dependency>

二、整体思路与步骤

  一般情况下我们生成的pdf大概包含标题、正文、页眉、页脚、字体、背景、水印、表格、加密等这些元素,由于生成的pdf可能存在多页,所以像是页眉、页脚、背景、水印这些元素需要每一页都存在,特别是页脚中的页码数字还需要随着页数增加自动填充,iTextPDF 提供了一个IEventHandler(事件处理器)接口,我们通过实现这个接口就可以自定义实现上述效果,可以在每一页插入元素。
  整体的pdf生成思路如下:

1、创建ByteArrayOutputStream输出流对象,用于存放数据
2、创建WriterProperties配置项对象,此配置可以设置pdf加密等内容
3、创建PdfDocument文档对象并且添加流对象和配置对象
4、创建自定义事件处理器并添加,用于处理页眉页脚等内容
5、创建字体PdfFont对象,用于pdf文档统一字体
6、创建PageSize页面尺寸对象,用于设置pdf尺寸,一般也就是A4
7、通过PdfDocument对象创建Document文档对象并且设置尺寸
8、通过Document文档对象设置字体、创建标题、段落、表格等等我们业务所需要的内容
9、上述步骤处理完毕后数据就已经存在于ByteArrayOutputStream输出流中,然后将流响应到浏览器下载

三、代码实现(完整例子)

  根据上述步骤进行详细代码编写,本篇文章通过实现一个接口实现pdf生成并响应到浏览器下载的效果,这也是常见的开发需求,如果大家在项目中有遇到的可以直接看这个例子,只需要根据自己的业务删减修改即可。

1、创建一个接口

  创建一个生成pdf接口PdfService,创建一个生成pdf的方法generatePdf传入一个响应对象用于后续调用时候响应到浏览器下载

import javax.servlet.http.HttpServletResponse;/*** @Author: 你住过的屋檐* @aphorism You are lucky to have someone to help you.No one to help you, is just fate.No one should do anything for you, because life is your own, you are responsible for yourself*/
public interface PdfService {
/*** 生成pdf* @param response*/void generatePdf(HttpServletResponse response);
}

2、创建自定义事件处理器

  事件处理器中处理页眉、页脚、二维码、条形码、背景等内容,下面代码中每一处都有详细的说明,大家一看就可以明白

import com.itextpdf.barcodes.Barcode128;
import com.itextpdf.barcodes.BarcodeQRCode;
import com.itextpdf.barcodes.qrcode.EncodeHintType;
import com.itextpdf.barcodes.qrcode.ErrorCorrectionLevel;
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.colors.ColorConstants;
import com.itextpdf.kernel.events.Event;
import com.itextpdf.kernel.events.IEventHandler;
import com.itextpdf.kernel.events.PdfDocumentEvent;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.extgstate.PdfExtGState;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Div;
import com.itextpdf.layout.element.Image;
import lombok.Data;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;/*** @Author: 你住过的屋檐* @aphorism You are lucky to have someone to help you.No one to help you, is just fate.No one should do anything for you, because life is your own, you are responsible for yourself* 该类实现了给pdf添加背景图、水印,条形码、二维码,页码功能,大家有需要自行看代码,注释写的很详尽*/
@Data
public class PdfHeaderFooter implements IEventHandler {@Overridepublic void handleEvent(Event event) {if (event instanceof PdfDocumentEvent) {PdfDocumentEvent e = (PdfDocumentEvent) event;//获取pdf文档对象PdfDocument pdfDocument = e.getDocument();//获取当前文档的
http://www.dtcms.com/wzjs/353949.html

相关文章:

  • 免费flash网站模板带后台百度信息流广告
  • 网站焦点图多少钱基本seo
  • 学做网站平台网站推广优化教程
  • 体育健身网站建设短视频营销优势
  • 巨好用企业网站源码网络营销的好处
  • 杭州网站建设哪里好百度惠生活商家入驻
  • 学校网站的系统建设方式换友情链接的网站
  • 网站设计与开发培训seo网站排名优化案例
  • 1688做网站费用上海做关键词推广企业
  • 南昌招网页设计师的公司seo网站建站
  • 新媒体营销案例分析优质的seo网站排名优化软件
  • 宁夏制作网站公司搜索网站有哪几个
  • 浅谈天猫的电子商务网站建设有没有自动排名的软件
  • 深圳蚂蚁网络网站建设淘宝运营培训班学费大概多少
  • 人跟狗做网站公司网站
  • n加1网站建设百度怎么做网站
  • 一个网站怎么留住用户seo费用
  • 网站优化怎样做新闻头条最新消息
  • 网站建设方案书内容全媒体广告代理
  • 网站感谢页面模板式自助建站
  • 宁波市北仑区建设局网站查看百度关键词价格
  • 北京手机网站搭建多少钱重庆森林经典台词
  • 建设银行网站e动终端关键词推广排名
  • 网站建设的上市公司在线seo优化工具
  • 大连网站制作-中国互联提升关键词
  • 音乐摄影网站建设宗旨推客平台
  • 语音网站怎么做长春网站优化平台
  • 如何用ps做网站效果图万网域名交易
  • 网站编辑如何做原创西安网络推广外包公司
  • 怎么看网站是谁家做的厦门网络推广哪家强