[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

[email protected]
Beiträge gesamt: 5

27. Jan 2021, 13:27
Beitrag # 1 von 8
Bewertung:
(8495 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich möchte eine Aufgabe, die mehrfach im Monat gemacht werden muss, automatisieren.

Ich kann grundlegend JavaScript und verstehe Code wenn ihn sehe. Ich tue mich nur schwer mit den Möglichkeiten und den Objekten in InDesign. Ich habe mir schon viele JavaScripte-Scripte mit Hilfe dieses Forums hier gebaut, aber nun stehe ich auf dem Schlauch.

Programm: InDesign CC 2021 16.01 x64 + EasyCatalog
OS: Windows 10
Sprache: JavaScript

Was soll gemacht werden:
Ich habe eine InDesign Datei in der viele einzelne Kurzgeschichten in EINEM Textenrahmen für ein Buch fertig umbrochen gesetzt sind.
Nun sollen diese Kurzgeschichten nachträglich in einzelne InDesign Dateien ausgegliedert werden.

Es gibt ein eindeutiges Absatzformat mit dem Namen "ueberschrift" (siehe Bild).
https://www.blue-panther-books.de/img/bild.jpg
Diese Kurzgeschichten beginnen immer auf der ungeraden Seite (in "ueberschrift" definiert).

Beispiel:
E:\buch\2590_gesamtdatei.indd

Es gibt einen Ordner mit InDesign Dateien für die späteren Einzelgeschichten der abhängig von dem Dateipfad wo die aktuelle Datei liegt zu referenzieren ist.
Diese Dateien soll selbst NICHT genutzt werden, es sind nur Dummys (aus meiner Datenbank erzeugt) damit aus dem JavaScript heraus der ein echter Name anhand der Endung "*_xx.indd" pro laufender Geschichte genutzt werden kann und die Nummer vorn im Datei Namen mit meiner Datenbank matched.

Beispiel:
E:\buch\2590_gesamtdatei.indd
E:\buch\einzel\3809_geschichte_01.indd
E:\buch\einzel\3810_geschichte_02.indd
E:\buch\einzel\3910_geschichte_03.indd

Meine Idee ist:
Das Script sucht nach der Anzahl der Überschriften mit dem Absatzformat "ueberschrift" und identifiziert so die einzelnen Geschichten.
Dann geht es in eine Schleife die folgendes macht:
Es geht in den Textrahmen und löscht den Text der nicht braucht wird, danach löscht es alle leeren Seiten dann sucht es sich den Namen der entsprechenden Einzelgeschichten Datei abhängig von der Endung "*_01.indd" heraus und "speichert die Datei unter".
Dann zwei Undos und es wird mit der zweiten Geschichte weiter gemacht.
Und so weiter ...
Dieses Vorgehen hätte den Vorteil, dass innerhalb des Textrahmens alle manuell für den Seitensatz geänderten Inhalte bleiben.

Wer kann mir da helfen?
Lg Matthias
X

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

Uwe Laubender
Beiträge gesamt: 5170

28. Jan 2021, 12:32
Beitrag # 2 von 8
Beitrag ID: #578498
Bewertung:
(8373 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,

hast Du das Aufteilen einer InDesign-Datei in mehrere Dateien mal mit einem Skript von Hans Häsler probiert?

DokumentAufsplitten_516d.js

Da gibt's u.a. folgende Option:

Das Trennkriterium wählen:
(x) Absatzformat (Kapitelanfang)

Das Skript findest Du hier bei HDS gehostet in dieser Liste:

https://www.hilfdirselbst.org/...mp;limit=&page=0
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#578473]

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

[email protected]
Beiträge gesamt: 5

28. Jan 2021, 12:40
Beitrag # 3 von 8
Beitrag ID: #578499
Bewertung:
(8362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für den Hinweis! Ich probiere das gleich mal aus!


als Antwort auf: [#578498]

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

[email protected]
Beiträge gesamt: 5

28. Jan 2021, 13:31
Beitrag # 4 von 8
Beitrag ID: #578502
Bewertung:
(8332 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Leider funktioniert das nicht. Es scheint für ein Rahmenintensives Layout gebaut zu sein. Und nicht für EIN Rahmen mit 20 verschiedenen Aufsplittungen.
Ich bekomme einfach nur zwei Dokumente und die helfen mir nicht weiter.
Aber trotzdem danke für den Hinweis.


als Antwort auf: [#578498]

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

[email protected]
Beiträge gesamt: 5

28. Jan 2021, 14:45
Beitrag # 5 von 8
Beitrag ID: #578507
Bewertung:
(8302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für die Ideen.
Ich habe hier im Forum noch etwas rum gesucht und nun eine erste Version gebaut, mit der ich eine Geschichte selektieren und löschen kann.
Auf diesem Grundgerüst werde ich also meine Hauptdatei x-mal kopieren und dann eine Datei nach der anderen öffnen und die anderen Geschichten rauslöschen.

Hier der Startcode mit dem ich den Rest weiterbauen werde:

Code
// Ideen von: 
// https://www.hilfdirselbst.ch/foren/Absatz_mit_bestimmtem_Absatzformat_suchen__markieren_und_ausschneiden_P462762.html

// Grep zurücksetzen
app.findGrepPreferences = null;

// Setzen der Sucheinstellungen = Suche nach Überschriften
app.findGrepPreferences.appliedParagraphStyle = app.documents.firstItem().paragraphStyles.itemByName( 'ueberschrift' );

// Suchen und Ergebnisse in Variable speichern
var result = app.documents.firstItem().findGrep();

// anzahl der Überschriften = Kurzgeschichten herausfinden und anzeigen
var anzahl = result.length;
alert (anzahl);

// Mit dem Ergebnis was machen
//for (var i = result.length-1; i >= 0; i--)
// result[i].move( LocationOptions.AFTER, result[i].parentStory.insertionPoints.lastItem() );

if (result.length > 0)
{
// Erste Geschichte raussuchen
var a_text = result[0].parentStory.characters.itemByRange(result[0].characters.firstItem().index, result[1].characters.firstItem().index -1);

// text löschen
a_text.remove();
}

// Zurücksetzen der Sucheinstellungen
app.findGrepPreferences = null;



als Antwort auf: [#578473]

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

WernerPerplies
Beiträge gesamt: 2683

28. Jan 2021, 18:23
Beitrag # 6 von 8
Beitrag ID: #578519
Bewertung:
(8221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Matthias,

mein Vorschlag zum Aufteilen des Textes in einem Rahmen.
Hier werden alle Geschichten nacheinander selektiert und können kopiert werden.


Code
// Voraussetzung: Rahmen selektiert 
main();

/*Void*/function main(){
try
{
var /*TextFrame*/ tF = app.selection[0],
/*Story*/story = tF.parentStory,
/*Array*/paragraphs = tF.parentStory.paragraphs.everyItem().getElements(),
/*ParagraphStyle*/titleStyle = app.activeDocument.paragraphStyles.itemByName("Überschrift"),
/*Int*/numberOfParagraphs = paragraphs.length,
/*Int*/counter = -1,
/*Paragraph*/p = null;

if (typeof(tF) === "undefined")
return; // no frame selected!

nextStory:
for (var i = 0; i < numberOfParagraphs; i++){
p = paragraphs[i];
if (p. appliedParagraphStyle.id === titleStyle.id){
paragraphs[(++counter)] = {title: p, text: []}; // reuse Array with new content
for (++i; i < numberOfParagraphs; i++){
p = paragraphs[i];
if (p. appliedParagraphStyle.id === titleStyle.id){
--i; // decrement pointer
continue nextStory; // loop from next title
}
paragraphs[counter].text.push(paragraphs[i]);
}
}
}
// resize Array
paragraphs.length = ++counter;
// handle every shortStory
for (var i = 0; i < counter; i++){
paragraphs[i].title.select();
for (var ii = 0; ii < paragraphs[i].text.length; ii++){
paragraphs[i].text[ii].select(SelectionOptions.ADD_TO);
}
// here is one short story selected.
$.bp(true);
// move selection to new file
}
}
catch (error) // Verarbeitung einer Sammlung von InDesign-Dateien
{
// wpsHandleError(error, $.stack, "findGrepWithAppliedStyle");
alert(error.message + "\n" + error.line.toString());
}
return null
}


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#578507]
(Dieser Beitrag wurde von WernerPerplies am 28. Jan 2021, 18:30 geändert)

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

[email protected]
Beiträge gesamt: 5

3. Feb 2021, 08:06
Beitrag # 7 von 8
Beitrag ID: #578575
Bewertung:
(7488 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank ich werde das in den nächsten Tagen prüfen und berichten!


als Antwort auf: [#578519]

InDesign Datei mit Kurzgeschichten in einem Rahmen auf mehrere Dateien aufteilen

WernerPerplies
Beiträge gesamt: 2683

3. Feb 2021, 08:23
Beitrag # 8 von 8
Beitrag ID: #578576
Bewertung:
(7477 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok,
ich dachte schon, die Sache hätte sich erledigt.

Hier noch eine etwas einfachere Version - Verzicht auf die innere Schleife im zweiten Teil:
Code
// Voraussetzung: Rahmen selektiert 
main();

/*Void*/function main(){
try
{
var /*TextFrame*/ tF = app.selection[0],
/*Story*/story = tF.parentStory,
/*Array*/paragraphs = tF.parentStory.paragraphs.everyItem().getElements(),
/*ParagraphStyle*/titleStyle = app.activeDocument.paragraphStyles.itemByName("Überschrift"),
/*Int*/numberOfParagraphs = paragraphs.length,
/*Int*/counter = -1,
/*Paragraph*/p = null;

if (typeof(tF) === "undefined")
return; // no frame selected!

nextStory:
for (var i = 0; i < numberOfParagraphs; i++){
p = paragraphs[i];
if (p. appliedParagraphStyle.id === titleStyle.id){
paragraphs[(++counter)] = {title: p, text: []}; // reuse Array with new content
for (++i; i < numberOfParagraphs; i++){
p = paragraphs[i];
if (p. appliedParagraphStyle.id === titleStyle.id){
--i; // decrement pointer
continue nextStory; // loop from next title
}
paragraphs[counter].text.push(paragraphs[i]);
}
}
}
// resize Array
paragraphs.length = ++counter;
// handle every shortStory
for (var i = 0; i < counter; i++){
paragraphs[i].title.select();
paragraphs[i].text[paragraphs[i].text.length-1].select(SelectionOptions.ADD_TO);
// here is one short story selected.
$.bp(true); // Breakpoint, hold after selecting each shortStory
// move selection to new file
}
}
catch (error) // Verarbeitung einer Sammlung von InDesign-Dateien
{
alert(error.message + "\n" + error.line.toString());
}
return null
}


Grundsätzlich könnte man naürlich auch noch den ersten und zweiten Teil des Skriptes zusammenfassen, darauf habe ich bewusst verzichtet, weil mir die Sache so übersichtlicher erscheint.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign Alle neuen Skripte mit
neu: WpsProjectHandler 31.05.2020, Version 3.XX, neue Funktionen.
MultiSave ist Bestandteil meines WpsProjecthandlers
neu: WpsEanInTables, WpsSaRInHyperlinks
Kundenstimmen


als Antwort auf: [#578575]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/