[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Characterobject und GlyphID

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

Characterobject und GlyphID

Gerald Singelmann
  
Beiträge gesamt: 6269

2. Jul 2021, 21:50
Beitrag # 1 von 4
Bewertung:
(7423 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo z'samme

ich steh grad auf dem Schlauch: Wenn ich ein character-object habe, kann ich irgendwie rausfinden, welche Glyph-ID für den character im Layout zu sehen ist?

Danke im voraus
Gerald
X

Characterobject und GlyphID

Martin Fischer
  
Beiträge gesamt: 12783

2. Jul 2021, 22:54
Beitrag # 2 von 4
Beitrag ID: #580372
Bewertung:
(7410 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

meines Wissens geht das nur über einen Trick mit changeGlyph(): Ersetze das character-Objekt in einer fortlaufenden Schleife (kombiniert mit einer Fehlerabfangroutine) mit den IDs von 1(!) bis ... kein Fehler mehr auftritt (kombiniert mit einem Maxmimalwert, um eine Endlosschleife zu vermeiden) durch die GlyphID einer bekannten Glyphe.

Wenn die Ersetzung gelingt (kein Fehler mehr auftritt), dann kannst Du am Zähler die gesuchte GlyphID ablesen.


als Antwort auf: [#580371]
(Dieser Beitrag wurde von Martin Fischer am 2. Jul 2021, 23:07 geändert)

Characterobject und GlyphID

Martin Fischer
  
Beiträge gesamt: 12783

3. Jul 2021, 08:44
Beitrag # 3 von 4
Beitrag ID: #580375
Bewertung:
(7350 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mein obiger Vorschlag ist etwas unpräzise und irreführend.

Es müssen keine Fehler ausgelöst werden.
Es genügt vielmehr, einen Erfolg beim Ersetzen aufzuspüren.

Hier ein Schnipsel zum besseren Verständnis:

Code
if (app.selection.length > 0 && app.selection[0].hasOwnProperty('characters')) 
{
var glyph_id = get_glyphID(app.selection[0].characters.item(0));
alert('Ermittelte GlyphID: ' + glyph_id);
}

function get_glyphID(chr)
{
var i = 0,
r = 0,
cnt = chr.contents,
fnt = null,
max = 10000;

fnt = chr.appliedFont.fontFamily + '\t' + chr.appliedFont.fontStyleName; // Ermittlung Schrift als String
app.findGlyphPreferences = app.changeGlyphPreferences = NothingEnum.NOTHING;
app.findGlyphPreferences.appliedFont = fnt;
app.changeGlyphPreferences.glyphID = 1;
for (i = 1; i < max; i++)
{
app.findGlyphPreferences.glyphID = i;
r = chr.changeGlyph();
if (r.length > 0) // Erfolg der Ersetzung
{
chr.contents = cnt; // unglücklicher Ersatz für app.undo()
app.findGlyphPreferences = app.changeGlyphPreferences = NothingEnum.NOTHING;
return i;
}
}
return null // Mißerfolg
}



als Antwort auf: [#580372]

Characterobject und GlyphID

Gerald Singelmann
  
Beiträge gesamt: 6269

3. Jul 2021, 09:07
Beitrag # 4 von 4
Beitrag ID: #580376
Bewertung:
(7338 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für deine Mühen.
Der notwendige Aufwand ist viel zu hoch und bedeutet in meinem Fall, dass ich mit dem Unicode über Character.contents.charCodeAt(0) zufrieden bin.

Aber danke für die Bestätigung, dass ich nicht zu doof bin und es schlichtweg keinen vernünftigen Weg gibt.

Schönes WE
Gerald


als Antwort auf: [#580375]
X