Java:获取pdf中某一页的宽度和高度

本文介绍了在金融业务中如何使用Java的ApachePDFBox库和Python的PyPDF2库获取PDF页面的X、Y坐标,以便于合同盖章时确保位置正确。通过示例代码展示了如何在Java和Python中加载PDF并获取特定页面的尺寸信息。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、背景介绍

二、用Java中的方法

三、用Python中的方法

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、背景介绍

金融业务,经常会涉及到合同盖章,那么盖章的时候就需要知道位置信息。比如第几页,X坐标,Y坐标。那么如果给出的坐标超出了范围,就会导致章盖不成功,那么我们怎么才能知道这个pdf文件中某一页的XY坐标呢?

二、用Java中的方法

Maven依赖: 

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.8</version>
</dependency>

示例代码:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;


public void 输出pdf页面横纵坐标范围() {
        String pdfPath = "C:\\Users\\86185\\Desktop\\951bb404d7ae4bc0b0152255a6d79c59.pdf";
        try (PDDocument document = PDDocument.load(new File(pdfPath))) {
            PDPage page = document.getPage(1);
            float width = page.getMediaBox().getWidth();
            float height = page.getMediaBox().getHeight();
            System.out.println("页面宽度:" + width);
            System.out.println("页面高度:" + height);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

三、用Python中的方法

代码示例:

import PyPDF2

def get_page_dimensions(pdf_path, page_number):
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfFileReader(file)
        if page_number < 1 or page_number > reader.numPages:
            return None
        page = reader.getPage(page_number - 1)
        width = page.mediaBox.getWidth()
        height = page.mediaBox.getHeight()
        return width, height

pdf_path = 'your_pdf_file.pdf'
page_number = 1

dimensions = get_page_dimensions(pdf_path, page_number)
if dimensions:
    print("页面宽度:", dimensions[0])
    print("页面高度:", dimensions[1])
else:
    print("无效的页码")


总结

各种工具类的使用,重在积累,不难,但是要找一翻。

使用 JavaPDFBox 库可以将一页 PDF 左右平均切割为两页。下面是一个简单的示例代码: ```java import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageTree; import java.io.IOException; public class PDFSplitter { public static void main(String[] args) { try { // 加载 PDF 文档 PDDocument document = PDDocument.load("input.pdf"); // 获取一页 PDPage firstPage = document.getPage(0); // 获取一页宽度高度 float pageWidth = firstPage.getMediaBox().getWidth(); float pageHeight = firstPage.getMediaBox().getHeight(); // 创建新的两页并设置宽度高度 PDPage newPage1 = new PDPage(new PDRectangle(pageWidth / 2, pageHeight)); PDPage newPage2 = new PDPage(new PDRectangle(pageWidth / 2, pageHeight)); // 创建页面树对象 PDPageTree pageTree = document.getDocumentCatalog().getPages(); // 将新的两页添加到页面树 pageTree.insertAfter(newPage1, firstPage); pageTree.insertAfter(newPage2, newPage1); // 保存切割后的 PDF document.save("output.pdf"); // 关闭文档 document.close(); System.out.println("PDF 切割完成。"); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码PDF 文档加载后,获取一页宽度高度,并根据宽度的一半创建两个新的 PDPage 对象。然后,将这两个新的页面插入到页面树,保存为新的 PDF 文档。最后关闭文档。执行该代码后,会生成一个名为 "output.pdf" 的新 PDF 文件,其一页是原始第一页的左半部分,第二页是原始第一页的右半部分。 请注意,你需要提前导入 PDFBox 库以及相关的依赖。这个示例仅供参考,你可能需要根据自己的需求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值