使用pdfbox将PDF文件一页拆分为两页,自测是可以正常拆分的。

代码如下:

import lombok.extern.slf4j.Slf4j;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;import java.io.File;
import java.io.IOException;/*** PDF工具类** @author zuoy 2021-03-05*/
@Slf4j
public class PdfUtil {/*** 平均拆分第一页PDF为两页** @param path    原pdf路径* @param curPath 拆分后路径* @throws IOException*/public static void avgSplitFirstPage(String path, String curPath) {try (PDDocument document = new PDDocument();PDDocument doc = PDDocument.load(new File(path))) {// 裁剪上半部分PDPage topHalfPage = doc.getDocumentCatalog().getPages().get(0);PDRectangle topHalfRectangle = topHalfPage.getCropBox();float upperRightY1 = topHalfRectangle.getUpperRightY();topHalfRectangle.setLowerLeftY(upperRightY1 / 2);document.importPage(topHalfPage);// 裁剪下半部分PDPage bottomHalfPage = doc.getDocumentCatalog().getPages().get(0);PDRectangle bottomHalfRectangle = bottomHalfPage.getCropBox();float upperRightY = bottomHalfRectangle.getUpperRightY();float lowerLeftY = bottomHalfRectangle.getLowerLeftY();bottomHalfRectangle.setUpperRightY(upperRightY / 2);bottomHalfRectangle.setLowerLeftY(lowerLeftY);bottomHalfPage.setCropBox(bottomHalfRectangle);document.importPage(bottomHalfPage);// 保存拆分后pdf文件document.save(curPath);} catch (Exception e) {log.error("avgSplitFirstPage拆分错误", e);}}/*** 将每页pdf文件平均拆分为两页** @param path    原pdf路径* @param curPath 拆分后路径* @throws IOException*/public static void avgSplitEveryPage(String path, String curPath) {try (PDDocument document = new PDDocument();PDDocument doc = PDDocument.load(new File(path))) {PDPageTree pages = doc.getDocumentCatalog().getPages();for (int i = 0; i < pages.getCount(); i++) {// 裁剪上半部分PDPage topHalfPage = pages.get(i);PDRectangle topHalfRectangle = topHalfPage.getCropBox();float upperRightY1 = topHalfRectangle.getUpperRightY();topHalfRectangle.setLowerLeftY(upperRightY1 / 2);document.importPage(topHalfPage);// 裁剪下半部分PDPage bottomHalfPage = pages.get(i);PDRectangle bottomHalfRectangle = bottomHalfPage.getCropBox();float upperRightY = bottomHalfRectangle.getUpperRightY();float lowerLeftY = bottomHalfRectangle.getLowerLeftY();bottomHalfRectangle.setUpperRightY(upperRightY / 2);bottomHalfRectangle.setLowerLeftY(lowerLeftY);bottomHalfPage.setCropBox(bottomHalfRectangle);document.importPage(bottomHalfPage);}// 保存拆分后pdf文件document.save(curPath);} catch (Exception e) {log.error("avgSplitEveryPage拆分错误", e);}}public static void main(String[] args) {String path = "C:\\Users\\Administrator\\Desktop\\2.pdf";String cutPath = "C:\\Users\\Administrator\\Desktop\\cut.pdf";PdfUtil.avgSplitFirstPage(path, cutPath);}
}

使用pdfbox将PDF文件一页拆分为两页相关推荐

  1. Java实现PDF文件转图片(支持单页和多页)

    目录 一.背景 二.maven环境 2.1.依赖 2.2.插件 三.PDF工具类 四.实践 4.1.单页PDF形式的发票转为图片 4.2.多页PDF文档转为图片 结语 一.背景   很多小伙伴们不知道 ...

  2. PDF文件怎么在线拆分?教你在线拆分方法

    怎么做可以在线就能够将PDF文件给拆分开呢?PDF文件是大家在日常办公中经常使用的一种文件格式,使用的多了我们就会发现PDF文件一般情况下没办法直接编辑,当我们遇到需要将一份PDF文件拆分开来使用时, ...

  3. 利用pdfbox读取pdf文件内容和图片

    最近用pdfbox读取pdf文件中的内容和图片,可以获取每一页的内容和图片,但有个问题是没法获取图片在页面的位置.源码如下: package com.util; import java.awt.ima ...

  4. java pdfbox 提取pdf 标题_java – 使用pdfbox从PDF文件中提取文本

    我试图使用pdfbox从PDF文件中提取文本,但不是作为命令行工具,而是在我的 Java应用程序中.我正在使用jsoup下载pdf. res = Jsoup .connect(host+action) ...

  5. 使用PDFbox加密pdf文件

    pdf 文件加密解密,并转换成byte[]类型传输 使用PDFbox加密pdf文件的方法 总结 参考链接 使用PDFbox加密pdf文件的方法 1.引入依赖 <!-- pdfBox加密 --&g ...

  6. World一页打印变成两页怎么缩放

    World一页打印变成两页怎么缩放 本来只有一页的内容变成了一页多一点 找到打印页面的页面设置 把每页调大,如每页48行 , 还可以把间距调小 这样就可以一页打印了

  7. pdfbox 第一页加内容_Java使用PDFBox操作PDF文件获取页码、文章内容、缩略图

    一.依赖 com.sleepycat je 5.0.73 org.apache.pdfbox pdfbox 2.0.8 二.实现代码 import lombok.extern.slf4j.Slf4j; ...

  8. java 用PDFBox 删除 PDF文件中的一页 ,空白页啥的,此处删除最后一页为例 spring boot

    依赖: <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-app&l ...

  9. 使用 Apache PDFBox 操作PDF文件

    简介 Apache PDFBox库是一个用于处理PDF文档的开源Java工具.该项目允许创建新的PDF文档,操作现有PDF文档,并从PDF文档中提取内容.Apache PDFBox还包括几个命令行实用 ...

最新文章

  1. 纵深防御仍对付得了当今的网络威胁吗?
  2. AsyncTask 实现异步处理任务
  3. 数据库元数据数据字典查询_4_列出给定表的索引信息
  4. Packet for query is too large
  5. linux文件传输到另一台linux,使用scp将文件/目录拷贝到另一台Linux主机上
  6. NTFS不利的一面——ADS流文件
  7. WinAPI-01GetModuleHandle
  8. 修改VSCode中.exe文件的生成位置(亲测有效)
  9. 基于万维易源提供的API接口实现快递单号查询物流信息
  10. B/S端界面控件DevExtreme Gantt控件——可轻松导出PDF
  11. SQL2000中文版打不上SP4提示用户验证没有通过
  12. 看到的不错的产品助理面试题
  13. HDU 5037 贪心
  14. Mysql中date和datetime的区别
  15. 为什么python文件会闪退_困扰已久的问题--python文件打开方式?为什么打开py文件会闪退!...
  16. idea使用小技巧(一)
  17. Excel图表:随心所欲模拟坐标轴
  18. 计算机网络——虚拟机网络的三种模式介绍-桥接模式-NAT模式-仅主机模式
  19. 钱多多第二阶段冲刺04
  20. linux 硬盘使用监控,zabbix3.2监控linux磁盘使用空间

热门文章

  1. SyntaxError: Non-ASCII character ‘\xe2‘ in file
  2. python-猜字小游戏
  3. MIFARE系列7《安全》
  4. 北京UI设计培训,为什么要学5个月以上
  5. 语义分割-Rethinking BiSeNet For Real-time Semantic Segmentation-1-Cityscapes数据集
  6. 超难的智力题:12小球问题
  7. 小虎电商浏览器:卖家精灵利用关键词选品和查同类产品工具
  8. HP CQ35 Windows7声卡驱动安装不上问题
  9. Linux 基本操作:使用 lsblk 命令查看磁盘信息
  10. 服务器怎么用u盘加载硬盘驱动,戴尔服务器安装用U盘加载硬盘控制卡驱动.pdf