Geschützte (sichere) PDF-Datei aufnehmen und als bearbeitbare (normale) PDF-Datei speichern?

494
Narzard

Jeden Tag habe ich ein Skript, das eine Website kratzt und tägliche Anweisungen als geschützte PDFs herunterlädt. Dies bedeutet, dass die PDF-Dateien angezeigt werden können, jedoch ohne Kennwort nicht editierbar sind. Sie sind schreibgeschützt, wenn Sie möchten. Ich hatte viele Anfragen von Mitarbeitern, die diese PDF-Dateien bearbeiten möchten, ohne sie zu öffnen, auf Speichern unter klicken und dann die PDF-Datei als neue, bearbeitbare Datei auf dem PDF-Drucker erneut drucken.

Gibt es eine Lösung, die diese geschützten PDFs in Massen konvertieren und in editierbare konvertieren kann? Ich dachte an eine Art "heißer" Ordner, in dem ich die geschützten pdfs ablegen kann, und sie werden automatisch konvertiert und erneut gespeichert.

0

1 Antwort auf die Frage

1
Narzard

GhostScript kann dies leicht erreichen. Sie können es hier herunterladen: http://ghostscript.com/download/gsdnld.html In diesem Beispiel verwende ich die 32-Bit-Windows-Version.

Es folgen zwei Dateien. Eines ist ein Powershell-Skript und eines ist eine Batch-Datei. Die Batchdatei startet das Powershell-Skript und umgeht alle Ausführungsrichtlinieneinstellungen, sodass sie von jeder Maschine ohne Powershell-Konfiguration ausgeführt werden können. Das Powershell-Skript nutzt ghostscript, um sichere PDFs erneut zu drucken und als reguläre PDFs in einem bestimmten Verzeichnis zu speichern.

Stapel (Ort: F: \ PDFStoPDF \ convertPDF.bat)

cd "q:\PDFStoPDF\gs" powershell.exe -noexit -ExecutionPolicy Bypass -File "q:\PDFStoPDF\gs\pdfconvert.ps1" 

Zunächst ändert der Stapel das Verzeichnis in den Speicherort der GhostScript-EXE-Datei und das Powershell-Skript. Dann umgeht es die Ausführungsrichtlinie und führt das Powershell-Skript aus.

PowerShell (Ort: F: \ PDFStoPDF \ gs \ pdfConvert.ps1)

$GhostScript = "q:\PDFStoPDF\gs\gs9.20\bin\gswin32c.exe"  Get-ChildItem "Q:\PDFStoPDF\*.pdf" | Where { $_.BaseName -NotMatch "Conv" } | ForEach-Object { $InputFile = $_.FullName $OutputFile = "Q:\PDFStoPDF\ (Conv).pdf" -F $_.BaseName  & "$GhostScript" -dPDFA -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="$OutputFile" "$InputFile" } 

Das Powershell-Skript legt zuerst den Pfad des GhostScript-Exe fest gswin32c.exe. Als Nächstes fordern wir Sie auf, alle PDF-Dateien aus dem Ordner "Q: \ PDFStiPDF \" abzurufen, in dem der Dateiname nicht die Buchstaben "conv" enthält. Wenn Sie die Pipe fortsetzen, sagen wir Ghostscript, dass die Eingabedatei der aktuelle Dateiname sein wird und die Ausgabedatei im selben Verzeichnis liegt, fügen Sie jedoch einfach CONV am Ende des Dateinamens hinzu.

Vor dem Skript : F: \ PDFStoPDF \ myPDF01.pdf

Nach dem Skript : F: \ PDFStoPDF \ myPDF01Conv.pdf

Mit der Option -NotMatch können bereits konvertierte Dateien nicht berührt werden.

Als Nächstes druckt und speichert das Skript die PDF-Datei mit dem PDF-Drucker pdfwrite

Um dies zu erreichen, ziehen Sie eine Datei in das Verzeichnis Q: \ PDFStoPDF \ und klicken Sie auf die dort befindliche .bat-Datei. Es nimmt das PDF und speichert es als bearbeitbares PDF im selben Verzeichnis.