Python script zum entschlüsseln von PDF
Beschreibung:
Ein Python script das eine zum bearbeitende gesperrte PDF entsperrt in dem es die PDF nochmals Druckt und speichert.
Vorrausetzungen
pip install pyqt5 PyPDF2
Das Script auch zum Download : removepermission.py
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QFileDialog, QMessageBox
from PyPDF2 import PdfReader, PdfWriter
class PDFPasswordRemover(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# Layouts
mainLayout = QVBoxLayout()
sourceLayout = QHBoxLayout()
targetLayout = QHBoxLayout()
topLayout = QHBoxLayout()
# Setzen Sie die Größe des Hauptfensters
self.resize(500, 200) # Ändern Sie diese Werte nach Bedarf
self.setWindowTitle("Entfernen von Kennwort")
# Über Button
aboutButton = QPushButton("Über", self)
aboutButton.clicked.connect(self.showAboutInfo)
topLayout.addWidget(aboutButton)
topLayout.addStretch()
# Source file widgets
self.sourceEntry = QLineEdit(self)
sourceBrowseButton = QPushButton("Quelle Durchsuchen", self)
sourceBrowseButton.clicked.connect(self.browseSourceFile)
sourceLayout.addWidget(self.sourceEntry)
sourceLayout.addWidget(sourceBrowseButton)
# Target file widgets
self.targetEntry = QLineEdit(self)
targetSaveButton = QPushButton("Ziel Durchsuchen", self)
targetSaveButton.clicked.connect(self.saveTargetFile)
targetLayout.addWidget(self.targetEntry)
targetLayout.addWidget(targetSaveButton)
# Decrypt button
decryptButton = QPushButton("Entschlüsseln", self)
decryptButton.clicked.connect(self.decryptPDF)
# Result label
self.resultLabel = QLabel("", self)
# Adding widgets to main layout
mainLayout.addLayout(topLayout)
mainLayout.addLayout(sourceLayout)
mainLayout.addLayout(targetLayout)
mainLayout.addWidget(decryptButton)
mainLayout.addWidget(self.resultLabel)
self.setLayout(mainLayout)
self.setWindowTitle("Entfernen von Kennwort")
def showAboutInfo(self):
QMessageBox.about(self, "Über", "Hacker-Net Telekommunikation\nAm Wunderburgpark 5b\n26135 Oldenburg\n\nhttps://www.hacker-net.de")
def browseSourceFile(self):
file_path, _ = QFileDialog.getOpenFileName(self, "Quell-PDF wählen", "", "PDF Files (*.pdf)")
if file_path:
self.sourceEntry.setText(file_path)
def saveTargetFile(self):
file_path, _ = QFileDialog.getSaveFileName(self, "Ziel-PDF speichern", "", "PDF Files (*.pdf)")
if file_path:
self.targetEntry.setText(file_path)
def decryptPDF(self):
source = self.sourceEntry.text()
target = self.targetEntry.text()
if source and target:
message = self.removePassword(source, target)
self.resultLabel.setText(message)
else:
self.resultLabel.setText("Bitte wählen Sie die Quell- und Zielpfade aus.")
def removePassword(self, source_path, target_path):
try:
reader = PdfReader(source_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
with open(target_path, "wb") as output_pdf:
writer.write(output_pdf)
return "Erfolg: PDF wurde erfolgreich gespeichert."
except Exception as e:
return f"Fehler: {e}"
def main():
app = QApplication([])
ex = PDFPasswordRemover()
ex.show()
app.exec_()
if __name__ == '__main__':
main()
Möchte man das Script in eine einzelne Ausführbare Datei packen.
Ist pyinstaller nützlich.
Siehe hier : Python als Einzel Executable