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:
- Windows XP (es geht sicher auch mit fast jedem anderem Windows)
- WindowsSDK for Windows 7 and .NET Framework 4 Version 7.1 (alternativ wohl auch Visual Studio):
- https://www.microsoft.com/en-us/download/details.aspx?id=8442
- Windows Native Code Developement
- Windows Headers and Libraries
- Windows Headers
- x86 Libraries
- Tools
- Visual C++ Compilers
- Windows Headers and Libraries
- Windows Native Code Developement
- https://www.microsoft.com/en-us/download/details.aspx?id=8442
- Microsoft .NET Framework 4:
- Microsoft .NET Framework 4 Full Language Pack (x86):
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.