PDF mit Seiten unterschiedlichen Formats erzeugen?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

PDF mit Seiten unterschiedlichen Formats erzeugen?

Beitrag von michaa7 » 02.04.2025 01:21:59

Gegeben: pdf mit expliziten Seitennummern bestehend aus S5-S10 und S27-S30. Das sind 10 Seiten.

Ein bestimmtes Programm kann mit expliziten Seitennummer nicht (richtig) umgehen. Explizite Seite 10 meines Dokuments ist dort also gezählte Seite 6. Diese falsche Zahl wird dann für Weiterverarbeitungszwecke übernommen.

Abhilfe: Ich füge die leeren Seiten S0-S4 und S11-S26 ein. Alles funktioniert für Weiterverarbeitungzwecke richtig.
Ärger: Ich muß ewig (es gibt auch längere Dokumente als hier im Beispiel ... und ich möchte das rein aus was-weiß-ich wissen) durch leere Seiten scrollen und es ist unübersichtlich.
Abhilfe dafür: Ich füge dünne Leerseiten ein, so breit wie die Seiten mit Inhalt, aber nur ein oder wenige Pixel hoch. Sie muß lediglich als Seite ***gezählt*** werden können.

Problem gelöst.

Geht das? Wenn ja, wie?

(möglichst ohne weiteres warum und wieso).
Zuletzt geändert von TRex am 03.04.2025 11:25:57, insgesamt 1-mal geändert.
Grund: Titel entplenkt
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

juribel
Beiträge: 369
Registriert: 20.06.2023 10:17:01

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von juribel » 02.04.2025 09:23:44

Meine erste schnelle Idee wäre, deine pdf an der "Sollbruchstelle" in zwei einzelne pdf-Dateien aufzusplitten. Mit einem anderen Programm eine leere pdf-Datei der gewünschten Höhe erzeugen, und diese dann zusammenfügen.

Benutzeravatar
Huo
Beiträge: 836
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von Huo » 02.04.2025 09:35:24

Gerade ausprobiert: Bequem per GUI geht das mit dem Master PDF Editor.
Anleitung: https://code-industry.net/masterpdfedit ... ank-pages/
Einfach das Seitenformat als "benutzerdefiniert" und den Wert für die Höhe so klein wie gewünscht setzen.

michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von michaa7 » 02.04.2025 14:08:02

Ich möchte so weit es geht CLI nutzen, und der Notfall müsste extrem werden das ich ein nicht-OS Programm nutze. Eure Antworten haben mich aber soweit ermuntert dass sie bedeuten dass es prinzipiell funktioniert.

Wie man so ein PDF mit leeren Seiten geringster Höhe erstellt habe ich nun herausgefunden.

Code: Alles auswählen

convert xc:none -page 1417x20 a.pdf
Wobei ich das Breitenmaß diesem Kommando (mit unsäglich fragwürdigen output) entnommen habe:

Code: Alles auswählen

mutool info -M <file.pdf>
Worauf ich nun hinaus will ist folgendes:

Mit qpdf (oder einem anderen "üblichen" CL tool?) gibt es die Möglichkeit ein PDF aus verschiedenen Ausgangs PDFs zusammen zu bauen. Irgendwo hatte ich die vergangenen gelesen von einem tool was ranges UND file in einem command erlaubt, also so etwas in pseudocode:

"einpdftool erstelle page-range 1-5:file.a 5-10:file.b 11-26:file.a 27-30:file.b -ouput.pdf"

wobei man vorab diese superdünne Seite z.B. verhunderfachen müsste um ein "a.pdf" mit 100 superdünnen Seiten zu erzeugen aus dem mann dann beliebig lange (bis eben 100 Seiten) ranges heruskopieren lassen kann . Leider finde ich in den unterschiedlichen manpages eher heraus wie ich verschschlüssle, verpassworte, verchinesischiere, aber nicht wie ich vervielfältige.

Ich betreibe den Aufwand ja nicht für eine Datei. Ich möchte eine Lösung die ich bei entsprechender Anpassung der page-ranges für jedes beliebige (löchrige) pdf verwenden kann.

Lösungen und/oder Lösungsbeispiele oder Schritte dorthin willkommen.

Danke vorab.


EDIT:

Wie ich die Datei zusammenbastel habe ich schon gefunden:

Code: Alles auswählen

 mutool merge [options] file1 [pages] file2 [pages]
Jetzt muss ich nur noch herausfinden wie ich diese dünne seiten vervielfache (oder ich eine Seite mehrfach mergen kann ohne dies Seite für Seite explizit angeben zu müssen).
Zuletzt geändert von michaa7 am 02.04.2025 14:55:28, insgesamt 2-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Huo
Beiträge: 836
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von Huo » 02.04.2025 14:53:50

Mit Debianpdftk sollte es in deinem Sinne zu bewerkstelligen sein:

Code: Alles auswählen

pdftk A=a.pdf B=b.pdf cat A1-5 B1 A6-12 B1 A13-17 B1 A18-end output c.pdf
In diesem Beispiel ist a.pdf ein PDF mit mehr als 18 Seiten, b.pdf das per Deinem convert-Befehl erzeugte PDF mit lediglich einer Seite von geringer Höhe. Das ausgegebene PDF c.pdf entspricht a.pdf, in das die kleinen Blankoseiten nach den Seiten 5, 12 und 17 eingefügt wurden.
Zuletzt geändert von Huo am 02.04.2025 14:57:05, insgesamt 1-mal geändert.

michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von michaa7 » 02.04.2025 14:56:43

Super, danke, das probiere ich sofort aus und melde mich wieder.

Danke schon mal!!!
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von michaa7 » 02.04.2025 16:36:37

Huo hat geschrieben: ↑ zum Beitrag ↑
02.04.2025 14:53:50
Mit Debianpdftk sollte es in deinem Sinne zu bewerkstelligen sein:

Code: Alles auswählen

pdftk A=a.pdf B=b.pdf cat A1-5 B1 A6-12 B1 A13-17 B1 A18-end output c.pdf
In diesem Beispiel ist a.pdf ein PDF mit mehr als 18 Seiten, b.pdf das per Deinem convert-Befehl erzeugte PDF mit lediglich einer Seite von geringer Höhe. Das ausgegebene PDF c.pdf entspricht a.pdf, in das die kleinen Blankoseiten nach den Seiten 5, 12 und 17 eingefügt wurden.
Das passt nicht so ganz. Vom Prinzip her ist es fast richtig:

In meinem Ausgangsbeispiel mit den inhaltlichen Seiten S5-S10 und S27-S30 müssen dünne Leerseiten
von 1-4 und 11-26 eingefügt werden, nicht eine einzelne.

Das ginge mit deinem Ansatz nur wenn a.pdf (die mit den Leerseiten) viel mehr als eine Seite umfaßt um einen ausreichend großen range von Seiten daraus kopieren zu können oder es die Möglichkeit gäbe irgendwie zu definieren wie oft ein range zu wiederholen ist (wofür es vermutlich keine option gibt) oder ein range mit einer Seite Seite-für-Seite gefüllt werden könnte. von einer derartigen Möglichkeit habe ich noch nirgends gelesen.

Also müßte man doch erst a.pdf mit sehr vielen leeren, dünnen Seiten erstellen: Für Scriptexperten (also scripttechnisch quasi das Gegenteil von mir :mrgreen: ) sollte es doch einfach sein diesen pseudocode zu verscripten :

Aus man pdftk:

*********************************************************
cat:
Page Range Examples Using Handles:
Say A=in1.pdf B=in2.pdf, then:
...
A A – catenate in1.pdf with in1.pdf
*********************************************************


#!/bin/bash

$: Anzahl der Wiederholungen

$(loop-anfang)
pdftk A=duenn.pdf cat A A output duenn.pdf # ja, hier wird der inputfile überschrieben, falls pdftk das zuläßt
loop-ende

Wenn die Anzahl der Wiederholungen 7 beträgt, dann hat duenn.pdf zum Schluß 128 Seiten, das müßte reichen ;-)

done


Daraus könnte man dann die jeweils notwendige Anzahl von Seiten deinem obigen Ansatz gemäß herauskopieren lassen.

EDIT:

Naja, das muß mann nicht scripten, das ist ja in 7 schritten auch per hand getan ...

und damit kann mann dann die Datei mit unterschiedlichen Seitenformat wunschgemäß zusammenbauen.

Code: Alles auswählen

pdftk A=duenn.pdf B=inhalte.pdf cat A1-4 B5-10 A11-26 B27-30 output test.pdf
Danke Huo!
Zuletzt geändert von michaa7 am 03.04.2025 10:43:51, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Korodny
Beiträge: 736
Registriert: 09.09.2014 18:33:22
Lizenz eigener Beiträge: GNU Free Documentation License

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von Korodny » 02.04.2025 18:35:07

Das Problem scheint ja nun (fast) gelöst, allerdings in meinen Augen eher wenig elegant. Die 16 leeren Seiten mitten im Dokument existieren ja noch, sehen bekloppt aus und behindern bzw. verwirren mich.

Wenn es tatsächlich nur um die im Eingangsbeitrag erwähnten "Weiterverarbeitungszwecke" geht, wie sehen diese Weiterverarbeitungszwecke denn aus?

Wenn es hier lediglich um semi-automatisiertes Extrahieren bestimmter Seiten o.ä. geht, würde ich eher in den Metadaten des (unveränderten) PDFs festhalten, welche Seiten fehlen oder andere Seitennummern haben ("Keywords: MissingPages_1-4_11-26"). Wenn es dann an die Weiterverarbeitung geht, wird nicht EIN_PDF_TOOL {Dateiname} aufgerufen, sondern INSERT_MISSING_PAGES {Dateiname} EIN_PDF_TOOL. Das Skript INSERT_MISSING_PAGES würde die Ursprungsdatei nehmen, aus den Metadaten auslesen welche Seiten eingefügt werden müssen, eine temporäre Datei mit 30 Seiten (davon 20 leer) erstellen und diese an EIN_PDF_TOOL übergeben.

michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von michaa7 » 02.04.2025 19:14:34

Korodny hat geschrieben: ↑ zum Beitrag ↑
02.04.2025 18:35:07
Das Problem scheint ja nun (fast) gelöst, allerdings in meinen Augen eher wenig elegant. Die 16 leeren Seiten mitten im Dokument existieren ja noch, sehen bekloppt aus und behindern bzw. verwirren mich.

Wenn es tatsächlich nur um die im Eingangsbeitrag erwähnten "Weiterverarbeitungszwecke" geht, wie sehen diese Weiterverarbeitungszwecke denn aus?

Wenn es hier lediglich um semi-automatisiertes Extrahieren bestimmter Seiten o.ä. geht, würde ich eher in den Metadaten des (unveränderten) PDFs festhalten, welche Seiten fehlen oder andere Seitennummern haben ("Keywords: MissingPages_1-4_11-26"). Wenn es dann an die Weiterverarbeitung geht, wird nicht EIN_PDF_TOOL {Dateiname} aufgerufen, sondern INSERT_MISSING_PAGES {Dateiname} EIN_PDF_TOOL. Das Skript INSERT_MISSING_PAGES würde die Ursprungsdatei nehmen, aus den Metadaten auslesen welche Seiten eingefügt werden müssen, eine temporäre Datei mit 30 Seiten (davon 20 leer) erstellen und diese an EIN_PDF_TOOL übergeben.
Das nutzt nichts.

Vereinfacht gesagt geht es um eine Literaturverwaltung die explizite Seitennummern nicht (richtig) versteht und beim Markieren eines Seitenbereiches (zwecks potenziellem späteren Zitieren) im Falle unvollständiger (= "löchriger") PDFs die gezählte, nicht die explizite Seitennummer übernimmt.
Man hat zwei workarounds:
1) Seitennummer für jeden markierten Bereich per sub-sub-menü manuell anpassen, dafür hat man ja einen Computer, dass der einem sich wiederholende Tasks aufträgt
2) ein anderes Menü benutzen, das ganz anders und mit beschränkter Funktionalität funktioniert.

Ich möchte gerne für gleiche Aufgaben einheitliche Arbeitsabläufe und für das Standard Bearbeitungstool besser nicht die Einschränkung auf lückenlose Kopien .

Bei vollständigen Scanns ist das kein Problem (solange die Seite 1 von Scan und Orginal übereinstimmen). Von rechtlichen Einschränkungen ganz abgesehen will ich einfach nicht mit Vollscanns arbeiten *müssen* oder mich zum Korrektursklaven des Programms machen müssen.

Ärgerlich ist dass das Programm explizite Seitennummern in PDFs eigentlich erkennt und anzeigt ... nur nicht in besagtem Menü. Meine entsprechende Anfrage im Support ist auf wenig Gegenliebe gestoßen ... "es gibt ja workarounds".

Ich möchte aber vorschlagen es an dieser Stelle mit den Erklärungen gut sein zu lassen.

Die hier gefundenen Lösung ist für mich der akzeptabelste workaround.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Huo
Beiträge: 836
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von Huo » 03.04.2025 10:05:41

michaa7 hat geschrieben: ↑ zum Beitrag ↑
02.04.2025 16:36:37
pdftk A=duenn.pdf cat A A output duenn.pdf # ja, hier wird der inputfile überschrieben, falls pdftk das zuläßt
loop-ende

Wenn die Anzahl der Wiederholungen 7 beträgt, dann hat duenn.pdf zum Schluß 128 Seiten, das müßte reichen ;-)

done


Daraus könnte man dann die jeweils notwendige Anzahl von Seiten deinem obigen Ansatz gemäß herauskopieren lassen.

EDIT:

Naja, das muß mann nicht scripten, das ist ja in 7 schritten auch per hand getan ...

und damit kann mann dann die Datei mit unterschiedlichen Seitenformat wunschgemäß zusammenbauen.

Code: Alles auswählen

pdftk A=duenn.pdf B=inhalte.pdf cat A1-4 B5-10 A1-16 B27-30 output test.pdf
Ja, mit hinreichend vielen Leerseiten in duenn.pdf klappt das doch prima. Mir war gestern unabhängig davon noch eine Lösung eingefallen mit einer duenn.pdf, die nur aus einer einzigen dünnen Leerseite besteht. Per printf und Befehlssubstitution wird diese eine Seite einfach in passender Anzahl eingefügt (hier in Anlehnung an dein Beispiel erst 4, dann 16 mal):

Code: Alles auswählen

pdftk A=duenn.pdf B=inhalte.pdf cat $(printf 'A %.0s' {1..4}) B5-10 $(printf 'A %.0s' {1..16}) B27-end output out.pdf

michaa7
Beiträge: 5127
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: PDF mit Seiten unterschiedlichen Formats erzeugen ?

Beitrag von michaa7 » 03.04.2025 10:50:11

Huo hat geschrieben: ↑ zum Beitrag ↑
03.04.2025 10:05:41
michaa7 hat geschrieben: ↑ zum Beitrag ↑
02.04.2025 16:36:37
...

Code: Alles auswählen

pdftk A=duenn.pdf B=inhalte.pdf cat A1-4 B5-10 A1-16 B27-30 output test.pdf
Mir ist da ein kleiner Schreibfehler unterlaufen, nur um für andere Verwirrung zu vermeiden:
A1-16 muß natürlich A11-26 lauten! Habs oben bei mir korrigiert.
Huo hat geschrieben: ↑ zum Beitrag ↑
03.04.2025 10:05:41
Ja, mit hinreichend vielen Leerseiten in duenn.pdf klappt das doch prima. Mir war gestern unabhängig davon noch eine Lösung eingefallen mit einer duenn.pdf, die nur aus einer einzigen dünnen Leerseite besteht. Per printf und Befehlssubstitution wird diese eine Seite einfach in passender Anzahl eingefügt (hier in Anlehnung an dein Beispiel erst 4, dann 16 mal):

Code: Alles auswählen

pdftk A=duenn.pdf B=inhalte.pdf cat $(printf 'A %.0s' {1..4}) B5-10 $(printf 'A %.0s' {11..26}) B27-end output out.pdf
Habe hier den entsprechenden Schreibfehler im Zitat richtig "gefälscht" ;-)

Danke für den Einzeiler, der ist auf jeden Fall praktisch und kommt in mein PDF-howto.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten