首页 > 编程语言 >Python 调整PDF页面尺寸大小

Python 调整PDF页面尺寸大小

时间:2024-06-11 16:32:28浏览次数:19  
标签:文档 自定义 Python 尺寸 PDF 页面

在处理PDF文件时,我们可能会遇到这样的情况:原始PDF文档不符合我们的阅读习惯,或者需要适配不同显示设备等。这时,我们就需要及时调整PDF文档中的页面尺寸,以满足不同应用场景的需求。

利用Python语言的高效性和灵活性,再结合Spire.PDF for Python 库的强大功能,我们可以通过Python代码轻松实现对PDF页面的批量调整。在这篇文章中,我们将介绍两种调整PDF页面大小的方法:

1. 将PDF页面尺寸调整为常见标准尺寸

2. 将PDF页面尺寸调整为自定义尺寸

首先,需要先将 Spire.PDF for Python 库安装到项目中。pip命令:

pip install Spire.PDF

 

使用Python 调整PDF页面大小的步骤

Spire.PDF for Python 库提供的调整PDF页面大小的方式是将原PDF文档的内容复制到指定尺寸的新的PDF文档的页面上。主要实现步骤为:

  1. 加载原始PDF文档,然后创建一个新的PDF文档;
  2. 循环遍历原始PDF文档中的每一页;
  3. 使用方法在新的PDF文档中添加指定大小的页面;
  4. 基于原始PDF文档中页面的内容来创建模板;
  5. 将模板绘制到新 PDF 文档的页面上;
  6. 保存新PDF文档。

 

Spire.PDF for Python 支持A1, A2, A3, A4, B1, B2, B3, B4等标准页面尺寸,也支持自定义页面尺寸。下面将提供示例代码分别介绍:

 

1. 将PDF页面尺寸调整为常见标准尺寸

from spire.pdf.common import *
from spire.pdf import *
 
# 加载原始PDF文档
originalPdf = PdfDocument()
originalPdf.LoadFromFile("报告.pdf")
 
# 创建新PDF文档
newPdf = PdfDocument()
 
# 遍历原始PDF文档中的页面
for i in range(originalPdf.Pages.Count):
    page = originalPdf.Pages.get_Item(i)
 
    # 在新PDF文档中添加A4大小的页面
    newPage = newPdf.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0))
 
    # 创建PdfTextLayout实例
    layout = PdfTextLayout()
 
    # 将文本布局设置为单页,以确保内容能够正确适应页面大小
    layout.Layout = PdfLayoutType.OnePage
 
    # 基于原始PDF页面创建模板
    template = page.CreateTemplate()
 
    # 将模板绘制到新PDF文档的页面上
    template.Draw(newPage, PointF.Empty(), layout)
 
# 保存新PDF文档
newPdf.SaveToFile("调整PDF页面为A4大小.pdf")
newPdf.Close()

生成文件(A4纸规格为210mm×297mm):

 

2. 将PDF页面尺寸调整为自定义尺寸

from spire.pdf.common import *
from spire.pdf import *
 
# 加载原始PDF文档
originalPdf = PdfDocument()
originalPdf.LoadFromFile("报告.pdf")
 
# 创建新PDF文档
newPdf = PdfDocument()
 
#创建PdfUnitConvertor类的对象,用于转换不同的测量单位
unitCvtr = PdfUnitConvertor()
 
# 将自定义尺寸的单位由毫米转换为点数(磅)
width = unitCvtr.ConvertUnits(180, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
height = unitCvtr.ConvertUnits(225, PdfGraphicsUnit.Millimeter, PdfGraphicsUnit.Point)
 
# 创建一个自定义宽度和高度的SizeF对象
size = SizeF(width, height)
 
# 遍历原始PDF中的页面
for i in range(originalPdf.Pages.Count):
    page = originalPdf.Pages.get_Item(i)
 
    # 在新PDF文档中添加自定义尺寸(180*225mm)的页面
    newPage = newPdf.Pages.Add(size, PdfMargins(0.0))
 
    # 创建PdfTextLayout实例
    layout = PdfTextLayout()
 
    # 将文本布局设置为单页,以确保内容能够正确适应页面大小
    layout.Layout = PdfLayoutType.OnePage
 
    # 基于原始PDF页面创建模板
    template = page.CreateTemplate()
 
    # 将模板绘制到新PDF文档的页面上
    template.Draw(newPage, PointF.Empty(), layout)
 
# 保存新PDF文档
newPdf.SaveToFile("自定义PDF页面大小.pdf")
newPdf.Close()

生成文件(此处自定义尺寸为180mm×225mm):


通过以上两段示例代码,我们可以根据需求将PDF页面调整为想要的尺寸。除此之外,Spire.PDF for Python库还支持调整PDF页边距、纸张方向等。使用过程中遇到任何问题,都可以前往论坛交流。

标签:文档,自定义,Python,尺寸,PDF,页面
From: https://www.cnblogs.com/Yesi/p/18242304

相关文章

  • xps格式文件怎么打开,能转换成pdf吗?
    当我们接收到一个没法打开的文件,应该说是很少接触,电脑也没有安装可以打开的程序时,想要阅览这个文件该怎么办呢?可以转换成自己可以看的文件吗?格式转换这个操作其实挺常见的,毕竟很多时候,不是经常使用的文件,我们电脑没必要安装太多的应用程序,像这种一次两次偶然的情况,直接转换格式看......
  • python怎么保留小数
    保留两位小数,并做四舍五入处理方法一:使用字符串格式化a = 12.345print("%.2f" % a)# 12.35方法二:使用round内置函数a = 12.345a1 = round(a, 2)print(a1)# 12.35方法三:使用decimal模块from decimal import Decimala = 12.345Decimal(a).......
  • python怎么画曲线图
    如何使用python画曲线图?下面是基本步骤:前提首先,为了实际使用Matplotlib,我们需要安装它。安装如果你安装了更高版本的Python,你应该能够打开cmd.exe或终端,然后执行:pip install matplotlib注意:如果上面的较短命令不工作,你可能需要执行C:/Python34/Scripts/pipinsta......
  • 基于Vue+Node.js的高校学业预警系统+10551(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    NodeJS高校学业预警系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。......
  • 使用python处理excel数据
    使用python处理excel数据python处理excel数据时间差计算平均量计算excel处理后数据python处理excel数据excel数据有一列是开始时间,一列为结束时间,计算时间差,时间差>1h,将数据平均为1h。时间差>1h,总量也将平均到每个小时,如第三行数据,时间差为4h,数据为5.2,所以每小时......
  • python-找第一个只出现一次的字符
    [题目描述]给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。输入:一个字符串,长度小于1100。输出:输出第一个仅出现一次的字符,若没有则输出no。样例输入1abcabd样例输出1c来源/分类(难度系数:一星) 完整代码如下:a=list(input())b=[......
  • 针对PDF文档:印章、数字签名、编辑保护、PDF/A的Java工具类
    背景  本文是基于Java语言,引入POI从而提供将富文本编辑器内的html内容转换为docx的方式。代码  引入pom坐标<dependency><groupId>cn.net.pap</groupId><artifactId>pap4j-common-pdf</artifactId><version>0.0.1</version></......
  • python数据分析
    frompyechartsimportoptionsasoptsfrompyecharts.chartsimportMap#假设你有一个包含省份和抖音大v人数的字典data={  "广东":100,  "江苏":80,  "山东":70,  "浙江":60,  "河南":50,  "河北":40,  &qu......
  • Python项目打包二进制文件并发布
    复制项目生成二进制文件(交叉编译???)重命名二进制文件生成pyi文件(编译器智能提示需要删除原始py文件(复制后的)项目打包上传(分版本分平台???)流程、代码待完善二进制文件生成pipinstallcpython#setup.pydeffind_pyx_files(directory):pyx_files=[]forroot,_......
  • Python酷库之旅-开启库房之门
    目录一、库的定义二、库的组成三、库的分类四、如何学好Python库?五、注意事项六、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、 博客个人主页一、库的定义        在Python中,库(Library)是一个封装了特定功能或......