PDFs - zerlegen unter Linux: in 40 Ordner alle PDFs in Onepager umwandeln - mit einem Schritt - Tools und Verfahren?

chiemsee

Profi
Thread Starter
Mitglied seit
22.02.2023
Beiträge
157
guten Abend, Community


wie zerlegt und teile ( splittet) ihr denn PDFs - ich hab hier einige - die ich zerlegen muss in Teile

Welche Verfahren sind hier am zuverlässigsten - also ggf.
- unter Linux oder
- meinetwegen auch unter Win.

- denke aber dass Linux hier wesentlich leistungsfähiger ist.

Freue mich auf einen Tipp
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
wie zerlegt und teile ( splittet) ihr denn PDFs - ich hab hier einige - die ich zerlegen muss in Teile
Wie zerlegen/teilen/splitten?

Einzelne Sachen rauskopieren oder entfernen oder ein 20-seitiges PDF in zwei 10-seitige PDFs teilen, oder was hast du vor?

- denke aber dass Linux hier wesentlich leistungsfähiger ist.
Das hat überhaupt nix mit Linux, Windows, MacOS, DOS oder OS/2 zu tun.
Das hängt einzig und allein davon ab, ob es für das jeweilige OS ein Programm gibt, das halt sowas kann.
Und PDF-Editoren die unter Linux laufen... naja, sagen wir mal so: Ich kenne zumindest keine wirklich guten.
 
Nabend Lisel

vorweg: vielen Dank für deine rasche Rückmeldung. Klar hast du Recht - und wahrscheinlich laufen under Windows sowieso 100 mal mehr PDF-Programme.

Mein Thema: ich hab 40 Ordner mit pdf-files darinnen - und ich wills gern mit nem Batchprogramm machen und alle (!) PDFs in onepager umwandeln.

Klar mit Windows kann man alles (auch) machen. Ich dachte also an

Mupdf https://mupdf.com MuPDF is a lightweight bla…

oder an ein Skript - das das erledigt: split a multi-page pdf file into multiple pdf files with python?


Code:
from PyPDF2 import PdfWriter, PdfReader

inputpdf = PdfReader(open("document.pdf", "rb"))

for i in range(len(inputpdf.pages)):
    output = PdfWriter()
    output.add_page(inputpdf.pages[i])
    with open("document-page%s.pdf" % i, "wb") as outputStream:
        output.write(outputStream)


klar - die Windowskiste kann auch alles - aber wenns um Kommandozeile geht ist imho Linux iwie näher dran.

ich guck mal wie ich das irgendwie lösen kann.

GGF auch mit Mupdf ....
 
klar - die Windowskiste kann auch alles - aber wenns um Kommandozeile geht ist imho Linux iwie näher dran.
Das ist aber halt auf einmal auch eine ganz andere Frage.
Du suchst also nicht ein Programm mit dem man ein einzelnes PDF verändern/teilen kann, sondern du suchst ein Programm mit dem man ganze Ordner voll mit PDFs in Batch verarbeiten kann. Egal ob dieses Batchprocessing nun via GUI oder Kommandozeile gesteuert werden kann.

Ja, da hast du unter Linux wohl potentiell bessere Chancen irgendein Tool zu finden, was via Kommandozeile steuerbar ist und somit auch Batch-fähig, aber die Frage ist auf einmal eine komplett andere.

Und dein Beispielcode ist Python... das ist ja nichtmal Batch/bash... kann aber gut sein, das sowas mit Python umsetzbar ist. Dann wäre eher die Frage, ob jemand eine Pythonlib kennt, die sowas kann.
Wenn du nach einem Tool für PDFs fragst, wird dir kaum jemand antworten wie man das mit einem Pythonskript machen könnte, weil keiner weiß das du Python verwenden kannst/willst, geschweige denn selber ganze Skripte schreiben würdest.... und wenn man das mit Python machen will/kann, dann müsste man GENAU wissen, was du eigentlich tun willst.

Du hast da ja also schon was gefunden, was in die Richtung geht. (Weil Python platformunabhängig ist, würde das übrigens auch genauso unter Windows funktionieren)
Was genau ist das Problem damit? Was funktioniert daran nicht? Irgendwelche Fehlermeldungen?
 
Servus Lisel Weppen

danke fürs Rückmelden... Also der Python-PDF-Toolkit "PyPDF2" ist schon ein guter Ansatz - denk ich mal.

ich machs so...:


Python:
import os
from PyPDF2 import PdfWriter, PdfFileReader


input_folder = 'Pfad_zum_Eingangsordner'
output_folder = 'Pfad_zum_Ausgangsordner'


if not os.path.exists(output_folder):
    os.makedirs(output_folder)


for filename in os.listdir(input_folder):
    if filename.endswith('.pdf'):
        input_file = os.path.join(input_folder, filename)
        with open(input_file, 'rb') as f:
            inputpdf = PdfFileReader(f)
            for i in range(inputpdf.getNumPages()):
                output = PdfWriter()
                output.addPage(inputpdf.getPage(i))
                output_file = os.path.join(output_folder, f'{os.path.splitext(filename)[0]}_page{i+1}.pdf')
                with open(output_file, 'wb') as outputStream:
                    output.write(outputStream)



mit:
- jeweils dem Pfad zum Eingangsordner und der Pfad zum Ausgangsordner als Variablen definiert.
- Das Skript durchsucht dann im Grunde genommen einfach alle PDF-Dateien im Eingangsordner und wandelt jede Datei in einzelne Seiten um, die im Ausgangsordner gespeichert werden.
- Die Ausgabedateinamen werden im Format "originaler_Dateiname_pageX.pdf" benannt.

Feddich .. ;)

ich muss mich noch bissle in PyPDF2 einlesen

- vg euer Chiemsee

ps. ein anderer Weg wäre der Einatz von borb

Split, Merge and Rotate PDF Documents in Python with borb

In this guide, we'll be using borb - a Python library dedicated to reading, manipulating and generating PDF documents. It offers both a low-level model (allowing you access to the exact coordinates and layout if you choose to use those) and a high-level model (where you can delegate the precise calculations of margins, positions, etc to a layout manager).
In this guide, we'll take a look at how to split and merge PDF documents in Python using borb, we'll also look at how to rotate pages in a PDF document.
Splitting and merging PDF documents are the basis for many use-cases:
Processing an invoice (you don't need the terms and conditions so you can remove those pages)
Adding a cover letter to documents (a test report, an invoice, promotional material)
Aggregating test-results from heterogeneous sources
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh