跳转到主要内容

PDF文档的并排视觉比较差异

项目描述

Visual PDF diff

渲染的PDF文档的视觉并排比较。

您可以使用以下几种方式

  • a 命令行工具,用于获取两个PDF的diff
  • a Python函数,从其他Python程序执行相同的操作
  • 一个用于python-unittest的等式断言
  • 一个用于python-unittest的面对面的断言
  • 工具back2back的扩展,用于对您的命令的PDF输出进行面对面的测试

生成的diff看起来像这样

Diff output example

安装

sudo apt install imagemagick # Or the equivalent if not debian based
pip install visualpdfdiff
pip install b2btest # if you want to use the back2back command

注意:visualpdfdiff需要启用ImageMagick来处理PDF。出于安全原因,默认情况下已禁用。如果您正在运行接受来自外部PDF文件的Web服务器,请考虑安全影响。

编辑/etc/ImageMagick-*/policy.xml并取消注释该行

<policy domain="coder" rights="read | write" pattern="PDF" />

并注释该行

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

命令行diff工具

visualpdfdiff a.pdf b.pdf [output-diff.pdf]

如果两个PDF都等于光栅,则返回0,如果不等于,则返回-1。

如果提供了输出,将生成并排diff PDF。如果diff存在,不提供输出会更快,但是,如果您预计大多数时候是相等的,则检查然后生成会更快。

Python diff函数

from visualpdfdiff import diff

haveDifferences = diff('a.pdf', 'b.pdf', 'out.pdf')

单元测试面对面断言

与最后验证的输出进行比较。如果扩展是PDF,visualpdfdiff将选择检测并输出差异。

class MyClass_Test(unittest.TestCase):

	from b2btest import assertB2BEqual

	def test_otherMethod_conditions(self):
		...
		self.assertB2BEqual('b.pdf')

命令背靠背测试

使用背靠背命令。此外,通过安装此软件包,使用visualpdfdiff比较PDF输出。

myTest:
  command: ./myreportscript.py -o output.pdf
  outputs:
  - output.pdf

类似工具

  • pdfdiff:提取文本并进行diff,然后在文本上绘制轮廓。更适合文本diff,但不适合布局diff。
  • qtrac的diffpdf:一个相当不错的(基于Qt的)图形工具,可以进行文本和视觉diff。由于作者迁移到封闭源代码许可证,不再维护。
  • vslavik的diff-pdf
  • diff-pdf-visualy与这个工具非常相似,不仅在名称上相似,而且不生成输出PDF

变更

1.0 (未发布)

  • 作为独立模块的第一个版本
  • 之前的版本是somenergia-oomakotest测试套件的一部分,用于比较由odoo生成的mako报告的输出

待办事项

  • 可以通过关键字配置光栅分辨率
  • 同时还有diff元数据
  • 在diff区域完全透明,在匹配区域半透明灰色

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

visualpdfdiff-1.0.tar.gz (17.8 kB 查看哈希值)

上传时间

构建分布

visualpdfdiff-1.0-py3-none-any.whl (18.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面