InDesign Scripting

Gleichzeitig INDD und IDML speichern

20.12.2018

Ein HDS-Leser hat ein Script gefunden, das beim Schließen einer Datei immer eine IDML neben dem Original anlegt.

Das ist ganz praktisch, aber „immer“?

Als alternativen Ansatz habe ich ein Script geschrieben, das nur dann eine IDML anlegt, wenn das Script explizit aufgerufen wird. Vorzugsweise über ein Tastaturkürzel.

Das Script liegt hier zum Download oder hier zum Durchlesen:

if ( app.documents.length ) main();

function main() {
	var doc = app.activeDocument;
	var file;
	if ( ! doc.saved ) {
		var last_path = app.extractLabel( "gs_last_save_path" );
		if ( ! last_path ) last_path = Folder.desktop.fullName;
		file = new File( last_path + "/" + doc.name.replace(/\.....?$/, "") + ".indd" );
		file = file.saveDlg( "Wo soll die InDesign Datei gespeichert werden?" );
		if ( file == null ) return null;
		doc.save( file );
	} else {
		file = doc.fullName;
		doc.save();
	}
	var idml = new File( file.parent.fullName + "/" + doc.name.replace(/\.indd$/i, "") + ".idml" );
	doc.exportFile( ExportFormat.INDESIGN_MARKUP, idml );
}