windows下pdf文件的比较

windows下pdf文件的比较

在使用latex过程中有时需要进行pdf比较来确定某些更新是否会导致生成的pdf的变化。

pdf比较工具显然是很多的,在python下有diff-pdf、diff-pdf-visually等等,这里一一介绍。

1. diff-pdf-visually 工具

安装

由于diff-pdf-visually依赖于ImageMagick和Poppler,所以windows下安装diff-pdf-visually先要安装这两个依赖库。

  1. 安装ImageMagick, via https://imagemagick.org/script/download.php
    需要注意imagemagick有很多的适用于不同环境的版本,其中有针对mingw的版本,但经测试表明,在windows下还是使用EXE安装版本较好。

  2. 安装Poppler, via https://blog.alivate.com.au/poppler-windows/
    需要注意的是,这个poppler是个绿色版本的,所以只要把它的bin目录放到环境变量path下就好了。
    最好使用一个单独的目录来放它,而不是简单的解压到mingw下面,虽然两者的目录结构很类似,由于poppler使用的库文件的版本可能与mingw的不同,所以如果简单的覆盖到mingw下面,可能导致运行不了。

  3. 安装diff-pdf-visually。

在conda下没有这个包,那么直接用pip安装。

pip install --user diff-pdf-visually

使用

使用通过命令行或者在python脚本中调用

  1. 命令行中为:

python diff-pdf-visually -v a.pdf b.pdf

其帮助为:

$ diff-pdf-visually  -h
usage: diff-pdf-visually [-h] [--silent] [--verbose] [--threshold THRESHOLD]
                         [--dpi DPI] [--time TIME]
                         a.pdf b.pdf

Compare two PDFs visually. The exit code is 0 if they are the same, and 2 if
there are significant differences.

positional arguments:
  a.pdf
  b.pdf

optional arguments:
  -h, --help            show this help message and exit
  --silent, -q          silence output (can be used only once)
  --verbose, -v         show more information (can be used 2 times)
  --threshold THRESHOLD
                        PSNR threshold to consider a change significant,
                        higher is more sensitive (default: 100)
  --dpi DPI             resolution for the rasterised files (default: 50)
  --time TIME           number of seconds to wait before discarding temporary
                        files, or 0 to immediately discard
  1. 在脚本中调用
from diff_pdf_visually import pdfdiff

# Returns True or False
pdfdiff("a.pdf", "b.pdf")

说明

尽管能够用其进行pdf比较,但其输出还是比较简单的,只能给出是否存在差异这一信息,无法知道哪个位置存在差异,所以相对来说还是没有使用adobe或者foxit软件来的直观和有效。

2. pdf-diff工具

pdf-diff 实际上在windows下不支持,但现在windows也是可以运行linux的,我们通过wsl安装ubuntu,那么就有了ubuntu环境。

进入ubuntu命令行,输入如下命令,完成安装:

apt-get install python3-lxml poppler-utils
pip install pdf-diff

使用方式:

pdf-diff before.pdf after.pdf > comparison_output.png

进入到需要比较文件所在目录下,运行上述命令就可以得到结果。
结果是一个并排比较的png图片,比如。

在这里插入图片描述

3. diff-pdf工具

diff-pdf 则是另一个工具,可以直接在windows下编译。使用编辑的环境是msys。

安装msys2 后,根据diff-pdf的说明使用如下命令更新编译工具:

$ pacman -Syu
$ pacman -S automake autoconf pkg-config make zip
$ pacman -S mingw-w64-i686-{gcc,poppler,wxWidgets}

接着下载diff-pdf到本地解压后,进入其目录,使用如下命令编译;

./bootstrap
$ ./configure
$ make

如果源代码编译不了,那么可以从这里直接下载win下编译好的程序。

实际上也可以在wsl下的ubuntu中编译该工具。上述msys下编译的好处是可以获得一个绿色软件,后面拷贝就能用了。

使用时,使用如下命令:

diff-pdf --output-diff=diff.pdf a.pdf b.pdf

其主要选项包括:

Usage: diff-pdf [/h] [/v] [/s] [/m] [/g] [--output-diff <str>] [--channel-tolerance <num>] [--dpi <num>] [--view] file1.pdf file2.pdf
  /h, --help                    show this help message
  /v, --verbose                 be verbose
  /s, --skip-identical          only output pages with differences
  /m, --mark-differences        additionally mark differences on left side
  /g, --grayscale               only differences will be in color, unchanged parts will show as gray
  --output-diff=<str>           output differences to given PDF file
  --channel-tolerance=<num>     consider channel values to be equal if within specified tolerance
  --dpi=<num>                   rasterization resolution (default: 300 dpi)
  --view                        view the differences in a window

结果是一个diff.pdf文件,比如:

在这里插入图片描述其缺点是不显示中文

4. foxit pdf工具

foxit pdf 编辑器,有一个pdf比较功能,直接用就行。这是一个成熟的商业软件,大家自行了解。

参考

  1. https://pypi.org/project/diff-pdf-visually/
  2. https://github.com/JoshData/pdf-diff
  3. https://github.com/vslavik/diff-pdf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
查看 PDF 文件结构的工具有很多,常见的有 Adobe Acrobat、PDF-XChange Viewer、Reveal PDF Structure、PDFtk 等。 其中,Adobe Acrobat 是最常用的 PDF 查看和编辑工具之一。它提供了强大的功能,包括查看 PDF 文件结构。在 Adobe Acrobat 中,你可以选择“文件”菜单中的“属性”选项,然后在“属性”对话框的“描述”标签下找到“文件大小”和“创建者”等信息,这些信息揭示了 PDF 文件的结构。 PDF-XChange Viewer 是另一个流行的可供选择的工具。在 PDF-XChange Viewer 中,你可以从“文件”菜单中选择“文件属性”选项,然后在打开的对话框中找到文件的结构信息。 Reveal PDF Structure 是一个特定的工具,它专门用于显示和分析 PDF 文件的结构。它提供了一个直观的界面,使用户能够深入了解 PDF 文档的内部结构,包括目录、页和对象。 PDFtk(PDF Toolkit)是一个命令行工具,可以用于处理 PDF 文件。使用 PDFtk,你可以在命令提示符下运行命令来查看 PDF 文件的结构。例如,通过运行“pdftk input.pdf dump_data”命令,你可以获取 PDF 文件的结构信息。 总的来说,有许多可用的工具可以帮助我们查看 PDF 文件的结构。这些工具提供了不同的功能,使我们能够深入了解 PDF 文件的组成部分及其内部结构。根据不同的需求,我们可以选择适合自己的工具来查看和分析 PDF 文件的结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值