SumatraPDF ohne DRM-Beschränkungen

Wenn ich denn mal unter Windows arbeite benutze ich recht gerne SumatraPDF als PDF-Reader. Leider hat sich der Author von SumatraPDF dafür entschieden, die nicht Kryptografie basierten DRM-Komponenten von PDFs zu berücksichtigen (bzgl. Kopieren von Texten und Ausdrucken des PDFs).

https://code.google.com/p/sumatrapdf/issues/detail?id=461&can=1&q=drm

Was damit genau gemeint ist:
Einige Programme zum erstellen von PDFs erlauben dem Author im PDF quasi die Bitte zu hinterlegen, dass Text aus diesem PDF nicht kopiert werden darf und/oder das PDF nicht gedruckt werden darf. Viele Programme wie der Adobe Reader halten sich so strikt an diese Bitte, dass die dem Benutzer das Kopieren von Text bzw. Ausdrucken komplett verbieten. Und viele Autoren verlassen sich leider genau darauf. Dabei handelt es sich wie gesagt nur um eine “Bitte” und es gibt auch zahlreiche PDF-Reader wie Evince oder Okular, die diese Bitte entweder einfach ignorieren oder dem Benutzer die Wahl überlassen auf diese Bitte einzugehen oder nicht.

https://de.wikipedia.org/wiki/Evince
https://de.wikipedia.org/wiki/Okular_%28Software%29

Da es wie gesagt immer andere Programme gibt auf die man ggf. zum Text Kopieren oder Ausdrucken ausweichen kann, finde ich es recht unsinnig wenn ein Programm aufgrund der “Bitte” dem Benutzer diese Funktionen komplett verweigert. Zudem kommt es leider oftmals vor, dass Autoren aus versehen diese Funktion beim Erstellen des PDFs ignorieren. Oder es kann auch sein, dass der Autor selber keine Kopie des Original-Dokuments mehr hat und jetzt seinen Text wieder aus dem PDF kopieren will, statt ihn abtippen.

Glücklicherweise ist SumatraPDF OpenSource Software. Hier ist ein kleiner Patch, der in SumatraPDF Version 2.3.2 die entsprechende Funktion zur Berücksichtigung des Kopier- und Druck-Schutzes deaktiviert.

SumatraPDF-2.3.2-source_-_drm-patch.diff
SumatraPDF-2.3.2-source.zip

Die .diff Datei ist mit dem Programm diff samt des Parameters “-u” erstellt worden und kann von Hand oder bspw. mit dem Programm patch auf den originalen Quellcode angewendet werden.

Kompilieren geht so:

 

1. Start => Programme => Microsoft Windows SDK v7.1 => Windows SDK 7.1 Command Prompt
2. Diese Kommandos eingeben:

cd C:\sumatrapdf-2.3.2
set Path=%Path%;bin
"C:\Programme\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" makefile.msvc CFG=rel

Der Teil “C:\Programme\Microsoft Visual Studio 10.0” muss natürlich entsprechend geändert werden, je nachdem wo das WindowsSDK installiert wurde. Die fertig kompilierte SumatraPDF.exe findet sich nach dem Kompilieren im Unterordner “obj-rel”. Es kann entweder die etwa 4,9 MB große SumatraPDF.exe alleine verwendet werden oder zusammen mit folgenden Dateien die etwas kleinere SumatraPDF-no-MuPDF.exe.
DroidSansFallback.ttf
libmupdf.dll
npPdfViewer.dll
PdfFilter.dll
PdfPreview.dll

Alternativ kann mit diesem Befehl ein Debug-Build erstellt werden:

"C:\Programme\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" makefile.msvc

Hier noch ein kleines Dokument mit entsprechendem Kopier- und Druck-Schutz als Beispiel zum ausprobieren, ob alles geklappt hat.

copy and print protected example.pdf