Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Schriften von Dokumenten auflisten

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

Schriften von Dokumenten auflisten

mb_new
Beiträge gesamt: 123

10. Aug 2021, 12:30
Beitrag # 1 von 6
Bewertung:
(19961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen,

ich verwende schon länger das Skript von Martin Fischer (siehe unten) um die Schriften des aktiven Dokuments in einer .txt-Datei aufzulisten.

Nun brauche ich das öfter, dass ich mehrere Dokumente geöffnet habe und eigentlich von allen Dokumenten die Schriften haben möchte.

Wie kann ich das Skript anpassen, dass die Schriften aller geöffneten Dokumente in einer .txt-Datei aufgelistet werden?

Hat jemand eine Idee?
Danke
martin

Hier das Skript:
Code
if (app.documents.length > 0)  
{
var doc_fonts = app.activeDocument.fonts.everyItem().name;
doc_fonts.sort();
var _f = write_file(File('~/Desktop/fonts_of_' + app.activeDocument.name.replace(/\.indd$/i,'') + '.txt'), doc_fonts.join('\r'));
_f.execute();
}

function write_file ( _file, _data )
{
if (! Folder(_file.path).exists)
Folder(_file.path).create();
_file.open( 'w' );
_file.encoding = 'UTF-8';
_file.writeln ( _data );
_file.close();
return (_file);
}

X

Schriften von Dokumenten auflisten

bodoha
Beiträge gesamt: 4

10. Aug 2021, 20:13
Beitrag # 2 von 6
Beitrag ID: #580811
Bewertung:
(19914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Folgendes Skript sollte tun, was Du brauchst. Wenn Fragen sind: stellen ;-)

Gruss Bodo

Code
#target InDesign  

var msg = "Dieses Script wurde aufgrund einer Anfrage in hilfdirselbst.ch erstellt. " +
"Wenn es Ihnen hilft, können Sie sich gerne mittels einer Donation an die " +
"Plattform bedanken. ;-)";
alert(msg);

if (app.documents.length > 0)
{ var fileName = '~/Desktop/fonts_created_' + createTimeStamp() + ".txt";
var outFile = File(fileName);

for (var inx=0; inx<app.documents.length; inx++)
{ doc = app.documents[inx];
write_file(outFile, "\nFile: " + doc.name);
for (var iny=0; iny<doc.fonts.length; iny++)
write_file(outFile, doc.fonts[iny].name);
}
alert("Fonts written to: " + outFile.fullName);
}
else
alert("HINT: Öffnen Sie doch erstmal ein Dokument.");

// creates a timestamp: YYYYMMDD-HHMMSS
function createTimeStamp()
{ var d = new Date();
var day, month, year, hour, minute, second = "";

day = d.getDate();
month = d.getMonth();
hour = d.getHours();
minute = d.getMinutes();
second = d.getSeconds();

var ts = d.getFullYear() + (day>9 ? '' : '0') + day + (month>9 ? '' : '0') + month + "-" +
(hour>9 ? '' : '0') + hour + (minute>9 ? '' : '0') + minute + (second>9 ? '' : '0') + second;

return(ts);
}

function write_file(_outFile, _data )
{ if (! Folder(_outFile.path).exists)
Folder(_outFile.path).create();
if (! _outFile.exists)
_outFile.open("w");
else
_outFile.open("a");

_outFile.encoding = 'UTF-8';
_outFile.writeln (_data);
_outFile.close();
}



als Antwort auf: [#580804]

Schriften von Dokumenten auflisten

Uwe Laubender
Beiträge gesamt: 5316

10. Aug 2021, 20:42
Beitrag # 3 von 6
Beitrag ID: #580812
Bewertung:
(19901 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

eine Anmerkung sei erlaubt, da InDesign ab 2020 auch SVG-Grafiken platzieren kann, die keine Schriften eingebettet enthalten, aber durchaus benötigen.

Habe das noch nicht vollkommen durchgetestet, aber ich bin mir ziemlich sicher:

Die einzige Möglichkeit herauszubekommen, welche Schriften für ein bestimmtes Dokument benötigt werden, auch Schriften in platzierten SVG-Graphiken, geht über das Skripten der Preflight-Funktion, die über eine frisch geöffnete IDML-Datei läuft.

Zusätzlich bei platzierten WMF- und EPS-Dateien auch das Hineinschauen in die platzierten Dateien selbst.


als Antwort auf: [#580804]

Schriften von Dokumenten auflisten

mb_new
Beiträge gesamt: 123

11. Aug 2021, 10:43
Beitrag # 4 von 6
Beitrag ID: #580817
Bewertung:
(19816 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Danke Bodo! Funktioniert einwandfrei.
Eine Kleinigkeit möchte ich noch anpassen, doch mir fehlt die Kenntnis das zu tun:

Ich möchte die Schriften aller geöffneten Dokumente aufgelistet, ohne Dokumentennamen dazwischen, und doppelte Schriften sollen nicht angeführt werden.

Dass der Dokumentenname nicht im Report ist, konnte ich lösen indem ich die Zeile
Zitat write_file(outFile, "\nFile: " + doc.name);

rausgenommen habe.

Doch ich schaffe es nicht zu prüfen ob der Schriftname schon vorhanden ist, wenn ja soll die nächste Schrift geprüft werden.

Ich hoffe ihr wisst, was ich meine:
Zum Beispiel:
Dok 1 enthält Helvetica Regular und Arial Bold
Dok 2 enthält Arial Bold

Im Report soll dann nur aufgelistet sein:
Helvetica Regular
Arial Bold

@ Uwe: da ich das Skript nur brauche um von Usern erstellte Textkästen auszuwerten, können zB SVG oder anderen platzierten Dateien übergangen werden.

Danke wieder einmal für eure Hilfe!
Martin


als Antwort auf: [#580812]

Schriften von Dokumenten auflisten

bodoha
Beiträge gesamt: 4

11. Aug 2021, 23:57
Beitrag # 5 von 6
Beitrag ID: #580827
Bewertung:
(19735 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dann sollte Dir das hier weiterhelfen. ;-)

Code
#target InDesign 

var msg = "Dieses Script wurde aufgrund einer Anfrage in hilfdirselbst.ch erstellt. " +
"Wenn es Ihnen hilft, können Sie sich gerne mittels einer Donation an die " +
"Plattform bedanken. ;-)";
alert(msg);

if (app.documents.length > 0)
{ var fileName = '~/Desktop/fonts_created_' + createTimeStamp() + ".txt";
var outFile = File(fileName);
var files = [];
var fonts = [];

for (var inx=0; inx<app.documents.length; inx++)
{ doc = app.documents[inx];
files.push(doc.name);
for (var iny=0; iny<doc.fonts.length; iny++)
fonts.push(doc.fonts[iny].name);
}
fonts.sort();

write_file(outFile, files, removeDuplicates(fonts));
alert("Fonts written to: " + outFile.fullName);
}
else
alert("HINT: Öffnen Sie doch erstmal ein Dokument.");

// creates a timestamp: YYYYMMDD-HHMMSS
function createTimeStamp()
{ var d = new Date();
var day, month, year, hour, minute, second = "";

day = d.getDate();
month = d.getMonth()+1;
hour = d.getHours();
minute = d.getMinutes();
second = d.getSeconds();

var ts = d.getFullYear() + (month>9 ? '' : '0') + month + (day>9 ? '' : '0') + day + "-" +
(hour>9 ? '' : '0') + hour + (minute>9 ? '' : '0') + minute + (second>9 ? '' : '0') + second;

return(ts);
}

function write_file(_outFile, _files, _fonts)
{ if (! Folder(_outFile.path).exists)
Folder(_outFile.path).create();
if (! _outFile.exists)
_outFile.open("w");
_outFile.encoding = 'UTF-8';

_outFile.writeln("Dateien:");
for (var inx=0; inx<_files.length; inx++)
_outFile.writeln(_files[inx]);

_outFile.writeln("\nSchriften:");
for (var inx=0; inx<_fonts.length; inx++)
_outFile.writeln(_fonts[inx]);

_outFile.close();
}

// removes double entries from a (sorted!) array
function removeDuplicates(data)
{ var newarr = [];
for (var inx=1; inx<data.length; inx++)
{ if (data[inx] != data[inx-1])
newarr.push(data[inx]);
}
return(newarr);
}


Gruß Bodo


als Antwort auf: [#580804]

Schriften von Dokumenten auflisten

mb_new
Beiträge gesamt: 123

30. Aug 2021, 16:53
Beitrag # 6 von 6
Beitrag ID: #580999
Bewertung:
(18676 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Bodo!

Urlaubsbedingt bin ich erst jetzt zum Testen gekommen.

Das Skript macht genau das ,was ich möchte.

Besten Dank!
Martin


als Antwort auf: [#580827]
X