[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt [JavaScript] PDFs verschieben ...

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

[JavaScript] PDFs verschieben ...

vhausw
Beiträge gesamt: 59

19. Nov 2009, 08:33
Beitrag # 1 von 28
Bewertung:
(11239 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ihr JavaScript Meister.
Gibt es eine Möglichkeit per JavaScript ein PDF von einem Ordner in einen anderen zu verschieben.
Das ist aber noch nicht alles.

Also:
In meinem aktiven (geöffneten) InDesign CS4 Dokument sind einige PDF-Daten verknüpft.
Diese liegen in einem Odrner (auch mit Unterordner).
Ich sollte nun alle PDF-Daten (die sich in dem ID-Doc befinden) aus dem Original Ordner in einen anderen Ordner verschieben können.
Der Original Ordner liegt auf C://. Der Neue Ordner liegt auf D://.

Geht das überhaupt mit einem JavaScript aus ID heraus?
Danke für Eure Hilfe.

PC: XP Prof, ID CS4 (6.0.4)
X

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 09:07
Beitrag # 2 von 28
Beitrag ID: #424498
Bewertung:
(11216 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo vhausw,

dies ist kein Problem.
Du kannst über alle Verknüpfungen im Dokument laufen, dir deine PDF-Verknüpfungen raussuchen, die dazugehörige Datei auslesen, mit File.copy() und File.remove() die Datei an einen anderen Ort kopieren und anschließend deine Verknüpfung aktualisieren.

Gruss

Flo


als Antwort auf: [#424494]

[JavaScript] PDFs verschieben ...

vhausw
Beiträge gesamt: 59

19. Nov 2009, 09:32
Beitrag # 3 von 28
Beitrag ID: #424501
Bewertung:
(11203 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo flobuc,

vielen Dank für die Info, dass dieses überhaupt Möglich sei.
Nur wie genau ich nun das Script machen sollte (??!!!!??)
- ich bin nun mal kein PROFI - ......
Wie gesagt, erstmals vielen Dank.

Grüße Volker


als Antwort auf: [#424498]

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 10:50
Beitrag # 4 von 28
Beitrag ID: #424514
Bewertung:
(11167 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Volker,

hier ist ein ungetester Entwurf wie das Ganze aussehen könnte:
Code
/aktuelles Dokument 
var currentDocument=app.activeDocument;

//Neuen Abbildungsordner erzeugen
var newFolder = new Folder("~/Hier dein Pfad");
if(!newFolder.exists){
newFolder.create();
}

for(j=0;j < currentDocument.allGraphics.length; j++){ // durchlaufe alle Bilder im Dokument
var currentGraphic = currentPage.allGraphics[j];
var aLink = currentGraphic.itemLink;

if(aLink.status==LinkStatus.NORMAL){ //Verknüpfung stimmt
if(aLink.linkType=="Adobe Portable Document Format (PDF)"){
var f = new File(aLink.filePath);
f.copy(newFolder+"/"+f.name);
aLink.relink(new File(newFolder+"/"+f.name));
aLink.update();
f.remove();
}
}
}


Probiers mal aus.

Gruss

Flo


als Antwort auf: [#424501]

[JavaScript] PDFs verschieben ...

Martin Fischer
  
Beiträge gesamt: 11871

19. Nov 2009, 11:15
Beitrag # 5 von 28
Beitrag ID: #424518
Bewertung:
(11154 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

entschuldige, wenn ich mich kurz einmische.

Du sammelst die Links über allGraphics.
Das ginge direkter über var myLinks = app.documents.firstItem().links.

Ich erwähne dies, weil ich befürchte (ohne es geprüft zu haben), dass die Zeile var aLink = currentGraphic.itemLink einen Fehler ausspucken könnte, wenn eine Graphik keine Verknüpfung hat, weil sie aus der Zwischenablage platziert wurde.

Wenn Du gerade ein Dokument zum Testen eingerichtet hast, könntest Du das mal überprüfen.

Ansonsten gefällt mir das Skript und ich würde es gerne ins Skriptarchiv aufnehmen.
Hast Du noch einen passenden Namen?

Viele Grüße
Martin


als Antwort auf: [#424514]
(Dieser Beitrag wurde von Martin Fischer am 19. Nov 2009, 11:16 geändert)

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 12:13
Beitrag # 6 von 28
Beitrag ID: #424532
Bewertung:
(11122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

du hast recht, currentGraphic.itemLink liefert bei einer Graphik ohne Verknüpfung "null" zurück und das Script läuft dann in einen Fehler.
Zu meiner Entschuldigung kann ich sagen, daß bei uns solche Bilder nicht vorkommen, da alle Bilder als verknüpfte Bilder von den Bildbearbeitern zugeliefert werden ;-)

Namen hab ich keinen, daß Skript hab ich mir gerade so zusammen gebaut. Wenn mann die Abfrage auf PDF weglässt, kann man damit alle Verknüpfungen in einen neuen Ordner verschieben und neu verknüpfen, also irgendwie "MoveLinksAndRelink". Aber wenn dir ein besserer Name einfällt immerzu.

Gruss

Flo


als Antwort auf: [#424518]

[JavaScript] PDFs verschieben ...

Martin Fischer
  
Beiträge gesamt: 11871

19. Nov 2009, 12:42
Beitrag # 7 von 28
Beitrag ID: #424541
Bewertung:
(11107 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

Du brauchst Dich nicht zu entschuldigen.

Antwort auf: du hast recht, currentGraphic.itemLink liefert bei einer Graphik ohne Verknüpfung "null" zurück und das Script läuft dann in einen Fehler.


Ich arbeite gerade an einem Skript, das bem Öffnen eines Dokuments Graphiken ohne Verknüpfung aufstöbert und listet. Deswegen bin ich im Moment dafür sensibilisiert. ;-)

Viele Grüße
Martin


als Antwort auf: [#424532]

[JavaScript] PDFs verschieben ...

vhausw
Beiträge gesamt: 59

19. Nov 2009, 12:48
Beitrag # 8 von 28
Beitrag ID: #424544
Bewertung:
(11099 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,
Hallo Martin.

Ich beiden seit wirklich super. Nochmals vielen Dank.

Nun komme ich mit einer weiteren kleinen Bitte an EUCH.
Alle meine Original PDF Daten liegen ja in einem Ordner [A] mit vielen Unterordnern .
Beispiel für einen Unterordner : PDF_K oder PDF_A .
In diesem Ordner liegen dann alle PDFs, die vom Namen her wie folgt aussehen:
PDF_K_001.pdf ; PDF_K_002.pdf ; PDF_K.pdf
Kann ich nun mit dem NEUEN Script "MoveLinksAndRelink" die Bilder
in dem "newFolder" kopieren (aber schon sortiert nach den Unterordnern )
und dann erst neu verknüpfen.

Also nochmals vielen Dank für EURE Hilfe.
Grüße aus Stuttgart. Volker


als Antwort auf: [#424541]

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 13:30
Beitrag # 9 von 28
Beitrag ID: #424552
Bewertung:
(11072 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Volker,

hier ist nochmal eine getestete Version wobei die 1. Unterordner mit kopiert werden:

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);
(new Folder(baseFolder+"/"+subfolderName)).create();

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



Wenn du noch mehr Unterordner mitnehmen möchtest, musst du halt entsprechend die Zeile die den Subordner bestimmt ändern.

Gruss

Flo


als Antwort auf: [#424544]
(Dieser Beitrag wurde von flobuc am 19. Nov 2009, 13:35 geändert)

[JavaScript] PDFs verschieben ...

vhausw
Beiträge gesamt: 59

19. Nov 2009, 15:40
Beitrag # 10 von 28
Beitrag ID: #424574
Bewertung:
(11023 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

echt genial, dein Script.
Leider kommt bei mir eine Fehlermeldung.
Fehlernummer: 30614
Zeile: 23
Quelle: aLink.update();

Aus diesem Grund kopiert er auch nur eine PDF-Datei in den Neuen Ordner.
Und zum Löschen kommt er folglich auch nicht.
Sorry.

Grüße aus Stuttgart.
Volker


als Antwort auf: [#424552]
(Dieser Beitrag wurde von vhausw am 19. Nov 2009, 15:41 geändert)

[JavaScript] PDFs verschieben ...

generalping
Beiträge gesamt: 419

19. Nov 2009, 15:54
Beitrag # 11 von 28
Beitrag ID: #424576
Bewertung:
(11009 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich bin auch ganz entzückt von diesem Script, könnte es ganz gut gebrauchen.

Leider habe ich keine Scriptkenntnisse und schon ein Problem mit der Anpassung.

Was muss ich denn bei new Folder("/c/Hier_neuer_Basis_Pfad");
eingeben?

OSX 10.5.8/CS4

Besten Dank für Tipps und Ratschläge


als Antwort auf: [#424574]

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 16:24
Beitrag # 12 von 28
Beitrag ID: #424578
Bewertung:
(10986 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#424574]
(Dieser Beitrag wurde von flobuc am 19. Nov 2009, 16:27 geändert)

[JavaScript] PDFs verschieben ...

flobuc
Beiträge gesamt: 246

19. Nov 2009, 16:31
Beitrag # 13 von 28
Beitrag ID: #424581
Bewertung:
(10979 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ping,

hier sollte dein neuer Pfad stehen, in den du die PDFs kopiert haben willst:

Beispiel:
C:\Arbeit\Projekt_Peace\Kapitel_1\PDF

dann schreibst du folgendes zwischen die Anführungszeichen:

/c/Arbeit/Projekt_Peace/Kapitel_1/PDF


Gruss

Flo


als Antwort auf: [#424576]

[JavaScript] PDFs verschieben ...

kkauer
Beiträge gesamt: 661

19. Nov 2009, 19:35
Beitrag # 14 von 28
Beitrag ID: #424608
Bewertung:
(10923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo vhausw,

nur interessehalber.
Antwort auf [ vhausw ] Nun komme ich mit einer weiteren kleinen Bitte an EUCH.

Das Beibehalten des Unterordners war dir von Anfang an "wichtig", es wurde nur nicht explizit in der Ausgangsfrage erwähnt? Ansonsten wäre ja gar kein Skript nötig.


als Antwort auf: [#424544]
(Dieser Beitrag wurde von kkauer am 19. Nov 2009, 19:36 geändert)

[JavaScript] PDFs verschieben ...

Martin Fischer
  
Beiträge gesamt: 11871

23. Nov 2009, 08:53
Beitrag # 15 von 28
Beitrag ID: #424906
Bewertung:
(10821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

mir ist Folgendes aufgefallen.
Wenn das Skript nach dem Verschieben der PDF und der Verknüpfung mit den verschobenen PDFs nochmals aufgerufen wird, dann werden die Originale per f.remove() gelöscht, nachdem sie auf sich selbst dupliziert worden sind.

Das ist gefährlich (wie schnell ist das Skript erneut ausgeführt, wenn es auf einer Taste liegt oder versehentlich ein neuer Doppelklick auf das Skript erfolgt) und sollte abgefangen werden.

Viele Grüße
Martin


als Antwort auf: [#424581]
(Dieser Beitrag wurde von Martin Fischer am 23. Nov 2009, 08:54 geändert)
Hier Klicken X
Hier Klicken

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/