Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Datenzusammenführung mit individuellen Dateinamen

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

Datenzusammenführung mit individuellen Dateinamen

Morris10201
Beiträge gesamt: 3

23. Sep 2016, 15:32
Beitrag # 1 von 10
Bewertung:
(17260 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey!

Derzeit arbeite ich in InDesign CS6 (Windows 10) und versuche möglichst alles mittels Datenzusammenführung und Scripts zu beschleunigen.

Traumhaft wäre es, wenn mir jemand helfen könnte bei folgender Aufgabe:

Meine Daten ziehe ich aus einer Excel heraus und füge sie in einer Broschürenvorlage ein (Datenzusammenführung). Anstatt alles in einer langen Datei zu haben, kriege ich es auch hin jede Broschüre mit allen zugehörigen Seiten in einer einzelnen Datei zu öffnen (Maximale Datensatzzahl pro Dokument = 1).
Diese Dateien kann ich auch recht einfach alle mit dem Script "ExportAndSaveOpenDocsAsPDF" aus diesem Beitrag http://www.hilfdirselbst.ch/...i?post=314531#314531 zeitsparend speichern und exportieren.
Jede Broschüre enthält nun personifizierte Kundendaten und soll per Mail versendt werden.
Was noch fehlt ist ein individueller ansprechender Dateiname. Diesen würde ich auch gerne mit aus besagter Excel herausziehen und direkt bei der Datenzusammenführung erhalten.

Übersehe ich hier eine offensichtliche Funktion oder google nach den falschen Schlagworten? Könnt ihr mir zeigen/erklären/anreißen wie ihr soetwas umsetzen würdet?


Viele Grüße
Morris


P.S:
Bisher versuche ich mich daran es mit "Script Labels/Scriptetiketten" zu erreichen, bin allerdings noch nicht auf Erfolgskurs.
X

Datenzusammenführung mit individuellen Dateinamen

Morris10201
Beiträge gesamt: 3

23. Sep 2016, 16:40
Beitrag # 2 von 10
Beitrag ID: #552788
Bewertung:
(17225 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Einen kleinen Schritt zur Lösung konnte ich schaffen. In diesem Beitrag http://www.hilfdirselbst.ch/...FChrung_P513807.html löst das zweite Skript fast komplett meine Aufgabe.

Die Excel exportiere ich nun sowohl als txt- wie auch csv-Datei. Die txt-Datei binde ich direkt ein um das Dokument mit den <<Platzhaltern>> ausstatten zu können. Anschließend führe ich das Skript aus, es ließt aus der ersten Spalte der csv-Datei den gewünschten Dateinamen ein und gibt mir im Zielordner jedes Dokument als indd-Datei korrekt benannt aus.

Mein nächstes Ziel, in das Skript noch den PDF-Export aus dem Skript in meiner ursprünglichen Frage integrieren und alles wäre geritzt.

Viele Grüße
Morris


als Antwort auf: [#552784]

Datenzusammenführung mit individuellen Dateinamen

Morris10201
Beiträge gesamt: 3

23. Sep 2016, 17:49
Beitrag # 3 von 10
Beitrag ID: #552792
Bewertung:
(17198 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Ziel ist erreicht!
Beide Skripte konnte ich zusammenpuzzeln und sie funktionieren auch gemeinsam bei mir.

Ihr braucht nur eure Daten in einer csv-Datei, in der alles mit einem ";" getrennt ist. In der ersten Zeile sollte euer Dateiname vermerkt sein.

Nun bereitet ihr euer Dokument für die Datenverarbeitung vor und führt das Skript aus. Im Zielordner erhaltet ihr dann für jeden Datensatz eine eigene indd- und PDF-Datei.

Meinen Vorstellungen entspricht es und vielleicht kann ja auch der ein oder andere von euch etwas damit anfangen.

Viele Grüße
Morris

P.S:
Der Quellcode entstammt nicht meiner Feder sondern ist aus den oben erwähnten anderen Forenbeiträgen nur von mir neu zusammengestellt worden.

Code
var fileNameColumn = 1;//Bitte hier die Spaltennummer eintragen, in der in der CSV der neue Dateiname hinterlegt ist. 
var csvSeparator = ';'//Bitte hier den Separator der CSV-Datei eintragen

// Dialogboxen für Speicherort und Herkunft der csv-Datei
var destFolderPath = Folder.selectDialog('Zielordner für alle Dateien wählen').absoluteURI + '/' ;
var csvFile = File.openDialog('csv-Datei mit den Daten wählen');

// Vorgabewerte
defaultPdfProfile = 1; // PDF-Vorgabe (Name oder Nummer)
defaultSaveToDesktop = false; // PDF immer auf Schreibtisch exportieren (nur Mac)
defaultCloseAfterExporting = false; // Dokumente nach dem Exportieren schließen
defaultSuffix = ""; // Text, welcher zum Dateinamen hinzugefügt werden soll (### = PDF-Vorgabename)
$.localize = true;

// Sprachstrings
msgCancel = {de:"Abbrechen", en:"Cancel" };
msgOk = {de:"Exportieren", en:"export"};
msgNoOpenDocs = {en:"No open documents!", de: "Es gibt keine offenen Dokumente!"};
msgTitle = {en:"Save and Export all open documents as PDF", de:"Geöffnete Dokumente sichern und als PDF exportieren"};
msgIntro = {en:"PDF export profile:", de:"PDF-Export-Vorgabe:"};
msgNoPreset = {en:"No export preset selected!", de:"Keine PDF-Export-Vorgabe ausgewählt"};
msgSuffix = {en:"filename suffix:", de:"Zum Dateinamen hinzufügen:" } ;
msgSuffixVar = {en:"%PROFILE%", de:"%EXPORTVORGABE%"};
msgSaveToDesktop = {en:"Export to desktop", de:"Auf Schreibtisch exportieren"};
msgCloseDocs = {en:"Close documents after exporting", de:"Dokumente nach dem Exportieren schließen"};
msgFinished = {en:"%1 of %2 documents have been exported successfully.", de:"%1 von %2 Dokumenten wurden erfolgreich exportiert."};
msgFinishedError = {en:"%1 of %2 documents have been exported.\nFollowing documents couldn't be exported:", de:"%1 von %2 Dokumenten wurden exportiert.\nDie folgenden Dokumente konnten nicht exportiert werden:"};
msgExportError = {en:" (export error)", de:" (Fehler beim Exportieren)"};
msgSaveError = {en:" (save error)", de:" (Fehler beim Sichern)"};

// Wenn kein Dokument offen, dann Beenden
if (app.documents.length<1) { alert(msgNoOpenDocs); exit(); }

// Dialogfenster erstellen
var dlg = new Window('dialog', localize(msgTitle) );

dlg.profile = dlg.add('group', undefined, {orientation:'row'});
dlg.profile.add('statictext', undefined, localize(msgIntro) );
dlg.theList = dlg.profile.add('dropdownlist', undefined);
for(var onePreset = 0; onePreset < app.pdfExportPresets.length; onePreset++){
dlg.theList.add('item',app.pdfExportPresets.item(onePreset).name,onePreset);
if (app.pdfExportPresets.item(onePreset).name == defaultPdfProfile) {
dlg.theList.selection = onePreset;
} else if (onePreset == defaultPdfProfile-1) {
dlg.theList.selection = onePreset;
}
}
if (!dlg.theList.selection) { dlg.theList.selection = 0; }

dlg.edit = dlg.add('group', undefined, {orientation:'row'} );
dlg.edit.add('statictext', undefined, localize(msgSuffix) );
dlg.suffix = dlg.edit.add('edittext', undefined, defaultSuffix, {name:'suffix'} );
dlg.suffix.characters = 20;
dlg.options = dlg.add('group', undefined, {orientation:'row'} );
dlg.savetodesktop = dlg.options.add('checkbox', undefined, localize(msgSaveToDesktop));
dlg.savetodesktop.value = defaultSaveToDesktop;
if (!($.os.indexOf("Mac")>-1)) {
dlg.savetodesktop.enabled = false;
dlg.savetodesktop.value = false;
}
dlg.closedocs = dlg.options.add('checkbox', undefined, localize(msgCloseDocs));
dlg.closedocs.value = defaultCloseAfterExporting;
dlg.buttons = dlg.add('group',undefined,{orientation:'row'});
dlg.buttons.add('button', undefined, localize(msgCancel), {name:'cancel'});
dlg.buttons.add('button', undefined, localize(msgOk), {name:'ok'} );

// Welcher Knopf wurde gedrückt
result = dlg.show();

// Wenn nicht auf Exportieren geklickt wurde, Skript beenden
if (result != 1) { exit(); }

suffix = dlg.suffix.text;
myPreset = dlg.theList.selection;

// Keine PDF-Vorgabe ausgewählt
if (!myPreset) { alert(msgNoPreset); exit();}

// Platzhalter ### im Suffix durch PDF-Vorgabe ersetzen
suffix = suffix.replace ("###", myCleanFileName(myPreset));

// Initialisierung
var myDocs = app.documents;
var maxDocs = myDocs.length;
var exportedDocs = 0;
var errors = "";
var myCounter = 0;

// Fenster mit Fortschrittbalken anzeigen
var progress = new Window('palette', localize(msgTitle) );
progress.bar = progress.add('progressbar');
progress.file = progress.add('statictext');
progress.file.size = [500,15];
progress.bar.size = [500,15];
progress.bar.maxvalue = maxDocs*2;
progress.show();

//csv einlesen
var fileNames = new Array();
csvFile.open('r');
while (!csvFile.eof) {
fileNames.push(csvFile.readln().split(csvSeparator)[fileNameColumn-1]);
}
csvFile.close();


var currDoc = app.activeDocument;//vorbereitetes Dokument
currDoc.dataMergeOptions.createNewDocument = true;

var maxRange = currDoc.dataMergeProperties.dataMergePreferences.recordRange.split('-')[1];//Anzahl der Datensätze in der CSV
//schleife durch die Datensätze
for(var i = 0; i < maxRange; i++)
{
with(currDoc.dataMergeProperties.dataMergePreferences)
{
recordSelection = RecordSelection.ONE_RECORD;
recordNumber = i+1;
}

currDoc.dataMergeProperties.mergeRecords();
app.activeDocument.save(File(destFolderPath +fileNames[i+1] + '.indd'));
// Alle offenen Dokumente verarbeiten
for( oneDoc = 0 ; oneDoc < myDocs.length ; oneDoc++ ){
myCounter++;
myFile = myDocs[oneDoc];
progress.file.text = myCounter+"/"+maxDocs+": "+myFile.name;
progress.bar.value= myCounter*2-1;
myFile.save();
progress.bar.value= myCounter*2-0.01;
if (myFile.saved) {
// Entscheiden, ob auf Schreibtisch oder im Dokumentordner exportiert wird
if (dlg.savetodesktop.value) {
var path = '~/Desktop';
} else {
var path = myFile.filePath;
}
// Dateiname setzen
var pdfFile = new File( path +'/' + cutFileName(myFile.name ) + suffix + '.pdf' )
try{
// PDF exportieren
myFile.exportFile(ExportFormat.pdfType, pdfFile, false, myPreset.toString() );
exportedDocs++;
}
catch(e){
errors = errors + "\n" + myFile.name + localize(msgExportError);
};
} else {
errors = errors + "\n" + myFile.name + localize(msgSaveError);
}

if (dlg.closedocs.value) { myFile.close(); oneDoc--;}
}
progress.bar.value= maxDocs*2;
app.activeDocument.close();
}



if (errors == "") {
alert(localize(msgFinished,exportedDocs,maxDocs));
} else {
alert(localize(msgFinishedError,exportedDocs,maxDocs)+errors);
}
exit();

// Funktion zum Abtrennen der Dateiendung
function cutFileName (oneFile) {
return oneFile.toString().substring (0, oneFile.length-5)
}


// Funktion zum Ersetzen von (hinsichtlich des Dateisystems) problematischen
// Zeichen im Namen eines Vorgabesets (Slash, Backslash, Doppelpunkt)
function myCleanFileName(oneFilename) {
var oneFilename = String(oneFilename.toString().split('/').join('_').split('\\').join('_').split(':').join('¯'));
return oneFilename;
}



als Antwort auf: [#552784]

Datenzusammenführung mit individuellen Dateinamen

Hans Haesler
  
Beiträge gesamt: 5826

24. Sep 2016, 11:27
Beitrag # 4 von 10
Beitrag ID: #552798
Bewertung:
(16813 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Morris,

etwas spät: Herzlich willkommen in der Skriptwerkstatt auf HDS! :-)

Super, wie Du Dir selber geholfen (getreu dem Motto von HDS) und dass Du das Ergebnis allen zur Verfügung gestellt hast.

Gruss, Hans


als Antwort auf: [#552792]

Datenzusammenführung mit individuellen Dateinamen

kruicidal
Beiträge gesamt: 46

22. Aug 2017, 12:53
Beitrag # 5 von 10
Beitrag ID: #559162
Bewertung:
(15464 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Morris,
auch ich hab zu danken, das skript ist genau das was ich gesucht habe.
Ich habe nur ein Problem, und zwar exportiert Indesign bei mir immer nur 3 Dokumente, obwohl ich mehrere Datensätze angelegt habe. Ich kann leider keinen Fehler finden, wenn ich die Datenzusammenführung ohne das Skript laufen lasse, dann erstellt er mir alle Dateien ohne Problem. Hattest du etwas Ähnliches?
Danke schonmal und viele Grüße


als Antwort auf: [#552792]

Datenzusammenführung mit individuellen Dateinamen

kruicidal
Beiträge gesamt: 46

22. Aug 2017, 13:40
Beitrag # 6 von 10
Beitrag ID: #559164
Bewertung:
(15454 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, Problem auch gelöst.
Unter dem Punkt "Zusammengeführtes Dokument erstellen" stand in dem ausgegrauten Teil "Bereich" der Wert 3. Ich hab diesen Bereich angewählt, den Wert der maximalen Datensätze eingefügt, wieder auf "Einzelner Datensatz" (so dass "Bereich" wieder ausgraut) und einen Test-Export gemacht. Danach funktionierte es einwandfrei.
Anscheinend muss man immer darauf achten dass in dem ausgegrauten Bereich kein kleinerer Wert steht, als die maximale Anzahl an Datensätzen.
Grüße


als Antwort auf: [#559162]

Datenzusammenführung mit individuellen Dateinamen

chewy
Beiträge gesamt: 156

4. Jan 2019, 15:17
Beitrag # 7 von 10
Beitrag ID: #568299
Bewertung:
(12548 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wahnsinn, wieder einmal rettet das HDS-Forum den Tag! Funktioniert tadellos, vielen Dank.


als Antwort auf: [#552784]

Datenzusammenführung mit individuellen Dateinamen

kruicidal
Beiträge gesamt: 46

31. Jan 2019, 10:20
Beitrag # 8 von 10
Beitrag ID: #568758
Bewertung:
(12052 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich nutze das Script schon recht lange und bin nach wie vor begeistert.

Nach dem Update auf Indesign CC2019 hat sich eine Kleinigkeit geändert, und zwar erscheint bei jeder neuen gespeicherten Datei beim Schließen nun das Dialogfeld "Möchten Sie die Änderungen an dem Dokument vor dem Schließen speichern?" Hat jemand eine Idee wie ich dieses unterdrücken kann, bzw. das Dialogfeld standardmäßig mit ja beantwortet wird.

Leider beherrsche ich kein Javascript ;).

Danke, VG Tim


als Antwort auf: [#568299]

Datenzusammenführung mit individuellen Dateinamen

olaf_ntm
Beiträge gesamt: 1

28. Nov 2019, 12:42
Beitrag # 9 von 10
Beitrag ID: #573091
Bewertung:
(9402 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tim,

auch deine Frage ist schon etwas älter und ich kann sie dir nur mit einem anderen Script beantworten, dass ich gefunden habe. Auf der Seite colecandoo.com ist Colin Flashman das Thema auch angegangen. Er hat ein Script geschrieben, dass zwar .innd und .pdf nicht in einem Schritt ausgibt, man hat hier die Wahl zwischen beiden Dateiformaten. Aber die Datei-Bennenung erfolgt auch aus der .csv-/.txt-Datei, die für die Datenzusammenführung genutzt wird. Das ist auch recht komfortabel gestaltet.
Hier der Link zur Beschreibung des Scripts und hier der dropbox-Link zum Download
Grüße, Olaf


als Antwort auf: [#568758]

Datenzusammenführung mit individuellen Dateinamen

kruicidal
Beiträge gesamt: 46

13. Dez 2019, 11:31
Beitrag # 10 von 10
Beitrag ID: #573271
Bewertung:
(8940 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Olaf,
super, ich werde mir das die Tage nochmal ansehen. Dann können wir endlich die alte Indd-Version weghauen ;).
Vielen Dank.


als Antwort auf: [#573091]
X