diffpdf: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 17: | Zeile 17: | ||
* http://www.ubuntugeek.com/diffpdf-compare-two-pdf-files-textually-or-visually.html | * http://www.ubuntugeek.com/diffpdf-compare-two-pdf-files-textually-or-visually.html | ||
* http://askubuntu.com/questions/40813/diff-of-two-pdf-files | * http://askubuntu.com/questions/40813/diff-of-two-pdf-files | ||
Unter dem zweiten Link ist folgendes Skript zu finden, das die Pakete "pdfjam", "poppler-utils" (mit "pdfinfo") und "diffpdf" voraussetzt. | |||
<pre> | |||
#!/bin/bash | |||
# | |||
# Compare two PDF files. | |||
# Dependencies: | |||
# - pdfinfo (xpdf) | |||
# - pdfjam (texlive-extra-utils) | |||
# - diffpdf | |||
MAX_HEIGHT=15840 #The maximum height of a page (in points), limited by pdfjam. | |||
TMPFILE1=$(mktemp /tmp/XXXXXX.pdf) | |||
TMPFILE2=$(mktemp /tmp/XXXXXX.pdf) | |||
usage="usage: scrolldiff -h FILE1.pdf FILE2.pdf | |||
-h print this message | |||
v0.0" | |||
while getopts "h" OPTIONS ; do | |||
case ${OPTIONS} in | |||
h|-help) echo "${usage}"; exit;; | |||
esac | |||
done | |||
shift $(($OPTIND - 1)) | |||
if [ -z "$1" ] || [ -z "$2" ] || [ ! -f "$1" ] || [ ! -f "$2" ] | |||
then | |||
echo "ERROR: input files do not exist." | |||
echo | |||
echo "$usage" | |||
exit | |||
fi | |||
# Get the number of pages: | |||
pages1=$( pdfinfo "$1" | grep 'Pages' - | awk '{print $2}' ) | |||
pages2=$( pdfinfo "$2" | grep 'Pages' - | awk '{print $2}' ) | |||
numpages=$pages2 | |||
if [[ $pages1 > $pages2 ]] | |||
then | |||
numpages=$pages1 | |||
fi | |||
# Get the paper size: | |||
width1=$( pdfinfo "$1" | grep 'Page size' | awk '{print $3}' ) | |||
height1=$( pdfinfo "$1" | grep 'Page size' | awk '{print $5}' ) | |||
width2=$( pdfinfo "$2" | grep 'Page size' | awk '{print $3}' ) | |||
height2=$( pdfinfo "$2" | grep 'Page size' | awk '{print $5}' ) | |||
if [ $(bc <<< "$width1 < $width2") -eq 1 ] | |||
then | |||
width1=$width2 | |||
fi | |||
if [ $(bc <<< "$height1 < $height2") -eq 1 ] | |||
then | |||
height1=$height2 | |||
fi | |||
height=$( echo "scale=2; $height1 * $numpages" | bc ) | |||
if [ $(bc <<< "$MAX_HEIGHT < $height") -eq 1 ] | |||
then | |||
height=$MAX_HEIGHT | |||
fi | |||
papersize="${width1}pt,${height}pt" | |||
# Make the scrolls: | |||
pdfj="pdfjam --nup 1x$numpages --papersize {${papersize}} --outfile" | |||
$pdfj "$TMPFILE1" "$1" | |||
$pdfj "$TMPFILE2" "$2" | |||
diffpdf "$TMPFILE1" "$TMPFILE2" | |||
rm -f $TMPFILE1 $TMPFILE2 | |||
</pre> | |||
{{cat|Portable Document Format}} | {{cat|Portable Document Format}} |
Aktuelle Version vom 2. November 2014, 11:32 Uhr
Mit dem Shell-Befehl diffpdf lassen sich zwei PDF-Dateien vergleichen.
Installation
Ubuntu 12.04 Precise Pangolin
$ sudo apt-get install diffpdf
Verwendung
Vergleich zweiter PDF-Dateien.
$ diffpdf datei1.pdf datei2.pdf
Weblinks
- http://www.ubuntugeek.com/diffpdf-compare-two-pdf-files-textually-or-visually.html
- http://askubuntu.com/questions/40813/diff-of-two-pdf-files
Unter dem zweiten Link ist folgendes Skript zu finden, das die Pakete "pdfjam", "poppler-utils" (mit "pdfinfo") und "diffpdf" voraussetzt.
#!/bin/bash # # Compare two PDF files. # Dependencies: # - pdfinfo (xpdf) # - pdfjam (texlive-extra-utils) # - diffpdf MAX_HEIGHT=15840 #The maximum height of a page (in points), limited by pdfjam. TMPFILE1=$(mktemp /tmp/XXXXXX.pdf) TMPFILE2=$(mktemp /tmp/XXXXXX.pdf) usage="usage: scrolldiff -h FILE1.pdf FILE2.pdf -h print this message v0.0" while getopts "h" OPTIONS ; do case ${OPTIONS} in h|-help) echo "${usage}"; exit;; esac done shift $(($OPTIND - 1)) if [ -z "$1" ] || [ -z "$2" ] || [ ! -f "$1" ] || [ ! -f "$2" ] then echo "ERROR: input files do not exist." echo echo "$usage" exit fi # Get the number of pages: pages1=$( pdfinfo "$1" | grep 'Pages' - | awk '{print $2}' ) pages2=$( pdfinfo "$2" | grep 'Pages' - | awk '{print $2}' ) numpages=$pages2 if [[ $pages1 > $pages2 ]] then numpages=$pages1 fi # Get the paper size: width1=$( pdfinfo "$1" | grep 'Page size' | awk '{print $3}' ) height1=$( pdfinfo "$1" | grep 'Page size' | awk '{print $5}' ) width2=$( pdfinfo "$2" | grep 'Page size' | awk '{print $3}' ) height2=$( pdfinfo "$2" | grep 'Page size' | awk '{print $5}' ) if [ $(bc <<< "$width1 < $width2") -eq 1 ] then width1=$width2 fi if [ $(bc <<< "$height1 < $height2") -eq 1 ] then height1=$height2 fi height=$( echo "scale=2; $height1 * $numpages" | bc ) if [ $(bc <<< "$MAX_HEIGHT < $height") -eq 1 ] then height=$MAX_HEIGHT fi papersize="${width1}pt,${height}pt" # Make the scrolls: pdfj="pdfjam --nup 1x$numpages --papersize {${papersize}} --outfile" $pdfj "$TMPFILE1" "$1" $pdfj "$TMPFILE2" "$2" diffpdf "$TMPFILE1" "$TMPFILE2" rm -f $TMPFILE1 $TMPFILE2