[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

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

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

16. Jan 2012, 15:12
Beitrag # 1 von 24
Bewertung:
(11117 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen,

hoffentlich kann mir einer von euch weiterhelfen, denn als script-anfänger stehe ich total auf dem schlauch. Ich stehe vor folgendem Problem:

Ich möchte eine Datei mit z.b. 3 Seiten als einzelne jpg-dateien exportieren. Die Seiten haben unterschiedliche Abmessungen und die zu exportierenden Dateinamen sollen direkt in InDesign angegeben werden.

Ich kann jeder Seite ein eigenes Lesezeichen in Indesign cs5 zuteilen die dann z.b. so heissen wie die spätere zu exportierende Datei, hier ein Beispiel:

Seite 1 = Internetbutton_100x100px
Seite 2 = Internetbutton_200x200px
Seite 3 = Internetbutton_300x300px

Wenn ich die als interaktives pdf exportiere, kann ich die seiten später in acrobat nach lesezeichen teilen. funktioniert auch. erzeugt mir allerdings ein pdf und ich möchte mir diesen zwischenschritt per scrit sparen.

ist es daher möglich, in einem script direkt den dateinamen druch das in indesign zugeteile lesezeichen/bookmark zu erzeugen?

so sieht das script bis jetzt aus:

Zitat if (app.documents.length != 0) {
var myDoc = app.activeDocument;
MakeJPEGfile();
}
else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function MakeJPEGfile() {
for(var myCounter = 0; myCounter < myDoc.pages.length; myCounter++) {
if (myDoc.pages.item(myCounter).appliedSection.name != "") {
myDoc.pages.item(myCounter).appliedSection.name = "";
}
var myPageName = ?bookmark.name?;
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum; // low medium high maximum
app.jpegExportPreferences.exportResolution = 72;
app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;
app.jpegExportPreferences.pageString = myPageName;

var myFilePath = "~/Desktop/" + myPageName + ".jpg";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.jpg, myFile, false);
}
}


an der stelle wo "myPageName" definiert wird, müsste nun irgendein befehl stehen, dass er sich den namen des indesign-lesezeichens rauszieht. geht das?

vielen dank im vorraus!!!
X

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

16. Jan 2012, 18:24
Beitrag # 2 von 24
Beitrag ID: #487912
Bewertung:
(11082 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich würde die Schleife durch die Bookmarks laufen lassen und dort mit _d.bookmarks[n].destination.destinationPage.name die jeweilige Seite abfragen und exportieren (_d = document).

Schönen Abend,
J.


als Antwort auf: [#487903]
(Dieser Beitrag wurde von Gerald Singelmann am 1. Jun 2015, 13:17 geändert)

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

16. Jan 2012, 18:53
Beitrag # 3 von 24
Beitrag ID: #487915
Bewertung:
(11069 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die Antwort,
leider hilft mir die aufgrund meines fehlden Script-Wissens nicht weiter. Da ich nicht genau weiss was ich damit nun machen soll :) Trotzdem danke für deine Hilfsbereitschaft! :)

Also ich bin nun soweit, dass die Namen der Indesign-Bookmarks im Dateinamen der exportierten Dateien ausgegeben werden.

Nun zwei neue Probleme:
Beim Exportieren habe ich (in meinem 3-seitgen Testdokument) immer nur Seite 3 (3 mal) und nicht Seite 1, 2 und 3 (jeweils 1 mal).

Und im Dateinamen der exportierten Dateien steht nun noch [object Document] davor. das soll irgendwie weg


Hat da jemand eine Lösung und könnte mir die falschen Zeilen abändern? Das wäre echt super!!!! Ich komm da alleine irgendwie nicht ans Ziel, wie es scheint.

Code
if (app.documents.length != 0) { 
var myDoc = app.activeDocument;
MakeJPEGfile();
}

else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function MakeJPEGfile() {
for(var myCounter = 0; myCounter < myDoc.pages.length; myCounter++) {
if (myDoc.pages.item(myCounter).appliedSection.name != "") {
myDoc.pages.item(myCounter).appliedSection.name = "";
}
var myPageName = myDoc.bookmarks.item(myCounter).name;
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum; // low medium high maximum
app.jpegExportPreferences.exportResolution = 72;
app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;

var myFilePath = "~/Desktop/" + myDoc + myPageName + ".jpg";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.jpg, myFile, false);
}
alert("Fertig!");
}


Ich hoffe einer von euch Scripting-Cracks kann mir da auf die Sprünge helfen :)


als Antwort auf: [#487912]
(Dieser Beitrag wurde von Kodi_79 am 16. Jan 2012, 18:54 geändert)

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

16. Jan 2012, 19:14
Beitrag # 4 von 24
Beitrag ID: #487917
Bewertung:
(11059 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kodi,

versuche es mal hiermit:
Code
if (app.documents.length != 0) {  
var myDoc = app.activeDocument;
MakeJPEGfile();
}

else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function MakeJPEGfile()
{
for(var myCounter = 0; myCounter < myDoc.bookmarks.length; myCounter++)
{
_p = myDoc.pages[myDoc.bookmarks[myCounter].destination.destinationPage.index];
var myPageName = myDoc.bookmarks[myCounter].name;
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum; // low medium high maximum
app.jpegExportPreferences.exportResolution = 72;
app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;
app.jpegExportPreferences.pageString = _p.name;

var myFilePath = "~/Desktop/"+ myPageName + ".jpg";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.jpg, myFile, false);
}
alert("Fertig!");
}



Ahoi,
Johannes


als Antwort auf: [#487915]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

17. Jan 2012, 10:09
Beitrag # 5 von 24
Beitrag ID: #487938
Bewertung:
(11011 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Johannes,

ja damit kann ich was anfangen, jetzt erzeugt er die Dateinamen korrekt! :)

Leider stehe ich immernoch vor dem Problem mit den Seiten. Nun erzeugt er mir 3 mal die erste Seite und nicht Seite 1,2 und 3 1 mal.

Vielleicht drücke ich mich auch schlecht aus:
Es gibt 3 Bookmarks in InDesign
Datei_100x100px
Datei_200x200px
Datei_300x300px

Das erste Bookmark zeigt auf Seite 1 (welche 100x100px groß ist), das zweite Bookmark zeigt auf Seite 2 und das dritte auf Seite 3. Später soll das Dokument noch mehrere Seiten bekommen, aber das ist oder sollte dem Script eigentlich egal sein.

Nun soll er mir die Seiten ausgeben.

Am Besten auch indem man am anfang eine Aufforderung für eine Ordnerwahl zum Abspeichern bekommt (promt ...) irgendwie, muss ich mir nochmal genau angucken.

Aber schonmal Danke für die Hilfe Johannes, ein Stück bin ich dank dir schon wieder weitergekommen :)

Vielleicht hast du auch für das jetztige Problem eine Lösung parrat? :)


als Antwort auf: [#487917]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

17. Jan 2012, 10:27
Beitrag # 6 von 24
Beitrag ID: #487940
Bewertung:
(11003 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin ?,
es ist schwer ohne die InDesign-Datei das nachzuvollziehen. In meinen Test war das anders.
Könntest Du mir die Datei bitte mailen? Wenn Sie zu groß ist bitte als IDML speichern, zippen und dann mailen.


als Antwort auf: [#487938]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

17. Jan 2012, 10:42
Beitrag # 7 von 24
Beitrag ID: #487945
Bewertung:
(10994 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Johannes,

hab dir die Daten als Zip geschickt. Danke schonmal!!!!!!! :)


als Antwort auf: [#487940]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

17. Jan 2012, 11:41
Beitrag # 8 von 24
Beitrag ID: #487952
Bewertung:
(10958 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

hier nun das Script mit den gewünschten Änderungen:

Code
if (app.documents.length != 0) {  
var myDoc = app.activeDocument;
var _folder = Folder.selectDialog ("Bitte Export-Ordner wählen");
if(_folder != null)
{ MakeJPEGfile(_folder.absoluteURI); }
}

else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function MakeJPEGfile(_folderPath)
{
for(var myCounter = 0; myCounter < myDoc.bookmarks.length; myCounter++)
{
var myPageName = myDoc.bookmarks[myCounter].name;
app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.maximum; // low medium high maximum
app.jpegExportPreferences.exportResolution = 72;
app.jpegExportPreferences.jpegExportRange = ExportRangeOrAllPages.exportRange;
app.jpegExportPreferences.pageString = myDoc.bookmarks[myCounter].destination.destinationPage.name;

var myFilePath = _folderPath+"/"+ myPageName + ".jpg";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.jpg, myFile, false);
}
alert("Fertig: "+myCounter+" Lesezeichen verarbeitet!");
}



als Antwort auf: [#487945]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

17. Jan 2012, 11:58
Beitrag # 9 von 24
Beitrag ID: #487953
Bewertung:
(10948 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
YEAH! Johannes, du bist mein Held! :)

Ich danke dir vielmals für deine super Hilfe. Vielleicht bin ich in 20 Jahres Script-Technisch so weit, dass ich dir auch mal meine Hilfe anbieten kann. Denn man sieht sich ja immer 2mal im Leben und kann dann auch mal was zurückgeben :)

jetzt muss ich das teil nur irgendwie noch ein zweites mal bauen für pdf-export oder das mit in dieses einbauen, damit man beim starten die frage bekommt, jpg oder pdf exportieren XD

aber das versuch ich erstmal bevor ich dich damit wieder von deinen sachen abhalte, denke mal du hast selber noch genug zutun wenn man sowas drauf hat oder? :)

Dank dir nochmal und nen schönen Tag :)


als Antwort auf: [#487952]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

17. Jan 2012, 12:31
Beitrag # 10 von 24
Beitrag ID: #487955
Bewertung:
(10926 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Na, das wird schon, viel Erfolg und sonnigen Tag noch!
J.


als Antwort auf: [#487953]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

Kodi_79
Beiträge gesamt: 8

17. Jan 2012, 13:41
Beitrag # 11 von 24
Beitrag ID: #487962
Bewertung:
(10899 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, nun hab ich ein zweites Script, dass mir nun pdfs anstatt jpgs exportiert, auch eines meiner profile kann ich dafür nutzen.

was ich nun gern einbauen würde, ist ein dropdown-menü, welches mir meine pdf-presets ausließt und im dropdown menü die möglichkeit gibt eines dieser profile für den export zu nutzen.

das ist mein aktuelles script für pdf-export:

Code
if (app.documents.length != 0) {   

var myPresets = ["GTM_x3_2002_180dpi"];

var myDoc = app.activeDocument;
var _folder = Folder.selectDialog ("Bitte Export-Ordner wählen");
if(_folder != null)
{ MakeJPEGfile(_folder.absoluteURI); }
}

else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function myGetPDFPresets(){
var myPDFPresets = new Array;
for(var onePreset = 0; onePreset < app.pdfExportPresets.length; onePreset++){
myPDFPresets.push(app.pdfExportPresets.item(onePreset).name);
}
return myPDFPresets;
}

function MakeJPEGfile(_folderPath)
{
for(var myCounter = 0; myCounter < myDoc.bookmarks.length; myCounter++)
{

for (onePreset=0; onePreset < myPresets.length; onePreset++){


var myPageName = myDoc.bookmarks[myCounter].name;

app.pdfExportPreferences.pageRange = myDoc.bookmarks[myCounter].destination.destinationPage.name;

var myFilePath = _folderPath+"/"+ myPageName + ".pdf";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.pdfType, myFile, false, myPresets[onePreset]);
} }
alert("Fertig: "+myCounter+ " Dateien mit " +myPresets+" verarbeitet!");
}



nun müsste da irgendwie sowas rein, wie im script von Peter Kahrel:

Code
#target indesign; 

//~ try {export_to_pdf (app.books.item (get_book ()))}
//~ catch (e) {alert (e.message + "\r(line " + e.line + ")")};

var item = get_item ();
var params = get_params (item);
export_to_pdf (item, params)


function export_to_pdf (item, params)
{
var pdf_export_settings = app.pdfExportPreferences.properties;
app.pdfExportPreferences.viewPDF = params.view;
item.exportFile (ExportFormat.pdfType, File (params.name), false, app.pdfExportPresets.item (params.preset));
app.pdfExportPreferences.properties = pdf_export_settings;
}


function get_params (b)
{
var app_presets = app.pdfExportPresets.everyItem().name;
var w = new Window ("dialog", "Export PDF", undefined, {closeButton: false})
w.alignChildren = "right";
w.main = w.add ("panel");
w.main.alignChildren = "left";
w.main.name = w.main.add ("group");
w.main.name.prompt = w.main.name.add ("statictext", undefined, "PDF name:");
w.main.name.prompt.preferredSize.width = 60;
var pdf_name = w.main.name.add ("edittext", undefined, b.extractLabel ("name") || decodeURI(String(b.fullName)).replace (/\.ind[db]$/, ".pdf"));
pdf_name.characters = 40;
w.main.pr = w.main.add ("group");
w.main.pr.prompt = w.main.pr.add ("statictext", undefined, "Preset:");
w.main.pr.prompt.preferredSize.width = 60;
var presets = w.main.pr.add ("dropdownlist", undefined, app_presets);
presets.selection = presets.find (b.extractLabel ("preset")) || 0;
var view = w.main.add ("checkbox", undefined, "\u00A0View PDF after export");
view.value = b.extractLabel ("view");
w.buttons = w.add ("group");
w.buttons.add ("button", undefined, "OK", {name: "ok"});
w.buttons.add ("button", undefined, "Cancel", {name: "cancel"});

w.layout.layout();
pdf_name.active = true;

if (w.show() == 1)
{
b.insertLabel ("preset", presets.selection.text);
b.insertLabel ("name", pdf_name.text);
b.insertLabel ("view", String (view.value));
w.close();
return {name: pdf_name.text, preset: presets.selection.text, view: view.value}
}
else
{w.close(); exit ()}
}


function get_item ()
{
if (app.documents.length > 0)
{
// If .fullName fails the documents has never been saved and we can't do anything with it.
try {app.documents[0].fullName; return app.documents[0]}
catch (_) {exit ()};
}
else
{
switch (app.books.length)
{
case 0: alert ("Please open a document or a book."); exit ();
case 1: return app.books[0];
default: return pick_book ();
}
}
}


function pick_book ()
{
var w = new Window ("dialog", "Select a book");
w.alignChildren = "right";
var g = w.add ("group");
var list = g.add ("listbox", undefined, app.books.everyItem().name);
list.minimumSize.width = 250;
list.selection = 0;
var b = w.add ("group");
b.add ("button", undefined, "OK", {name: "ok"})
b.add ("button", undefined, "Cancel", {name: "cancel"})
if (w.show () == 1)
return app.books.item (list.selection.text);
else
exit ();
}


ich bräuchte da auch nur das dropdown für die auswahl des pdf profils. kein previes häkchen oder dateinamen ja eh nicht, da der aus den bookmarks gezogen wird. nur hab ich keine ahnung an welcher stelle ich was kürzen kann und welche komponenten ich in mein script übernehmen muss.

Johannes? XD


als Antwort auf: [#487955]
(Dieser Beitrag wurde von Kodi_79 am 17. Jan 2012, 13:43 geändert)

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

17. Jan 2012, 14:54
Beitrag # 12 von 24
Beitrag ID: #487971
Bewertung:
(10880 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, (wäre angenehmer Dich mit einem Namen ansprechen zu können ;-)
zunächst habe ich den Namen der Funktion mal von MakeJPEGfile zu ExportPDFFile umbenannt, das vermeidet Missverständnisse beim Lesen des Scripts.
Ansonsten habe ich die zweite Schleife nicht verstanden:
Code
for (onePreset=0; onePreset < myPresets.length; onePreset++) 


Hier noch einmal das ganze mit Auswahl-Dialog der PDF-Settings:

Code
if (app.documents.length != 0) { 

var _selectedIndex = 0;
var _dialog = app.dialogs.add({name:"PDF-Export"});
with(_dialog.dialogColumns.add())
{
with (dialogRows.add())
{ staticTexts.add({staticLabel:'Bitte wählen Sie eine Einstellung aus:'}); }
with (dialogRows.add())
{
with(dialogColumns.add())
{
var _dialogDropdown = dropdowns.add({stringList: app.pdfExportPresets.everyItem().name, selectedIndex:_selectedIndex, minWidth:480});
}
}
}
var _result = _dialog.show();
if(_result == true)
{
var myDoc = app.activeDocument;
var _folder = Folder.selectDialog ("Bitte Export-Ordner wählen");
if(_folder != null)
{ ExportPDFFile(_folder.absoluteURI, _dialogDropdown.selectedIndex); }
}
else{ _dialog.destroy(); }
}

else{
alert("Bitte Dokument öffnen und erneut versuchen!");
}

function ExportPDFFile(_folderPath, _indexPDFSetting)
{
for(var myCounter = 0; myCounter < myDoc.bookmarks.length; myCounter++)
{
var myPageName = myDoc.bookmarks[myCounter].name;
app.pdfExportPreferences.pageRange = myDoc.bookmarks[myCounter].destination.destinationPage.name;

var myFilePath = _folderPath+"/"+ myPageName + ".pdf";
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.pdfType, myFile, false, app.pdfExportPresets[_indexPDFSetting]);
}
alert("Fertig: "+myCounter+ " Dateien mit " +app.pdfExportPresets[_indexPDFSetting].name+" verarbeitet!");
}


Viel Vergnügen damit,
Johannes.


als Antwort auf: [#487962]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

NEU!
Beiträge gesamt: 180

15. Mai 2015, 12:31
Beitrag # 13 von 24
Beitrag ID: #539660
Bewertung:
(9210 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin dazwischen,

ich bin gerade an einem ähnlichen Projekt, Export aller Seiten als JPG mit Übergabe von Dateinamen – abhänig der exportierten Seite.

Ich denke, ich könnte auf der Seite unsichtbaren Text mit Bookmark verstecken und dann das JPG-Script hier nutzen…

ABER:
Von JS-Sytax hab ich keinen Schimmer, deshalb wirft mich eine Fehlermeldung direkt aus der Bahn:
Code
"JS Fehler! 

Fehlernummer 55
Fehlerzeichenfolge: Objekt unterstützt Eigenschaft oder Methode destinationPage nicht

Engine: main
Datei:…
Zeile: 20 (app.jpegExportPreferences.pageString = myDoc.bookmarks[myCounter].destination.destinationPage.name;)
Quelle: app.jpegExportPreferences.pageString = myDoc.bookmarks[myCounter].destination.destinationPage.name;"



Da der Thread-Ersteller hier begeistert war, erwarte ich dass der Fehler bei mir liegt, bzw. im alten (CS5.5) InD…
Da es aber für meine Kollegen auf der Windows-Schiene sein soll, kann ich nicht auf das mir besser lesbare AS ausweiche…

Wer kann mir helfen?


als Antwort auf: [#487971]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

J.Puff
Beiträge gesamt: 238

15. Mai 2015, 14:13
Beitrag # 14 von 24
Beitrag ID: #539663
Bewertung:
(9155 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
aufgrund des Code-Schnippsel ist die Frage schwer zu beantworten.
Magst Du mal den ganzen (relevanten Teil) des Scriptes posten? Eventuell auch ein kleines Textdokument?

Beste Grüße
Johannes.


als Antwort auf: [#539660]

InDesign Bookmark-Bezeichnung als Dateiname für JPG-Export?

NEU!
Beiträge gesamt: 180

15. Mai 2015, 14:21
Beitrag # 15 von 24
Beitrag ID: #539665
Bewertung:
(9154 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Prinzipiell habe ich das Script aus Ihrem Beitrag (Beitrag ID: #487952) gecopy/pastet, bevor der Ersteller mit seiner PDF-Version daher kam.

Das Script läuft bis zur Auswahl des Ausgabepfads, danach kommt der Error (ohne Export eines JPGs)

Meine Testdatei habe ich garnicht gespeichert…
Habe das einfachste Szenario gewählt: 3 Seiten, jeweils mit Textrahmen, mit einem unterschiedlichem Bookmark.
Erwartet habe ich 3 JPGs mit den jeweiligen Bookmark als Dateiname…


als Antwort auf: [#539663]
X