使用 Itext 生成PDF字节数组(文件流不落地)
package com.ulic.gis.customerCenter.controller; import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfWriter;
/**
* 生成pdf字节数组
* 将字节数组转成pdf
* 2019年7月12日
*/
@Controller
public class CreatePdfByte {
private static final Logger log = LoggerFactory.getLogger(CreatePdfByte.class);
/**
* 生成pdf的字节数组
*/
@RequestMapping(value="/generatePDF")
public byte[] generatePDF() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();//构建字节输出流
Document doc =null; try { doc = new Document(new Rectangle(PageSize.A4));// 可配其余4个参数,如(rectPageSize,60,60,60,60)页面边距
PdfWriter.getInstance(doc,baos);//将PDF文档对象写入到流
doc.open();
doc.add(new Paragraph("Hello World 啦啦啦 success!"));
if(doc != null){
doc.close();
}
}catch(Exception e) {
log.error("PDF异常", e);
}finally{
if(baos != null){
try {
baos.close();
} catch (IOException e) {
log.error("PDF异常", e);
}
}
}
byte[] b = baos.toByteArray();//pdf字节数组
System.out.println("baos.toByteArray().length:"+baos.toByteArray().length);
return b;
}
/**
* 将字节数组转成pdf文件
* @throws IOException
*/
@RequestMapping(value="/array2pdf")
public void array2pdf() throws IOException {
System.out.println("开始生成pdf字节数组"); byte[] b = generatePDF(); String filename = "D:/testpdf/array2pdf.pdf";
FileOutputStream fout = new FileOutputStream(filename);
//将字节写入文件
fout.write(b);
fout.close();
}
}
使用 Itext 生成PDF字节数组(文件流不落地)的更多相关文章
- 字符串、字节数组、流之间的相互转换以及文件MD5的计算
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace myMe ...
- Java Itext 生成PDF文件
利用Java Itext生成PDF文件并导出,实现效果如下: PDFUtil.java package com.jeeplus.modules.order.util; import java.io.O ...
- 在linux环境下使用itext生成pdf
转载请注明出处 https://www.cnblogs.com/majianming/p/9537173.html 项目中需要对订单生成pdf文件,在不断的尝试之后,终于生成了比较满意的pdf文档. ...
- 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.
用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...
- Itext生成pdf文件
来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...
- itext 生成pdf文件添加页眉页脚
原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...
- 【Java】使用iText生成PDF文件
iText介绍 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- 关于itext生成pdf的新的demo(包含简单的提取txt文件的内容 和xml内容转化为pdf)
一.用的iText版本为7.0.2版本,maven的配置如下: <dependencies> <!-- always needed --> <dependency> ...
- 【PDF】java使用Itext生成pdf文档--详解
[API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...
随机推荐
- Centos7搭建Docker部署LNMP
1.首先呢先更新yum源 yum update 2.1.安装docker存储库 yum install -y yum-utils \ device-mapper-persistent-data \ l ...
- mint-ui下拉加载min和上拉刷新(demo实例)
<template> <div class="share"> <div class="header"> <div cl ...
- Java反射【四、成员变量的反射和构造的反射】
获取一个类下所有字段信息 Field[] fs = c.getFields(); 获取所有字段(public) Field[] fs = c.getDeclaredFields(); 获取所有声明字段 ...
- apache启动错误 AH00072: make_sock: could not bind to address [::]:443 windows系统端口/进程查看
1. netstat -ano|findstr " 2. tasklist|findstr "
- bootstap 表格自动换行 截取超长数据
<table class="table" style="TABLE-LAYOUT:fixed;WORD-WRAP:break_word">
- Scala(二)——基础语法(与Java的区分)和函数式编程
Scala快速入门(二) 一.键盘输入 关于基本类型的运算,以及复制运算,条件运算,运算符等知识,均和Java语言一样,这里不过多叙述. val name = StdIn.readLine() Std ...
- 第八章 watch监听 84 watch-监视路由地址的改变
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- JS 四种条件控制语句
// 1.if...else if (true) { console.log("TRUE1"); } else { console.log("TRUE2"); ...
- linux内核 进程管理
进程和线程 进程不单单包含可执行代码(代码段),好包含打开的文件,挂起的信号,处理器状态,虚拟内存地址等. 线程:从内核的角度来说,它并没有线程这个概念.Linux把所有线程都当做进程来实现.内核并没 ...
- BBS-添加文章及文章中图片
目录 BBS项目中的添加文章 BBS项目中的添加文章中的图片 BBS项目中的添加文章 1.添加文章的时候,我们需要特别注意的是这个地方需要利用到到BeautifulSoup这个模块,因为我们在inpu ...