日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。