[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Link Export Skript + Änderungen

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

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

21. Jun 2006, 12:07
Beitrag # 1 von 101
Bewertung:
(16457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich benutze sehr oft das Link Export Skript von Martin. Nun verlangen aber unsere internen Arbeitsprozeduren (weitergabe der Bilderliste an die Scanabteilung) dass noch der Farbmodus und der Dateityp aufgelistet werden. Kann mir dabei einer weiterhelfen um diese Werte von der Info-Palette in die Txt-Datei zu bekommen.


@Martin: Die skalieren Warnung funktioniert bei mir überhaupt nicht. Getestet wurden Unterschiede bis 30%. Gäbe es da auch eine Möglichkeit wie z.B. "(!)" vor die Prozentwerte zu setzen (Beispiel: (!) 63 (!) 62).



Folgend ist noch meine Version des Skripts:

Code
// LinkExport-Pro_Mod_b1.jsx  
// DESCRIPTION: Exportiert einige Informationen über plazierte Bilder im aktiven Dokument in eine Textdatei im Verzeichnis des Dokuments.
// Die Werte sind durch Tabulatoren getrennt, so daß der Inhalt der Textdatei z.B. über die Zwischenablage in eine Excel-Tabelle kopiert und dort sortiert werden kann.
// Die exportierte Textdatei trägt den Namen des Dokuments und die Endung ".txt".
//
var myDoc = app.documents[0];
if (myDoc.saved == false)
{
alert("Errorr.\rPlease save the document!");
exit();
}
var myDocName = myDoc.name.split(".indd")[0];
var myTXT_File = myDocName + '.txt';
var myPath = myDoc.filePath + "/";
var myCreator = "R*ch";
var myType = "TEXT";
var theFiles = myDoc.links;
var myData = "Name\t\t% Vertical\t% Horizontal\t\tWidth\tHeight\t\tEff. Res.\t\tPage Nr.\t\tPath\r";

var f = new File( myPath + myTXT_File );
f.open( 'w', myType, myCreator );
f.writeln( myData );

for (myCounter = 0; myCounter<theFiles.length;myCounter ++ ) {
var myBounds = theFiles[myCounter].parent.geometricBounds;
var myWidth = Math.round(myBounds[3]-myBounds[1]);
var myHeight = Math.round(myBounds[2]-myBounds[0]);
var myScaleVert = Math.round(theFiles[myCounter].parent.absoluteVerticalScale);
var myScaleHori = Math.round(theFiles[myCounter].parent.absoluteHorizontalScale);
var myImagePath = theFiles[myCounter].filePath;
var myPage ="???"; //Falls Seite vom Skript bei EPS-Bild nicht erkannt wird
// WARNING if vertical scale is different to horizontal scale
if (myScaleVert !== myScaleHori)
{
var myWarning = "% Vertical is not equal % Horizontal";
}
else
{
var myWarning = "";
}
try
{
myPPI = (theFiles[myCounter].parent.effectivePpi);
}
catch (e)
{
myPPI = 0;
}
var myClass = theFiles[myCounter].parent.parent.parent.constructor.name;
// image placed on page
if (myClass == "Page")
{
myPage = theFiles[myCounter].parent.parent.parent.name;
}
// image embedded
else if (myClass == "Character")
{
try
{
myPage = theFiles[myCounter].parent.parent.parent.parentTextFrames[0].parent.name;
}
catch(e)
{
myPage = "Hidden in the Slug area";
}
}
else {
try
{
// image placed outside the pages
myPage = "(Outside) " + theFiles[myCounter].parent.parent.parent.pages[0].name;
}
catch(e)
{
// don't know the page where the image is placed
// alert ("Class: " + myClass + "\r" + theFiles[myCounter].name);
}
}
myData = theFiles[myCounter].name + "\t" + "\t" + myScaleVert + "\t" + myScaleHori + "\t" + "\t" + myWidth + " mm" + "\t" + myHeight + " mm" + "\t" + "\t" + myPPI + "\t" + "\t" + myPage + "\t" + "\t" + myImagePath + "\r";
f.writeln(myData);
}
f.close();


Schonmal Danke im voraus

Beste Grüße
Yves



yves-apel.eu

(Dieser Beitrag wurde von Nighthawk am 21. Jun 2006, 12:08 geändert)
X

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

21. Jun 2006, 13:11
Beitrag # 2 von 101
Beitrag ID: #235559
Bewertung:
(16431 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Yves,

kannst Du mir den Link zu der von Dir verwendeten Version oder das Skript selbst schicken?
Bei mir liegen verschiedene Versionen für verschiedene Zwecke rum.

> Die skalieren Warnung funktioniert bei mir überhaupt nicht.
Bei mir meckert das Skript schon bei 1%. Schon immer. Ein x in der letzten Spalte.
Aber ich werde es mit Deiner Version versuchen.
Das mit den Anführungszeichen werde ich auch noch irgendwie hinbekommen.

Viele Grüße
Martin




als Antwort auf: [#235551]

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

21. Jun 2006, 13:24
Beitrag # 3 von 101
Beitrag ID: #235565
Bewertung:
(16425 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Zitat Das mit den Anführungszeichen werde ich auch noch irgendwie hinbekommen.

Mit den Anführungszeichen??? Habe ich mich falsch ausgedrückt?

Die E-Mail kommt in etwa 10 Minuten. Danke

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235559]

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

21. Jun 2006, 13:29
Beitrag # 4 von 101
Beitrag ID: #235566
Bewertung:
(16420 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Mit den Anführungszeichen??? Habe ich mich falsch ausgedrückt?

Nein, aber ich habe 32° unterm Dach, arbeite simultan an 5 Projekten und verschwinde jetzt in den kühlen Garten und bin für ne Weile für niemanden mehr erreichbar.

Viele Grüße
Martin




als Antwort auf: [#235565]

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

21. Jun 2006, 13:42
Beitrag # 5 von 101
Beitrag ID: #235571
Bewertung:
(16417 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
...

Zitat Nein, aber ich habe 32° unterm Dach, arbeite simultan an 5 Projekten und verschwinde jetzt in den kühlen Garten und bin für ne Weile für niemanden mehr erreichbar.

Und wie kannst du jetzt meine E-Mail lesen :)? Nee, kleiner Scherz.

Ich kann deine Situation nachvollziehen. Bin auch erst vor kurzem in ein neues Büro ohne Klimaanlage gewechselt.

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235566]
(Dieser Beitrag wurde von Nighthawk am 21. Jun 2006, 13:44 geändert)

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

21. Jun 2006, 20:19
Beitrag # 6 von 101
Beitrag ID: #235616
Bewertung:
(16384 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

nach einem massiven Zeitaufwand und einer Runde Kopfrauch ;) habe ich es teilweise geschafft die gewünschten Funktionen einzubauen und sogar noch zu erweitern.

Was jetzt funktioniert:
Dateiname
Skalierungswerte
Grösse
Rotation
Auflösungswerte
Farbraum
Seitenummer (mit Eintrag wenn ein Bild ausserhalb der Seite steht)
??? wenn Seitennummer nicht erkannt
Pfadangaben

Was geht noch nicht:
Unterschiedliche Skalierungen werden nicht bemeckert (Wenn möglich mit Eintragung in die TXT Datei).
Ich bringe es nicht fertig den Dateityp in die TXT Datei zu bringen. Mit "imageTypeName" geht ohne Bildanwahl schon garnichts und mit nur halbwegs Crazy.
Bei einigen Einträgen im Script weiss ich nicht was sie bedeuten oder überhaupt eine Funktion erfüllen.

Gibt es dafür eine verständliche Lösung

Ich habe mal meine aktuelle Version des Scripts und die TXT Datei angehängt.

Grosses Dankeschön

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235566]
(Dieser Beitrag wurde von Nighthawk am 21. Jun 2006, 20:25 geändert)

Anhang:
LinkExportScript.zip (1.71 KB)

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

21. Jun 2006, 21:13
Beitrag # 7 von 101
Beitrag ID: #235622
Bewertung:
(16376 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Unterschiedliche Skalierungen werden nicht bemeckert (Wenn möglich mit Eintragung in die TXT Datei).

Der Fehler lag in dieser Zeile:
Code
	if (myScaleVert !== myScaleHori) 


!== sollte != geschrieben sein.

Das Skript habe ich um ein paar Kleinigkeiten erweitert (z.B. rekursive Funktion zur Bestimmung der Seitenzahl auch bei gruppierten oder verschachtelten Objekten).

Mit dem Bildtyp habe ich keine Probleme.
Welche Probleme hast Du damit?

Deine sonstigen Anpassungen sind in Ordnung.

Hier das veränderte Skript:
Code
// LinkExport-Pro_Mod_beta3.jsx   
// DESCRIPTION: Exportiert einige Informationen über plazierte Bilder im aktiven Dokument in eine Textdatei im Verzeichnis des Dokuments.
// Die Werte sind durch Tabulatoren getrennt, so daß der Inhalt der Textdatei z.B. über die Zwischenablage in eine Excel-Tabelle kopiert und dort sortiert werden kann.
// Die exportierte Textdatei trägt den Namen des Dokuments und die Endung ".txt".
//
var myDoc = app.documents[0];
if (myDoc.saved == false)
{
alert("Errorr.\rPlease save the document!");
exit();
}
var myDocName = myDoc.name.split(".indd")[0];
var myTXT_File = myDocName + '.txt';
var myPath = myDoc.filePath + "/";
var myCreator = "R*ch";
var myType = "TEXT";
var theFiles = myDoc.links;
var myData = "Name\t\t% Vertical\t% Horizontal\t\tWidth\tHeight\t\tRotation\t\tAct. Res.\tEff. Res.\t\tCol. Space\t\tFile type\t\tPage Nr.\t\tPath\r";

var f = new File( myPath + myTXT_File );
f.open( 'w', myType, myCreator );
f.writeln( myData );

for (myCounter = 0; myCounter<theFiles.length;myCounter ++ ) {
var myBounds = theFiles[myCounter].parent.geometricBounds;
var myWidth = Math.round(myBounds[3]-myBounds[1]);
var myHeight = Math.round(myBounds[2]-myBounds[0]);
var myScaleVert = Math.round(theFiles[myCounter].parent.absoluteVerticalScale);
var myScaleHori = Math.round(theFiles[myCounter].parent.absoluteHorizontalScale);
try
{
var mySpace = theFiles[myCounter].parent.space;
}
catch (e)
{
var mySpace = "--";
}
try
{
var myImageTypeName = theFiles[myCounter].parent.imageTypeName;
}
catch (e)
{
var myImageTypeName = "--";
}
var myImagePath = theFiles[myCounter].filePath;

// WARNING if vertical scale is different to horizontal scale
if (myScaleVert != myScaleHori)
{
myScaleVert += "!";
myScaleHori += "!";
}
try
{
myPPI = (theFiles[myCounter].parent.effectivePpi);
}
catch (e)
{
myPPI = 0;
}
try
{
myPPI2 = (theFiles[myCounter].parent.actualPpi);
}
catch (e)
{
myPPI2 = 1;
}
try
{
myRA = Math.round(theFiles[myCounter].parent.rotationAngle);
}
catch (e)
{
myRA = 2;
}
var myPage = getPage(theFiles[myCounter].parent.parent.parent);
if (myPage.constructor.name == "Page")
var myPageName = myPage.name;
else var myPageName = myPage.pages[0].name + "_[Montageflaeche]"; // Textrahmen auf Montagefläche

myData = theFiles[myCounter].name + "\t" + "\t" + myScaleVert + "\t" + myScaleHori + "\t" + "\t" + myWidth + " mm" + "\t" + myHeight + " mm" + "\t" + "\t" + myRA + "°" + "\t" + "\t" + myPPI2 + "\t" + myPPI + "\t" + "\t" + mySpace + "\t" + "\t" + myImageTypeName + "\t" + "\t" + myPageName + "\t" + "\t" + myImagePath + "\r";
f.writeln(myData);
}
f.close();

function getPage(myObject)
{
i +=1;
if ((myObject.constructor.name == "Page") || (myObject.constructor.name == "Spread"))
return myObject


if ( myObject.constructor.name == "Character")
{
if ((app.version +"").substr(0,1) == "4") return getPage(myObject.parentTextFrames[0])
else if ((app.version +"").substr(0,1) == "3") return getPage(myObject.parentTextFrame)
}

return getPage(myObject.parent)
}


Viele Grüße
Martin




als Antwort auf: [#235616]

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

21. Jun 2006, 21:45
Beitrag # 8 von 101
Beitrag ID: #235625
Bewertung:
(16371 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
...

Zitat Mit dem Bildtyp habe ich keine Probleme.
Welche Probleme hast Du damit?

Bei mir will das Script den BildTyp einfach nicht in die TXT Datei reinschreiben. Auch nicht bei deiner neuen Version!

Wir machen am besten morgen mit wachen Gedanken weiter. Bei mir läuft so langsam nichts mehr. Gute Nacht!

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235622]
(Dieser Beitrag wurde von Nighthawk am 21. Jun 2006, 21:50 geändert)

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

22. Jun 2006, 05:45
Beitrag # 9 von 101
Beitrag ID: #235638
Bewertung:
(16351 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Bei mir will das Script den BildTyp einfach nicht in die TXT Datei reinschreiben.
Was steht statt dessen drin?
Und was für Bildtypen hast Du, die vom Skript nicht erkannt werden?
Hängt's an der Plattform? Bei mir lief es auf'm MAC.

Viele Grüße
Martin




als Antwort auf: [#235625]

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

22. Jun 2006, 06:01
Beitrag # 10 von 101
Beitrag ID: #235642
Bewertung:
(16349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Zitat Was steht statt dessen drin?

Also, wenn garnichts angewählt ist bleibt die Kolonne in der Txt leer. Ist zufällig ein Bild (z.B. Tiff) mit dem Direktauswahlwerkzeug angewählt, vergibt es für jedes Bild das gleiche Attribut (bei pdf, eps, ai, ... schreibt das Script auch tiff hin).

Zitat Und was für Bildtypen hast Du, die vom Skript nicht erkannt werden?

Was ich damit bezwecken will ist das mir noch immer viele Daten ohne Extension angeliefert werden. Da möchte ich einfach wissen was für eine Datei es ist. War das die eigentliche Frage?

Zitat Hängt's an der Plattform? Bei mir lief es auf'm MAC.

Bei mir weder auf Mac noch auf PC / InDesign CS2 4.02 Englisch.

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235638]
(Dieser Beitrag wurde von Nighthawk am 22. Jun 2006, 06:02 geändert)

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

22. Jun 2006, 06:18
Beitrag # 11 von 101
Beitrag ID: #235645
Bewertung:
(16342 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
...

Mir fällt gerade auf dass wir dabei sind den Herstellern von Preflight Programmen mächtig Konkurenz zu machen. Wenn jetzt noch eine zusätzliche Warnmeldung für eine minimale Bildauflösung (z.B. Warnen wenn unter 250 PPI) wäre könnte man es auch als solches benutzen.

Sehr Interessant

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235638]

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

22. Jun 2006, 07:08
Beitrag # 12 von 101
Beitrag ID: #235651
Bewertung:
(16333 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Also, wenn garnichts angewählt ist bleibt die Kolonne in der Txt leer. Ist zufällig ein Bild (z.B. Tiff) mit dem Direktauswahlwerkzeug angewählt, vergibt es für jedes Bild das gleiche Attribut (bei pdf, eps, ai, ... schreibt das Script auch tiff hin).


Jetzt habe ich kapiert.
Und ich kann's rekonstruieren.

Das Phänomen ist seltsam, denn eigentlich berücksichtigt das Skript keinerlei Auswahl. Es greift auf die Links zurück und kümmert sich nicht um den Zustand auf dem Bildschirm.
Es scheint so, als ob zum Bildtyp andere Informationen geliefert werden, wenn ein Bild ausgewählt wird, als wenn kein Bild ausgewählt ist. Die Auswahl eines leeren Graphik- oder Textrahmens zählt nicht.

Versuche es statt mit dem "imageTypeName" mal mit dem "linkType".
Code
var myLinkType =   theFiles[myCounter].linkType 


Viele Grüße
Martin




als Antwort auf: [#235642]

Link Export Skript + Änderungen

Martin Fischer
  
Beiträge gesamt: 12494

22. Jun 2006, 07:20
Beitrag # 13 von 101
Beitrag ID: #235657
Bewertung:
(16328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Warnen wenn unter 250 PPI

Ersetze dazu die Zeilen
Code
try    
{
myPPI = (theFiles[myCounter].parent.effectivePpi);

}


durch
Code
try    
{
myPPI = (theFiles[myCounter].parent.effectivePpi);
if (theFiles[myCounter].parent.effectivePpi[0] < 250) myPPI[0] = ("#" + myPPI[0] );
if (theFiles[myCounter].parent.effectivePpi[1] < 250) myPPI[1] += "#";
}


> Herstellern von Preflight Programmen mächtig Konkurenz zu machen
Nichts läge mir ferner!

Viele Grüße
Martin




als Antwort auf: [#235645]
(Dieser Beitrag wurde von Martin Fischer am 22. Jun 2006, 07:22 geändert)

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

22. Jun 2006, 07:23
Beitrag # 14 von 101
Beitrag ID: #235660
Bewertung:
(16324 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

mit "linkType" klappt es wunderbar. Es hatte mich schon gewundert das der andere Befehl nicht klappt. Im Ref. Book steht es dann falsch.

Ich wollte noch gerade schreiben dass ich mich dann morgen mit der Auflösung beschäftigen werde. Du warst aber mal wieder schneller.

Werde es auf jeden Fall gleich ausprobieren! Wie immer Dankeschön!

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235651]
(Dieser Beitrag wurde von Nighthawk am 22. Jun 2006, 07:28 geändert)

Link Export Skript + Änderungen

Yves Apel
Beiträge gesamt: 1724

22. Jun 2006, 07:29
Beitrag # 15 von 101
Beitrag ID: #235663
Bewertung:
(16320 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
...

Auflösungswarnung auch gerade getestet.

Einfach nur grandios, Martin. Super!

Beste Grüße
Yves



yves-apel.eu


als Antwort auf: [#235657]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
09.09.2021 - 17.12.2021

Digicomp Academy, Zürich
Donnerstag, 09. Sept. 2021, 13.00 Uhr - Freitag, 17. Dez. 2021, 19.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von Publishing NETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: 6'300.– zzgl. 7.7% MWST
Dauer: 18 Tage(ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch