Import von PDF Dokument und Ränder setzen

Moin in die Runde,
ich habe folgende Problemstellung und frage mich, ob sie mit RT zu lösen ist:
Ein ca. 1600 Seiten pdf Dokument mit zu korrigierenden Rändern möchte ich so beschneiden, daß alle linken Seiten einen breiteren Rand rechts und alle rechten Seiten einen breiteren Rand links haben.
Dies, um das Dokument als Buch drucken zu können.
Das Beschneiden aller Seiten im gleichen Verhältnis funktioniert problemlos mit Nitro PDF Pro.
Aber eben nicht das Einstellen, oder Beschneiden auf die unterschiedlichen Ränder links und rechts.
Kennt jemand von Euch hierfür eine Lösung in RagTime?
Vielen Dank für Rückmeldungen.
Grüße, Federico

Re: Import von PDF Dokument und Ränder setzen

#13378 On 22 Oktober, 2022 16:10 Thomas Kaegi said,

Hallo Federico

Ich hoffe, du arbeitest auf einem Mac. Dann führt der im Folgenden beschriebene Weg zum Ziel. Du arbeitest mit RagTime unter Windows? Dann hast du auf das falsche Pferd gesetzt! Im Moment funktioniert die vorgeschlagene Lösung noch nicht mit RagTime 7! Du musst also eine ältere Version benützen.

Als erstes musst du dein PDF-Dokument in die einzelnen Seiten zerlegen. Ich habe mit der Suche nach "Mehrseitiges PDF in einzelne Seiten zerlegen" im Internet mehrere Lösungen dafür gefunden. Zum Test habe ich ein 5-seitiges PDF mit dem kostenlosen online-Angebot von Adobe zerlegt. Aber das funktioniert mit einem Dokument mit so vielen Seiten wie in deinem Fall nicht. Du musst also einen anderen Weg finden. Idealerweise hat dein Ausgangsdokument einen kurzen Namen, so dass die resultierenden Einzelseiten danach z.B. die Namen "PDF_n.pdf" tragen, wobei "n" die Seitennummer innerhalb des Ausgangs-PDFs ist. – Bei meinem Test liegen nach der Zerlegung die 5 Seiten mit dem Namen "PDF_n.pdf" im Ordner "PDFs" auf dem Schreibtisch.

Bevor du das gewünschte RagTime-Dokument anlegst: Lege mit RagTime ein neues Dokument an und lösche den Container, der sich im Layout befindet (weil er mit einer Pipeline versehen ist, eignet er sich für die folgenden Schritte nicht). Ändere das Papierformat, so dass dieses deinem künftigen Buch entspricht. Zieh einen Rahmen auf, in welchen du eine Textseite deines PDFs importierst. Passe Grösse und Position des Rahmens so an, dass die Platzierung für eine rechte Seite deines Buchs stimmt. Notiere die genaue Position und Grösse dieses Rahmens.

Jetzt zum "Zieldokument": Lege ein neues Dokument "beginnend mit Stammseite" an. Auch hier muss das Papierformat dem Format deines Buchs entsprechen. Auf der Stammseite ziehst du einen Rahmen mit den im Vorversuch ermittelten Koordinaten auf. Dann wählst du die Stammseite am Reiter aus und wählst im Menü "Layout" den Befehl "Doppelseitige Stammseite". So wird automatisch die Stammseite für die linken Seiten erzeugt. Dann legst du eine neue Layout-Komponente an, logischerweise abhängig von der eben definierten Stammseite.

Mit "Extras/Apple Script/Skripte verwalten…/Neu" legst du ein neues AppleScript an:

tell application "RagTime 6.6"
activate
set i to 1
set lastpage to 5
repeat while i ≤ lastpage
select rectangle 1 of page i of layout "Layout 1" of document 1
change selection to alias ("XXXXX:PDF_" & i & ".pdf") without link to file
if i is less than lastpage then
make new page at end of window 1
end if
set i to i + 1
end repeat
end tell

Dabei muss natürlich im Statement "set lastpage to" nicht 5, sondern die Seitenzahl deines Dokumentes angegeben werden. Statt XXXXX muss der Pfad zum Ordner mit den einzelnen PDF-Seiten stehen. Das war bei meinem Test:
Macintosh HD:Users:Thomas:Desktop:PDFs
Es sollte keine Kunst sein, das für dich zu adaptieren. "is less than" kannst du durch das "Kleiner-Zeichen" ersetzen. Auf der Forumseite kann ich das Zeichen nicht benützen, da sonst der Rest des Scripts unterdrückt wird.
Wenn du das Script ausführst, werden die im Ordner "PDFs" bereitliegenden PDF-Seiten in die entsprechende Seite im RagTime-Dokument übernommen. Bei mir läuft das mit RT 6.6 unter Mojave selbst unter der Parallels-Desktop-Emulation mit ganz ordentlicher Geschwindigkeit.

Viel Erfolg!
Gruss, Thomas

Re: Import von PDF Dokument und Ränder setzen

#13380 On 25 Oktober, 2022 11:46 GreatOm said,

Unter http://experts.ragtime.de/experts/node/3773 gibt es ein AppleScript, bei dem die Seiten aus einem mehrseitigen PDF geholt werden.
Damit kann man sich das splitten sparen.

;-)

Re: Import von PDF Dokument und Ränder setzen

#13381 On 25 Oktober, 2022 19:31 Federico said,

Super, herzlichen Dank!

Re: Import von PDF Dokument und Ränder setzen

#13382 On 29 Oktober, 2022 14:57 Thomas Kaegi said,

An diese Anleitung habe ich mich nicht mehr erinnert. Danke für den Hinweis.

Aber leider bringe ich das Skript nicht erfolgreich zum laufen. Auf meinem Mac läuft RT 6.6 in der Parallels-Desktop-Umgebung und da diagnostiziert der Skript-Editor Syntax-Fehler. Es ist mir nicht gelungen, diese zu eliminieren.

Ich habe es dann auf dem Mac meiner Frau versucht. Da läuft das Skript. Aber im neuen Dokument werden die PDF-Seiten nur ins Inventar importiert, jedoch nicht ins Layout, das am Schluss nur aus einer einzigen leeren Seite besteht.

Aber selbst wenn das funktionieren würde, wäre Federico Problem damit nicht gelöst, denn die PDF-Seiten sind nicht so im Layout platziert, wie er sich das wünschte, und das Papierformat ist A4, statt im Format der Buchseiten.

Es ist mir leider auch nicht gelungen, die Ideen des Scripts von Thomas Eckert in mein Script zu integrieren. Kein Wunder, denn meine Skripts erstelle ich immer nur mit Probieren, da mir die Skript-Syntax weitestgehend fremd ist.

Meine erste Antwort zeigt immerhin einen Weg auf, um Federico Problem zu lösen, auch wenn es wahrscheinlich möglich wäre, das Script so abzuändern, dass das PDF nicht in Einzelseiten aufgeteilt werden müsste.

Gruss, Thomas

Re: Import von PDF Dokument und Ränder setzen

#13383 On 29 Oktober, 2022 20:22 Thomas Kaegi said,

Hallo Federico

Jetzt ist es mir doch noch gelungen, eine voll funktionierende Lösung zu schaffen. Ich habe es aufgegeben, die Befehle zu verstehen und zu versuchen, diese zu adaptieren. Jetzt importiert das Skript zuerst alle Bilder ins Dokument, ohne sie im Layout zu platzieren. Dazu habe ich das Skript von Thomas Eckert nur leicht adaptiert, so dass es einfach die Aufteilung deines PDF-Dokumentes in seine einzelnen Seiten erledigt. – In einer zweiten Schlaufe (ungefähr wie in meinem ersten Skript) werden die PDFs dann im Layout platziert.

Ausgangspunkt ist das RagTime-Dokument, das du, wie in meiner ersten Antwort beschrieben, erstellt hast:
Bevor du das gewünschte RagTime-Dokument anlegst: Lege mit RagTime ein neues Dokument an und lösche den Container, der sich im Layout befindet (weil er mit einer Pipeline versehen ist, eignet er sich für die folgenden Schritte nicht). Ändere das Papierformat, so dass dieses deinem künftigen Buch entspricht. Zieh einen Rahmen auf, in welchen du eine Textseite deines PDFs importierst. Passe Grösse und Position des Rahmens so an, dass die Platzierung für eine rechte Seite deines Buchs stimmt. Notiere die genaue Position und Grösse dieses Rahmens.

Jetzt zum "Zieldokument": Lege ein neues Dokument "beginnend mit Stammseite" an. Auch hier muss das Papierformat dem Format deines Buchs entsprechen. Auf der Stammseite ziehst du einen Rahmen mit den im Vorversuch ermittelten Koordinaten auf. Dann wählst du die Stammseite am Reiter aus und wählst im Menü "Layout" den Befehl "Doppelseitige Stammseite". So wird automatisch die Stammseite für die linken Seiten erzeugt. Dann legst du eine neue Layout-Komponente an, logischerweise abhängig von der eben definierten Stammseite.

Mit "Extras/Apple Script/Skripte verwalten…/Neu" legst du in diesem Dokument ein neues AppleScript an – in der ersten Zeile musst du den Pfad durch denjenigen zu deinem PDF-Dokument ersetzen, ebenso wie natürlich dessen Namen:

set pdfPath to POSIX file "/Users/DeinBenutzername/Desktop/NamenDeinesPdfDokumentes.pdf" as alias
tell application "RagTime 6.6"
activate
open inventory of document 1
set pageNo to 1
repeat
try
tell document 1 to make new picture at end with data pdfPath with properties {pdfpageno:pageNo}
set pageNo to pageNo + 1
on error
exit repeat -- all pages done
end try
end repeat
set lastpage to pageNo - 1
set pageNo to 1
repeat while pageNo ≤ lastpage
set contents of rectangle 1 of page pageNo of layout "Layout 1" of document 1 to picture ("TestPDF.pdf," & pageNo) of document 1
if pageNo is less than lastpage then
make new page at end of layout "Layout 1" of document 1
end if
set pageNo to pageNo + 1
end repeat
end tell

Viel Erfolg!
Gruss, Thomas

Re: Import von PDF Dokument und Ränder setzen

#13392 On 24 November, 2022 10:53 Helmut said,

Im RagTime Build 1994 wurden auch AppleScript Probleme behoben, daher läuft dieses Script jetzt.
Ein Tolles Script, vielen Dank für das Feedback zur Beta.
Gruß aus Garbsen

Re: Import von PDF Dokument und Ränder setzen

#13391 On 22 November, 2022 23:05 Federico said,

Mit dem neuesten RT Release klappt es jetzt mit Thomas Script selbst unter Ventura! Knapp 1.700 pdf Seiten in kurzer Zeit ohne Mucken! Jetzt steht noch das finetuning an.
Vielen Dank für die Hilfe Thomas!

Re: Import von PDF Dokument und Ränder setzen

#13379 On 22 Oktober, 2022 20:11 Federico said,

Hallo Thomas,
vielen Dank für Deine ausführliche Rückmeldung!!
Und ja, natürlich arbeite ich auf Mac :-)
Ich werde mich morgen gleich mal ans Versuchen machen und bin gespannt.
Beste Grüße
Federico