[GastForen Programme Print/Bildbearbeitung Adobe InDesign Verpacken per Skript

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

Verpacken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 14:58
Beitrag # 1 von 11
Bewertung:
(1794920 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

bin immer noch gnadenloser Anfänger im Skripten und schlage mich mit folgendem Problem:

Beim Verpacken per Skript legt mir Indesign keinen Ordner für jede Datei an, wie es das normalerweise tut.
Wie kann ich dem Skript mitteilen, dass der Ordner gleich Filename (ohne das übliche "Ordner") sein soll.

Für Hilfe bedankt sich
Holger

(Dieser Beitrag wurde von Krings am 9. Feb 2009, 15:00 geändert)
X

Verpacken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 15:40
Beitrag # 2 von 11
Beitrag ID: #384740
Bewertung:
(1794898 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Holger,

das Skript fontsPackage.jsx kopiert die im Dokument verwendeten Schriften mit Hilfe des package()-Befehls in ein neues Unterverzeichnis.

Dort kannst Du Dir die Syntax genauer anschauen.

Wie erzeugst Du einen Ordner mit dem Namen der Datei (ohne die Endung '.indd')?

Code
// fullName = Name von Pfad und Datei des aktiven Dokuments 
var myDocFullName = app.activeDocument.fullName;

// Ordnername = Dateiname ohne '.indd'
var myFolderName = String(myDocFullName).replace(/\.indd/,'');

// Ordnerobjekt initialisieren
var f = new Folder (myFolderName);

// Ordner anlegen
f.create();



> dass der Ordner gleich Filename (ohne das übliche "Ordner")

Das habe ich nicht verstanden.
Was meinst Du damit?


als Antwort auf: [#384736]
(Dieser Beitrag wurde von Martin Fischer am 9. Feb 2009, 15:41 geändert)

Verpacken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 15:57
Beitrag # 3 von 11
Beitrag ID: #384745
Bewertung:
(1794887 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nun das "übliche" ORDNER hängt InDesign immer beim Verpacken (ohne Skript) an.
Aber das hast du ja schon gelöst, denke ich.

Bis jetzt klappt alles, aber welches Ziel gebe ich dem Befehl packageForPrint.

Muss ich nicht aus dem String ein Folder-Objekt machen?
Wenn Ja, wie?

Problem gelöst: Ziel ist f

Holger


als Antwort auf: [#384740]
(Dieser Beitrag wurde von Krings am 9. Feb 2009, 16:01 geändert)

Verpacken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 16:07
Beitrag # 4 von 11
Beitrag ID: #384748
Bewertung:
(1794881 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Problem gelöst: Ziel ist f

Ja, ein Folder-Objekt.

Zeigst Du uns Deinen Code?
Wenn er funktioniert und Du mit einer Veröffentlichung einverstanden bist, findet er einen Platz im Skriptarchiv. Dein Name wäre dann fest verknüpft mit dem DOCs.packageForPrint().


als Antwort auf: [#384745]

Verpacken per Skript

Krings
Beiträge gesamt: 57

9. Feb 2009, 16:26
Beitrag # 5 von 11
Beitrag ID: #384749
Bewertung:
(1794869 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sehr gern,

muss aber noch anmerken, dass der Code aus Teilen anderer Codes besteht, die nicht auf "meinem Mist" gewachsen sind.

Außerdem besteht er letztendlich aus den Teilen:

1. Alle InDesign-Dateien eines Ordners (incl. UnterOrdner) öffnen.
2. Backup-Sammlung in Unterordner desselben Ordners schreiben.
3. Alle Dateien ohne Speichern schließen.

Hier der Code:


Code
//  Backup_Verpacken 
//
// Teil 1: Öffnen
//
fileType = "*.indd";
var topFolder = Folder.selectDialog ("Wähle einen Ordner aus");
inputFileType = prompt("input file type like '*.indd'", fileType);
if(inputFileType != null) { fileType = inputFileType; }

scanSubFolders(topFolder);

function scanSubFolders(tFolder)
{
var sFolders = new Array();
var allFiles = new Array();

sFolders[0] = tFolder;
for (var j = 0; j < sFolders.length; j++) // loop through folders
{
var procFiles = sFolders[j].getFiles();
for (var k=0;k<procFiles.length;k++) // loop through this folder contents
{

if (procFiles[k] instanceof File) allFiles.push(procFiles[k]);
else if (procFiles[k] instanceof Folder) sFolders.push(procFiles[k]);
var letzt = procFiles[k];
var myArray = letzt.name.split(".");
var myLast = myArray.pop();
if (myLast == "indd") {app.open(letzt)};
}
}
}
// Teil 2: Verpacken

do{
if(app.documents.length !=0){
// Name der aktiven Datei
var myDocFullName = app.activeDocument.fullName;
// Ordnername
var myFolderName = String(myDocFullName).replace(/\.indd/,' ');
// Ordner erstellen
var f = new Folder (myFolderName);
f.create();
// Verpacken
app.activeDocument.packageForPrint (f , true, true, true, true, true, true, true);
}
app.activeDocument.close(SaveOptions.NO);
}
while(app.documents.length !=0);


Ich hoffe, er findet deinen Segen, oh Großmeister;)

Danke für die Hilfestellung
Holger


als Antwort auf: [#384748]

Verpacken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

9. Feb 2009, 16:30
Beitrag # 6 von 11
Beitrag ID: #384750
Bewertung:
(1794862 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Holger,

danke schön.


> Ich hoffe, er findet deinen Segen

Ich teste den Code heute Abend und gebe dann meinen Senf dazu oder verewige Dich im Archiv. ;-)


als Antwort auf: [#384749]

Verpacken per Skript

strauch
Beiträge gesamt: 170

3. Jun 2014, 09:24
Beitrag # 7 von 11
Beitrag ID: #528099
Bewertung:
(1793191 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich muss den alten Thread mal rauskramen, die Version im Archiv http://indesign.hilfdirselbst.ch/ausgabe-export/verpacken-per-skript.html funktioniert bei mir nicht. Die Version hier im Forum hingegen schon.
Hat das Script seit 2009 niemand mehr genutzt? :-). Ich nutze Indesign CS5.


als Antwort auf: [#384750]

Verpacken per Skript

Martin Fischer
  
Beiträge gesamt: 12783

3. Jun 2014, 11:47
Beitrag # 8 von 11
Beitrag ID: #528112
Bewertung:
(1793142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Strauch,

vielen Dank für den Hinweis.

Da muss bei der Übernahme des Skripts aus dem Forum ins Archiv etwas schief gelaufen sein.

Das Problem sollte nun behoben sein.


als Antwort auf: [#528099]

Verpacken per Skript

zdenk
Beiträge gesamt: 1

17. Mär 2017, 13:14
Beitrag # 9 von 11
Beitrag ID: #556380
Bewertung:
(1791581 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo allerseits!

Ich verwende sehr gerne und oft das Skript "Backup_Verpacken.jsx" von Holger aka Krings.

Manchmal bekomme ich allerdings eine Fehlermeldung, die dann auch das Skript stoppt. Nämlich, dass eine "._Dateiname.indd" nicht geöffnet werden kann. Dabei handelt es sich um versteckte Dateien.

Frage:
Hat noch jemand das gleiche Problem bzw. hat jemand eine Lösung hierfür? (z.B. Anpassung des Skripts dahingehend, diese Dateien zu ignorieren)

Bisher habe ich mir damit beholfen, die zu verpackenden Indesign-Dateien in einen neuen Ordner zu kopieren. Dann kommen die versteckten Dateien nicht mit. Das ist aber auf Dauer keine zufriedenstellende Lösung, da ich oft viele Jobs ordnerweise verpacken muss..

Vielen Dank für eventuelle Hilfe!

Grüße
Zdenko


als Antwort auf: [#528112]

Verpacken per Skript

Uli75
Beiträge gesamt: 54

3. Jun 2020, 13:46
Beitrag # 10 von 11
Beitrag ID: #575551
Bewertung:
(1789635 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

bin auch begeistert von dem Script!!!

Allerdings möchte ich nicht auch Unterordner durchsuchen, sondern nur den ausgewählten Ordner. Welchen Teil des Script müsste ich denn da auskommentieren?

Gruß und dankeschön
Uli


als Antwort auf: [#384749]

Verpacken per Skript

Uwe Laubender
Beiträge gesamt: 5316

5. Jun 2020, 14:22
Beitrag # 11 von 11
Beitrag ID: #575601
Bewertung:
(1789427 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zdenko,
falls das Skript wirklich versucht, unsichtbare Dateien zu öffnen, dann stimmt 'was mit dem Dateifilter nicht, der die InDesign-Dateien herausfischen soll.

Eine Lösung für eine Filterfunktion wäre das hier:

Code
function InDesignFileFilterFunction( file ) 
{
return file instanceof Folder // Nichts zurückgeben, wenn ein Verzeichnis erwischt wurde
||
(
!(file.hidden) //Etwas zurückgeben, wenn die Datei NICHT unsichtbar ist
&&
(
file.name.match(/\.indd$/i) // UND am Ende des Dateinamens ".indd" heißt
|| file.type == "INDD " // ODER vom Dateitype "INDD" ist, also keine Endung hat
)
);
};



als Antwort auf: [#556380]
X