python - 在修剪框上裁剪 pdf 并在 Python 中另存为 jpg?
问题描述
我正在尝试在 Python 中创建一个脚本,该脚本从 pdf 文件中的 timbox 中裁剪 pdf 并将结果保存为 *.jpg 文件。
我设法裁剪了 pdf 文件(result.pdf 被裁剪),但是当我保存为 *.jpg 时,它没有被裁剪(与 test.pdf 大小相同)。另外,认为应该有比我想做的更好的方法,首先裁剪并将pdf保存到文件中,然后将裁剪的pdf转换为jpg。是否可以在不先将裁剪的 pdf 保存为文件的情况下转换为 jpg?
from PyPDF4 import PdfFileWriter, PdfFileReader
input = PdfFileReader(open("test.pdf","rb"))
output = PdfFileWriter()
page = input.getPage(0)
trimboxUpperLeft = page.trimBox.getUpperLeft()
trimboxLowerRight = page.trimBox.getLowerRight()
n = input.getNumPages()
for i in range(n):
page = input.getPage(i)
page.cropBox.upperLeft = (trimboxUpperLeft)
page.cropBox.lowerRight = (trimboxLowerRight)
output.addPage(page)
outputStream = open('result.pdf','wb')
output.write(outputStream)
outputStream.close()
from pdf2image import convert_from_path
images = convert_from_path('result.pdf')
for i in range(len(images)):
images[i].save('Output_'+ str(i) +'.jpg', 'JPEG')
解决方案
images = convert_from_path('result.pdf', use_cropbox=True, poppler_path='./poppler/bin')
use_cropbox=True 默认库使用 MediaBox,但 page.cropBox.upperLeft = (trimboxUpperLeft) 仅更改 CropBox。
poppler_path='./poppler/bin' 可以将poppler保存在任意文件夹中。
推荐阅读
- mysql - 插入数据库的查询优化
- unreal-engine4 - 如何在不截图的情况下在虚幻引擎中以图像形式访问相机视图?
- php - 如果循环中的变量不存在,PHP会结束循环
- watir - 如何在 Watir 中关闭 Facebook 的聊天框
- reactjs - 我可以将 HTML 标记作为道具传递吗 - React
- java - Tomcat 8 和 9 的区别
- asp.net - WebForms 中继器,设置 CSS 类取决于项目索引
- ffmpeg - 使用 ffmpeg ubuntu 将 webm 转换为 mp4
- templates - Sendgrid 仅查找旧模板
- ipmi - ipmiutil 无法发现局域网连接的服务器