GithubHelp home page GithubHelp logo

greenantdotcom / diffpdf Goto Github PK

View Code? Open in Web Editor NEW
4.0 5.0 3.0 404 KB

Heavily hacked version of DiffPDF (http://www.qtrac.eu/diffpdf.html) to make it automatable via the command line

C++ 81.92% Prolog 0.20% TypeScript 17.89%

diffpdf's Introduction

DiffPDF
===========

DiffPDF is used to compare two PDF files.

By default the comparison is of the words on each pair of pages, but
comparing character by character is also supported (e.g., for
logographic languages). And there's also support for comparing the pages
by appearance (for example, if a diagram is changed or if a paragraph is
reformatted, or a font changed). It is also possible to compare
particular pages or page ranges. For example, if there are two versions
of a PDF file, one with pages 1-12 and the other with pages 1-13 because
of an extra page having been added as page 4, they can be compared by
specifying two page ranges, 1-12 for the first and 1-3, 5-13 for the
second. This will make DiffPDF compare pages in the pairs (1, 1), (2,
2), (3, 3), (4, 5), (5, 6), and so on, to (12, 13).

A couple of example PDF files are provided online so that you can try it
out. PDF files can be loaded from the GUI (by pressing the File #1 and
File #2 buttons), or by specifying them on the command line. More
information is available in the program's tooltips and About box.

(If you want a command line tool for comparing PDFs see
http://www.qtrac.eu/comparepdf.html.)

Home page: http://www.qtrac.eu/diffpdf.html

Windows Users
=============

Download the zip file, e.g., diffpdf-1.9.2.zip (where the number will
vary depending on the version). Navigate to the file in Windows Explorer
and use the context menu to choose the Extract All option. It doesn't
matter what folder you extract to, but best to use one specifically for
DiffPDF. The folder will contain diffpdf.exe and may contain some .dll
files too. If there are .dll files, you must not move diffpdf.exe to any
other folder!

Once unzipped you can double-click diffpdf.exe to run it. You might also
like to add a shortcut to it from the desktop or from the start menu.

Compiling and Installing DiffPDF (Mac-specific notes are at the end.)
================================

Prerequisites: A C++ compiler, the Qt 4 libraries (I test with Qt 4.7
and Qt 4.8. Earlier Qt's may work although Qt 4.4 and 4.5 will at least
need a compiler with tr1 support), and the Poppler libraries (at least
0.20.1, including Poppler's Qt 4 headers). Linux and BSD users should be
able to get everything through their package management system---and
some distros already include diffpdf so you don't even have to build it.
Mac OS X users can get a compiler by installing Xcode; you'll need to
get Qt and Poppler separately.

1. Unpack the archive file, diffpdf-XXX.tar.gz
    $ tar xvfz diffpdf-XXX.tar.gz
2. Change directory to diffpdf-XXX
    $ cd diffpdf-XXX
3. Run lrelease; on some sytems this might be called lrelease-qt4
    $ lrelease diffpdf.pro
4. Run qmake; on some systems, run qmake-qt4
    $ qmake
5. Run make
    $ make
6. Copy or soft-link the diffpdf executable to somewhere on your PATH
7. Only the executable is needed; all the files that were unpacked or
   generated can be safely deleted.

That's it!


Running DiffPDF
===============

A pair of tiny example files are available:
http://www.qtrac.eu/boson1.pdf and http://www.qtrac.eu/boson2.pdf. You
can use these to see the difference between text and appearance
comparisons and to get a feel for how DiffPDF works.

If you hit a bug, please report it to [email protected]. Be sure to include
"DiffPDF" in the subject line and specify the version you are using
and details of your system, e.g., operating system name and version,
compiler name and version, Qt library version, Poppler library version.


License
=======

This program was written by Mark Summerfield.
Copyright © 2008-13 Qtrac Ltd. All rights reserved.

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 2 of the License, or (at your
option), any later version. This program is distributed in the hope that
it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License (in file gpl-2.0.txt) for more details.


Building on Mac OS X
====================

Here's how to build it:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
$ brew install qt
$ brew install poppler --with-qt4

# Dirs must be writeable because macdeployqt modifies copied files
$ chmod -R u+w /usr/local/Cellar/qt/
$ chmod -R u+w /usr/local/Cellar/poppler/

$ curl -O http://www.qtrac.eu/diffpdf-1.5.0.tar.gz
$ tar xvfz diffpdf-1.5.0.tar.gz
$ cd diffpdf-1.5.0
$ lrelease diffpdf.pro
$ qmake -spec macx-g++
$ make

Here's how to make a .dmg:

# Fix references, remove unneeded Frameworks and build DMG
$ macdeployqt diffpdf.app/
$ cd diffpdf.app/Contents/Frameworks/
$ rm -r QtDeclarative.framework/ QtNetwork.framework/
QtScript.framework/ QtSql.framework/ QtSvg.framework/
QtXmlPatterns.framework/
$ cd ../../..
$ hdiutil create diffpdf-1.5.0.dmg -srcfolder diffpdf.app/

Thanks to Dirk Loss for this information.

diffpdf's People

Contributors

greenantdotcom avatar

Stargazers

Michael Heck avatar  avatar GSchenck avatar Dale Athanasias avatar

Watchers

 avatar James Cloos avatar  avatar  avatar  avatar

Forkers

gyhor dst1213 hoehnp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.