python获取pdf页面尺寸_python-从pdf提取页面作为jpeg
python-从pdf提取页面作为jpeg
在python代码中,如何有效地将pdf中的某个页面另存为jpeg文件? (用例:我有一个python flask网络服务器,将在其中上传pdf-s,并存储与每个页面相对应的jpeg-s。)
该解决方案已经结束,但是问题在于它无法将整个页面转换为jpeg。
8个解决方案
77 votes
可以使用pdf2image库。
您可以简单地使用安装它,
pip install pdf2image
安装完成后,您可以使用以下代码获取图像。
from pdf2image import convert_from_path
pages = convert_from_path('pdf_file', 500)
以jpeg格式保存页面
for page in pages:
page.save('out.jpg', 'JPEG')
编辑:Github仓库pdf2image也提到它使用了sudo apt install poppler-utils,并且它需要其他安装:
pdftoppm是执行实际操作的软件。 它作为更大的软件包poppler的一部分分发。 Windows用户必须为Windows安装poppler。 Mac用户必须为Mac安装poppler。 如果没有,Linux用户将在发行版中预装pdftoppm(已在Ubuntu和Archlinux上进行了测试),运行sudo apt install poppler-utils。
这是适用于Windows的正确安装:[http://blog.alivate.com.au/poppler-windows/]
Keval Dave answered 2020-01-11T04:43:21Z
15 votes
实际上,Python库pdftoppm(在其他答案中使用)不仅仅具有使用subprocess.Popen启动pdttoppm的功能,因此,下面是直接执行此操作的简短版本:
PDFTOPPMPATH = r"D:\Documents\software\____PORTABLE\poppler-0.51\bin\pdftoppm.exe"
PDFFILE = "SKM_28718052212190.pdf"
import subprocess
subprocess.Popen('"%s" -png "%s" out' % (PDFTOPPMPATH, PDFFILE))
这是pdftoppm(包含在名为poppler的软件包中)的Windows安装链接:[http://blog.alivate.com.au/poppler-windows/]
Basj answered 2020-01-11T04:43:45Z
8 votes
无需在操作系统上安装Poppler。 这将起作用:
点安装魔杖
from wand.image import Image
f = "somefile.pdf"
with(Image(filename=f, resolution=120)) as source:
images = source.sequence
pages = len(images)
for i in range(pages):
n = i + 1
newfilename = f[:-4] + str(n) + '.jpeg'
Image(images[i]).save(filename=newfilename)
DevB2F answered 2020-01-11T04:44:10Z
5 votes
我找到了这个简单的解决方案PyMuPDF,输出到png文件
import fitz
pdffile = "infile.pdf"
doc = fitz.open(pdffile)
page = doc.loadPage(0) #number of page
pix = page.getPixmap()
output = "outfile.png"
pix.writePNG(output)
JJPty answered 2020-01-11T04:44:29Z
4 votes
@gaurwraith,为Windows安装poppler并使用pdftoppm.exe,如下所示:
从[http://blog.alivate.com.au/poppler-windows/]下载带有Poppler最新二进制文件/ dll的zip文件,然后解压缩到程序文件文件夹中的新文件夹。 例如:“ C:\ Program Files(x86)\ Poppler”。
将“ C:\ Program Files(x86)\ Poppler \ poppler-0.68.0 \ bin”添加到您的SYSTEM PATH环境变量。
从命令行安装pdf2image模块->“ pip install pdf2image”。
或者,如用户Basj所述,使用Python的子进程模块直接从代码中执行pdftoppm.exe。
@vishvAs vAsuki,此代码应通过子处理模块为给定文件夹中一个或多个pdf的所有页面生成所需的jpg:
import os, subprocess
pdf_dir = r"C:\yourPDFfolder"
os.chdir(pdf_dir)
pdftoppm_path = r"C:\Program Files (x86)\Poppler\poppler-0.68.0\bin\pdftoppm.exe"
for pdf_file in os.listdir(pdf_dir):
if pdf_file.endswith(".pdf"):
subprocess.Popen('"%s" -jpeg %s out' % (pdftoppm_path, pdf_file))
或使用pdf2image模块:
import os
from pdf2image import convert_from_path
pdf_dir = r"C:\yourPDFfolder"
os.chdir(pdf_dir)
for pdf_file in os.listdir(pdf_dir):
if pdf_file.endswith(".pdf"):
pages = convert_from_path(pdf_file, 300)
pdf_file = pdf_file[:-4]
for page in pages:
page.save("%s-page%d.jpg" % (pdf_file,pages.index(page)), "JPEG")
photek1944 answered 2020-01-11T04:45:16Z
0 votes
他们是一个名为pdftojpg的实用程序,可用于将pdf转换为img
您可以在这里找到代码[https://github.com/pankajr141/pdf2jpg]
from pdf2jpg import pdf2jpg
inputpath = r"D:\inputdir\pdf1.pdf"
outputpath = r"D:\outputdir"
# To convert single page
result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="1")
print(result)
# To convert multiple pages
result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="1,0,3")
print(result)
# to convert all pages
result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="ALL")
print(result)
duck answered 2020-01-11T04:45:41Z
0 votes
我使用pdf2image的(也许)简单得多的选项:
cd $dir
for f in *.pdf
do
if [ -f "${f}" ]; then
n=$(echo "$f" | cut -f1 -d'.')
pdftoppm -scale-to 1440 -png $f $conv/$n
rm $f
mv $conv/*.png $dir
fi
done
这是循环中bash脚本的一小部分,用于使用狭窄的投射设备。每5秒钟检查一次添加的pdf文件(全部)并进行处理。这是针对演示设备的,最终转换将在远程服务器上完成。 现在可以转换为.PNG,但是.JPG也可以。
这种转换以及A4格式的过渡,显示视频,两个平滑滚动文本和一个徽标(具有三个版本的过渡),将Pi3设置为最高4x 100%cpu-load ;-)
Robert answered 2020-01-11T04:46:10Z
0 votes
from pdf2image import convert_from_path
import glob
pdf_dir = glob.glob(r'G:\personal\pdf\*') #your pdf folder path
img_dir = "G:\\personal\\img\\" #your dest img path
for pdf_ in pdf_dir:
pages = convert_from_path(pdf_, 500)
for page in pages:
page.save(img_dir+pdf_.split("\\")[-1][:-3]+"jpg", 'JPEG')
Saiprasad Bhatwadekar answered 2020-01-11T04:46:26Z
python获取pdf页面尺寸_python-从pdf提取页面作为jpeg相关推荐
- 用PDF编辑器有哪些方法可以提取页面?
现在我们使用PDF文档越来越多,但是相对于Word而言,PDF的编辑会复杂一些,很多人虽然知道要用PDF编辑器修改,但是具体操作并不清楚,比如怎样提取PDF页面? 方法一:提取页面 最直接的方法当然是 ...
- python获取pdf页数_Python读取pdf页面的一部分
假设您使用的是pdfminer和pypdf2,那么我假设所讨论的PDF文件是生成的PDF而不是扫描的(如您所给出的示例中所示).如果您知道以英寸为单位的列和行的大小,您可以使用^{}(完全公开:我写了 ...
- python提取pdf发票信息_python读取pdf(发票)
想读取文件夹*.pdf格式的发票并写入到excel当中,当然也可以写入txt(注释代码有) 详见下面代码,代码开头有参考的几篇文章的地址 一开始用的是pdfplumber,不好用,识别率不高,后来使用 ...
- python获取a股数据_python获取A股数据列表的例子
2015年的股市是当下的热门话题,同事的朋友弄了一个简单的弹股吐槽单页面单日PV就能达30W+ ,相当于本博客一年的PV量.所以站在技术角度,这里也写几篇关于股票技术面的文章.首先本篇先从获取A股列表 ...
- python获取局域网在线主机_python通过scapy获取局域网所有主机mac地址示例
python通过scapy获取局域网所有主机mac地址示例 发布于 2014-10-10 20:34:48 | 607 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python ...
- python获取url列表参数_python 获取url中的参数列表实例
Python的urlparse有对url的解析,从而获得url中的参数列表 import urlparse urldata = "http://en.wikipedia.org/w/api. ...
- python获取系统时间月份_python 取数组绝对值python获取当前日期
今天群里一个人问了怎么获取当前时间的问题,以前接触过计算日期之差的,具体代码如下: import datetime d1=datetime.datetime(2014,3,14) d2=datetim ...
- python获取文件的大小_python获取文件大小
python获取文件大小# !/usr/bin/python3.4 # -*- coding: utf-8 -*- import os # 字节bytes转化kb\m\g def formatSize ...
- python获取系统时间函数_Python常用时间操作总结【取得当前时间、时间函数、应用等】...
本文实例讲述了Python常用时间操作.分享给大家供大家参考,具体如下: 我们先导入必须用到的一个module >>> import time 设置一个时间的格式,下面会用到 > ...
- python获取某文件路径_Python获取当前文件路径
一. Python 获取当前文件路径方法 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python ...
最新文章
- 关乎每个人!2021年5月1日起实施
- beandefinition与beanfactory
- 音视频技术开发周刊 | 216
- Atom常用功能插件
- mysql查询时间出来数字_mysql查询时间出来数字的解决方法
- 全球金融科技发明专利排行榜(TOP20)
- 消息队列一直建立tcp连接_云架构那些事儿:为什么我的TCP连接建立异常?
- Play framework 2.0 -应用程序全局设置(转)
- 使用jQuery的load()进行页面模块化加载
- Axure|【医药、医疗】药企员工内部培训平台原型
- 如何解决VC 应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe问题...
- python爬虫从基础到实战一站式服务
- linux万能密码,Linux pam 后门纪录root用户密码以及设置万能密码登录root
- tcpclient java_以TcpClient接收消息
- java操作word宏
- wps表格打印怎么铺满a4纸
- NVR-网络视频录像机
- Shopify免费产品评价应用 Product Review安装和设置教程
- winds rabbitmq使用方式
- linux CPU 负载高问题分析方法
热门文章
- 论文笔记-Suppress and Balance: A Simple Gated Network for Salient Object Detection
- 模型复现 | YOLOR入门教程
- document.getElementById/Name/TagName
- MIPI DSI之DBI DPI含义和区别(3-1)
- 需求分析和常见的需求问题解决
- noi国家集训队论文分类
- 新买的电脑网速慢的解决方案
- 旋转增量式拉绳编码器出现故障应急处理
- 构建自己的 LINUX 系统(二)
- vue怎么给pc端浏览器设置一个最小屏幕_vue项目实现移动端适配的案例