试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档

问题描述 投票:0回答:1

我正在使用itext7 PdfWriter创建两个ByteArrayOutputStream,然后使用merge将它们合并到一个pdf中,但是当我尝试打开最终的合并pdf时说加载失败。@GetMapping(value = "/customers",

produces = MediaType.APPLICATION_PDF_VALUE)

public ResponseEntity customersReport() throws IOException {

ByteArrayOutputStream out = new ByteArrayOutputStream();

PdfDocument pdf = new PdfDocument(new PdfWriter(out));

Document document = new Document(pdf);

Paragraph p = new Paragraph("AAAAAAAAA");

document.add(p);

document.close();

ByteArrayOutputStream out1 = new ByteArrayOutputStream();

PdfDocument pdf1 = new PdfDocument(new PdfWriter(out1));

Document document1 = new Document(pdf1);

Paragraph p1 = new Paragraph("123456A");

document1.add(p1);

document1.close();

ByteArrayOutputStream outfinal = new ByteArrayOutputStream();

PdfDocument pdfDoc = new PdfDocument(new PdfWriter(outfinal));

PdfMerger merger = new PdfMerger(pdfDoc);

PdfDocument pdf2 = new PdfDocument(new PdfReader(new ByteArrayInputStream(out.toByteArray())));

merger.merge(pdf2,1,pdf2.getNumberOfPages());

PdfDocument pdf3 = new PdfDocument(new PdfReader(new ByteArrayInputStream(out1.toByteArray())));

merger.merge(pdf3,1,pdf3.getNumberOfPages());

ByteArrayInputStream bis = new ByteArrayInputStream(outfinal.toByteArray());

HttpHeaders headers = new HttpHeaders();

headers.add("Content-Disposition", "inline; filename=customers.pdf");

return ResponseEntity

.ok()

.headers(headers)

.contentType(MediaType.APPLICATION_PDF)

.body(new InputStreamResource(bis));

}

java

spring

spring-boot

pdf

itext7

1个回答

1

投票

您必须关闭合并merger.close();

在使用其输出之前ByteArrayInputStream bis = new ByteArrayInputStream(outfinal.toByteArray());

因为仅在关闭pdf文件时完成。

热门问题

java pdf无法加载_java - 试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档 - SO中文参考 - www.soinside.com...相关推荐

  1. html中文手文档,HTML5 中文参考手册(打印版)

    HTML5 中文参考手册整理成方便打印出来参阅的pdf文档. HTML4与HTML5标签及描述简表 标签 描述 4 5 定义注释. 4 5 定义文档类型. 4 5 定义超链接. 4 5 定义缩写. 4 ...

  2. Java点击按钮加一行数据_java - 单击按钮java时如何从txt文件绘制下一行? - SO中文参考 - www.soinside.com...

    单击按钮java时如何从txt文件绘制下一行? 问题描述 投票:0回答:1 import javax.swing.*; import java.awt.*; import java.awt.event ...

  3. php 合并数组成父子关系,php - 将电子表格解析为PHP数组并返回具有父子关系的嵌套MLM表 - SO中文参考 - www.soinside.com...

    这里有一些非递归代码可以让你开始(如果你还没有解决它),它将根据从电子表格加载的$rows数组构建一个树. 这个想法是每个节点都有一个名称和一个子数组.所以代码只是在步骤1中为每个人(父和子)创建一个 ...

  4. 打开oracle数据库oe,database - Oracle数据库11g:OE.ORDERS表不存在 - SO中文参考 - www.soinside.com...

    我尝试创建Oracle数据库11g的一个简单的功能,但它给我下面的错误.现在看来似乎找不到OE.ORDERS表.请您帮忙! 谢谢! 码: --Create following function as ...

  5. java pdf 中文_java-pdf-itext 生成pdf 文档(支持中文字体)

    java-pdf-itext 生成pdf 文档(支持中文字体) itext 版本:2.1.7 package com.demo.preview; import java.io.ByteArrayOut ...

  6. SpringBoot中文文档 SpringBoot中文参考指南 SpringBoot中文参考文档 springboot中文文档 springboot中文

    SpringBoot中文文档 SpringBoot中文参考指南 SpringBoot中文参考文档 springboot中文文档 springboot中文 SpringBoot中文文档 SpringBo ...

  7. java之全文索引搜索lucene之增删改查文档与中文分词搜索

    java之全文索引搜索lucene之增删改查文档与中文分词搜索 接上文,接下来介绍一个lucene的各种query,然后介绍一下中文全文索引搜索. 对于各种query,我就直接上代码了,具体的话,我已 ...

  8. java zoneoffset,java - 如何在java8中获取默认的ZoneOffset? - SO中文参考 - www.soinside.com...

    tl;dr OffsetDateTime.now().getOffset() 但您可能应该使用时区而不是仅仅偏离UTC. ZoneId.systemDefault() Offset versus Ti ...

  9. python importlib bootstrap_python - importlib._bootstrap和Python解释器初始化 - SO中文参考 - www.soinside.com...

    CPython的解释模块导入系统是用Python编写本身和importlib._bootstrap被初始化.它的来源可以importlib/_bootstrap.py可以看到,但它不是从那里加载.相反 ...

最新文章

  1. Python遍历列表时删除元素
  2. 2014年第五届蓝桥杯C/C++ A组国赛 —— 第四题:排列序数
  3. android opencv 识别文字_基于SpringBoot的车牌识别系统(附项目地址)
  4. HTTP消息中Header头部信息整理
  5. python重定向_在Python中使用urlopen()防止“隐藏”重定向
  6. linux下部署mysql数据库连接_Linux远程部署MySQL数据库详细步骤
  7. 《Python游戏趣味编程》 第1章 Python与开发环境介绍
  8. Ubuntu18.04报错:system/tools/aidl/aidl_language_y.yy: error: define variable ‘api.pure‘ is not used
  9. vs2005中分割线怎么插入
  10. 数据分析与可视化概述
  11. php获取ICON图标
  12. OOM and SOF
  13. ionic学习(十一):页面下拉刷新(Refresher)
  14. 五种3DMAX使用版本区别比较(一)
  15. 2021年中国集成电路行业产业链分析:下游市场需求巨大[图]
  16. 狸猫浏览器v2.0功能解析
  17. warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock
  18. .xml配置文件中The reference to entity serverTimezone must end with the ';' delimiter.错误
  19. python 图片生成视频 moviepy_MoviePy
  20. 新手必须掌握的20个摄影构图法 转

热门文章

  1. Java进程CPU占用高导致的网页请求超时的故障排查
  2. jeecg-framework-3.1.0.RELEASE 正式发布
  3. 使用js函数实现的通过输入框中数据的长度来控制光标聚焦位置
  4. Android开发环境准备和常用命令总结
  5. 技术专家:为什么我们最终选择Apache Pulsar替代Kafka?
  6. kylin安装过程问题排查
  7. 手把手教你用.NET Core写爬虫
  8. LVM逻辑卷管理命令
  9. 大数据Java基础第十二天作业
  10. 状态栏背景颜色(转载)