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()