欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java 使用itextpdf分割pdf文件,pdf分页

发布时间:2023/12/20 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 使用itextpdf分割pdf文件,pdf分页 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

itextpdf依赖

<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></dependency>

代码实现,  我这里是直接输出到response的响应流了,给前端页面分页查看pdf用,如果分割成多个pdf文件,可以输出到自己的FileOutputStream

PdfReader reader = null;PdfWriter writer = null;//获取文件输入流FileInputStream is = null;try (//获取响应输出流ServletOutputStream os = response.getOutputStream()) {//截取文件名称String fileName = path.substring(path.lastIndexOf("\\"));//文件下载response.setHeader("content-disposition","attachment;fileName=" + new String(fileName.getBytes("gb2312"), StandardCharsets.ISO_8859_1));// 页码为0 下载整个文件if (pageNum == 0) {is = new FileInputStream(tbSysParamsMapper.selectById("FILEPATH").getValue() + "\\" + path);IoUtil.copy(is, os);} else {reader = new PdfReader(tbSysParamsMapper.selectById("FILEPATH").getValue() + "\\" + path);//总页数int pageCount = reader.getNumberOfPages();if (pageNum > pageCount) {throw new MyException(RespCodeEnum.NOT_HAVE_PAGES);}Document dd = new Document(reader.getPageSize(pageNum));writer = PdfWriter.getInstance(dd, os);dd.open();PdfContentByte cb = writer.getDirectContent();dd.newPage();cb.addTemplate(writer.getImportedPage(reader, pageNum), 0, 0);dd.close();writer.close();}} catch (IOException | DocumentException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (writer != null) {writer.close();}if (is != null) {try {is.close();} catch (IOException e) {e.printStackTrace();}}}

总结

以上是生活随笔为你收集整理的java 使用itextpdf分割pdf文件,pdf分页的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。