![如何在 Windows 上比较两个 PDF 文件之间的差异?](https://linux22.com/image/1216747/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E4%B8%8A%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%20PDF%20%E6%96%87%E4%BB%B6%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%EF%BC%9F.png)
您知道并排比较 PDF 文件并显示两者之间修改的好方法吗?
我正在寻找 Windows 软件来实现这一点。如果您能发布免费和非免费产品就太好了。
答案1
答案2
在 Linux 和 Windows 上您可以使用(与本线程中提到的diffpdf
不同)。diff-pdf
在 Ubuntu 上安装使用:
sudo apt-get install diffpdf
查看更多这个 UbuntuGeek 页面介绍了如何通过文本或视觉方式比较 pds。
对于 Windows,这个 Diffpdf Windows 版本非常好用。你可以从http://soft.rubypdf.com/software/diffpdf(向下滚动至Win32 静态版本)。
答案3
我最近发现了这个并且我很喜欢它。
https://github.com/vslavik/diff-pdf
跨平台、免费、并且运行良好。
下面是实际操作的屏幕截图diff-pdf
- 请注意,PDF 中的文本没有不同,只有字体(以及相应的布局设置)不同:
获取该图像的调用是:
diff-pdf --view testA.pdf testB.pdf
...其中 testA.pdf/testB.pdf 是通过编译这个简单的 Latex 文件获得的pdflatex
(对于每个 pdf,请参阅注释):
\documentclass[12pt]{article}
% without mathpazo: testA.pdf
\usepackage{mathpazo} % with mathpazo: testB.pdf
\usepackage{lipsum}
\title{A brand new test}
\author{Testulio}
\begin{document}
\maketitle
\lipsum[1-3]
\end{document}
答案4
我最近想做这个(不同的 PDF),要求如下:
- 忽略空格、换行符、分页符等。
- 可以轻松看到几个单词的变化,而不仅仅是整行/段落的变化。
- 颜色差异输出
我安装了 pdftotext、wdiff 和 colordiff,它们可在各种包管理器中使用。(使用 macports sudo port install poppler wdiff colordiff
:)
然后:
wdiff <(pdftotext old.pdf -) <(pdftotext new.pdf -) | colordiff
现在我可以看到哪些颜色鲜艳的单词已经发生了变化。
更多细节:http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/
变化:
使用dwdiff
可以产生稍微好一点的结果。
我还想要 HTML 输出,所以这个小脚本用一点 CSS 制作了一个基本的网页。
bash pc-script.bash old.pdf new.pdf > q.htlm
然后q.html
使用您的网络浏览器打开。
pc-script.bash
文件:
#!/bin/bash
OLD="$1"
NEW="$2"
cat <<EOF
<html><head><meta charset="UTF-8"/><title>Changes from $OLD to $NEW</title></head><style>
.plus { color: green; background: #E7E7E7; }
.minus { color: red; background: #D7D7D7; text-decoration: line-through; }
</style><body><h1>Changes from [ <span class="minus">$OLD</span> ] to [ <span class="plus">$NEW</span> ]</h1><pre>
EOF
dwdiff -i -A best -P \
--start-delete='<span class="minus">' --stop-delete='</span>' \
--start-insert='<span class="plus" >' --stop-insert='</span>' \
<( pdftotext -enc UTF-8 -layout "$OLD" - ) \
<( pdftotext -enc UTF-8 -layout "$NEW" - ) \
cat <<EOF
</pre></body></html>
EOF
输出示例如下这里