[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 16:24
Bewertung:

gelesen: 18587

Beitrag als Lesezeichen
Hallo Volker,

da war ich wohl ein bischen zu schnell.

Ich hab die Anpassung von Martin vorgenommen und greife auf die Link-Objekte nicht mehr indirekt über Document.graphics zu, sondern direkt über das Document.links-Objekt. Dieses wird durch den Link.update()-Befehl beim for-Schleifendurchlauf aber geändert. So das hier eine saubere Inkonsistenz mit einem Dirty-Read entsteht.

Das nachfolgende Skript müsste passen:

Code
//aktuelles Dokument 
var currentDocument=app.activeDocument;

//Neuer Basisordner erzeugen
var baseFolder = new Folder("/c/Hier_neuer_Basis_Pfad");
if(!baseFolder.exists){
baseFolder.create();
}

for(j=0;j < currentDocument.links.length; j++){ // durchlaufe alle Links im Dokument
var aLink = currentDocument.links[j];

if(aLink.status==LinkStatus.NORMAL){ //Verknüpfung stimmt
if(aLink.linkType=="Adobe Portable Document Format (PDF)"){
var f = new File(aLink.filePath);
//Unterordner erzeugen
var subfolderName = f.path.substring(f.path.lastIndexOf("/")+1,f.path.length);
var subfolder = new Folder(baseFolder+"/"+subfolderName);
if(!subfolder.exists){
subfolder.create();
}

var newFilename = baseFolder+"/"+ subfolderName +"/"+f.name;
f.copy(newFilename);
aLink.relink(new File(newFilename));

f.remove();
}
}
}

currentDocument.links.everyItem().update();


Gruss

Flo

(Dieser Beitrag wurde von flobuc am 19. Nov 2009, 16:27 geändert)
Änderungsverlauf:
Beitrag geändert von flobuc (User) am 19. Nov 2009, 16:27