如何免费提取PDF里的图片-pdfimages使用教程

写在前面

本随笔是非常菜的菜鸡写的。如有问题请及时提出。

可以联系:1160712160@qq.com

GitHhub:https://github.com/WindDevil (目前啥也没有

动机

由于WPS的提取图片需要收费,作为穷鬼的我直接在bing,键入open source software get picture form pdf.

找到这个项目:VR51/Batch-PDF-Image-Extractor: Extract images from PDF documents. Works on multiple and single PDF files (github.com)

看到这个项目的Requirements:

This script reqires pdfimages to be installed. The script will check for pdfimages and prompt for its installation if not found.

显示需要pdfimages这个工具.

安装

于是继续搜索pdfimages,得到这个网站.

我们可以看到这个库可以直接通过apt-get得到.这里由于需要用到Linux,我使用的是虚拟机的方法可以参考这篇博客.

于是在虚拟机里键入sudo apt-get install poppler-utils,注意它的名字是poppler-utils.

使用方法

直接键入pdfimages -h尝试查找它的教程:

shell 复制代码
pdfimages version 22.02.0
Copyright 2005-2022 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : first page to convert
  -l <int>       : last page to convert
  -png           : change the default output format to PNG
  -tiff          : change the default output format to TIFF
  -j             : write JPEG images as JPEG files
  -jp2           : write JPEG2000 images as JP2 files
  -jbig2         : write JBIG2 images as JBIG2 files
  -ccitt         : write CCITT images as CCITT files
  -all           : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : print list of images instead of saving
  -opw <string>  : owner password (for encrypted files)
  -upw <string>  : user password (for encrypted files)
  -p             : include page numbers in output file names
  -q             : don't print any messages or errors
  -v             : print copyright and version info
  -h             : print usage information
  -help          : print usage information
  --help         : print usage information
  -?             : print usage information

很容易看出使用方法是pdfimages [options] <PDF-file> <image-root>,也即pdfimages+选项+PDF文件路径+输出图片路径.

这里比较重点地点出,如果直接使用指令,默认生成格式不是jpg或者png,需要在输入指令的时候选项部分输入-png或者-j,这个指令就可以把pdffile.pdf的图片提取到当前目录下:

shell 复制代码
pdfimages -j pdffile.pdf ./

实验

Downloads文件夹下创建files,把主机PDF文件拷贝到虚拟机.

shell 复制代码
cd ~/Downloads
mkdir files
cd files

我直接用VScode的SSH把文件拖进去的.

写在前面

本随笔是非常菜的菜鸡写的。如有问题请及时提出。

可以联系:1160712160@qq.com

GitHhub:https://github.com/WindDevil (目前啥也没有

动机

由于WPS的提取图片需要收费,作为穷鬼的我直接在bing,键入open source software get picture form pdf.

找到这个项目:VR51/Batch-PDF-Image-Extractor: Extract images from PDF documents. Works on multiple and single PDF files (github.com)

看到这个项目的Requirements:

This script reqires pdfimages to be installed. The script will check for pdfimages and prompt for its installation if not found.

显示需要pdfimages这个工具.

安装

于是继续搜索pdfimages,得到这个网站.

我们可以看到这个库可以直接通过apt-get得到.这里由于需要用到Linux,我使用的是虚拟机的方法可以参考这篇博客.

于是在虚拟机里键入sudo apt-get install poppler-utils,注意它的名字是poppler-utils.

使用方法

直接键入pdfimages -h尝试查找它的教程:

shell 复制代码
pdfimages version 22.02.0
Copyright 2005-2022 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : first page to convert
  -l <int>       : last page to convert
  -png           : change the default output format to PNG
  -tiff          : change the default output format to TIFF
  -j             : write JPEG images as JPEG files
  -jp2           : write JPEG2000 images as JP2 files
  -jbig2         : write JBIG2 images as JBIG2 files
  -ccitt         : write CCITT images as CCITT files
  -all           : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : print list of images instead of saving
  -opw <string>  : owner password (for encrypted files)
  -upw <string>  : user password (for encrypted files)
  -p             : include page numbers in output file names
  -q             : don't print any messages or errors
  -v             : print copyright and version info
  -h             : print usage information
  -help          : print usage information
  --help         : print usage information
  -?             : print usage information

很容易看出使用方法是pdfimages [options] <PDF-file> <image-root>,也即pdfimages+选项+PDF文件路径+输出图片路径.

这里比较重点地点出,如果直接使用指令,默认生成格式不是jpg或者png,需要在输入指令的时候选项部分输入-png或者-j,这个指令就可以把pdffile.pdf的图片提取到当前目录下:

shell 复制代码
pdfimages -j pdffile.pdf ./

实验

Downloads文件夹下创建files,把主机PDF文件拷贝到虚拟机.

shell 复制代码
cd ~/Downloads
mkdir files
cd files

我直接用VScode的SSH把文件拖进去的.

然后执行pdfimages -j LDO.pdf ./,使用ls指令看一下生成了什么:

shell 复制代码
-000.ppm  -001.ppm  -002.ppm  -003.ppm  -004.ppm  -005.ppm  LDO.pdf

很奇怪地没用生成.jpg而是.ppm,挠头.

改为执行pdfimages -png LDO.pdf ./,使用ls指令看一下生成了什么:

shell 复制代码
-000.png  -000.ppm  -001.png  -001.ppm  -002.png  -002.ppm  -003.png  -003.ppm  -004.png  -004.ppm  -005.png  -005.ppm  LDO.pdf

确实可以生成.png文件.

然后只需要把图片从虚拟机拷出来就行了.

然后执行pdfimages -j LDO.pdf ./,使用ls指令看一下生成了什么:

shell 复制代码
-000.ppm  -001.ppm  -002.ppm  -003.ppm  -004.ppm  -005.ppm  LDO.pdf

很奇怪地没用生成.jpg而是.ppm,挠头.

改为执行pdfimages -png LDO.pdf ./,使用ls指令看一下生成了什么:

shell 复制代码
-000.png  -000.ppm  -001.png  -001.ppm  -002.png  -002.ppm  -003.png  -003.ppm  -004.png  -004.ppm  -005.png  -005.ppm  LDO.pdf

确实可以生成.png文件.

然后只需要把图片从虚拟机拷出来就行了.