[GastForen PrePress allgemein Typographie

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Abweichungen zwischen Mac-PS- und OTF-Font

Martin Fischer
Beiträge gesamt: 12783

11. Dez 2018, 09:14
Bewertung:

gelesen: 19101

Beitrag als Lesezeichen
Hier ein Skript, das gestern in Abstimmung mit Michael für seine Zwecke entstanden ist.

Code
/* 
changeSomeGlyphsOfUniversalGreek.jsx

//DESCRIPTION:Ersetzt einige Glyphen aus der PS Schrift "Greek with Math Pi" druch Glyphen aus dem OTF "Universal Std Greek with Math Pi
DATE: 10.12.2018
*/

app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "changeSomeGlyphsOfUniversalGreek.jsx");

function main()
{
if (app.documents.length == 0)
error_exit('Achtung!\nBitte öffnen Sie eine InDesign-Datei.');

var doc = app.documents.firstItem(),
i = 0,
_error = [],
font_name = {
'find' : 'Universal\tGreek with Math Pi',
'change': 'Universal Std\tGreek with Math Pi'
};

// Prüfung: erforderliche Schriften vorhanden?
if (!app.fonts.itemByName(font_name.find).isValid)
_error.push('Die erforderliche Schrift "' + font_name.find.replace(/\t/g,' ') + '" ist nicht verfügbar.');
if (!app.fonts.itemByName(font_name.change).isValid)
_error.push('Die erforderliche Schrift "' + font_name.change.replace(/\t/g,' ') + '" ist nicht verfügbar.');

if (_error.length == 0)
{
// sicherheitshalber alle Sucheinträge zurückstellen
app.findGrepPreferences = app.changeGrepPreferences = NothingEnum.nothing;
app.findTextPreferences = app.changeTextPreferences = NothingEnum.nothing;

app.findGlyphPreferences = app.changeGlyphPreferences = NothingEnum.nothing;
app.findGlyphPreferences.appliedFont = app.fonts.itemByName(font_name.find);
app.changeGlyphPreferences.appliedFont = app.fonts.itemByName(font_name.change);

// changeGlyphID_pairs( [GlyphID PS,GlyphID OTF] );
// in eckigen Klammern zunächst die GlyphID des gesuchten Fonts, nach einem Komma die GlyphID des Ersatzfonts
changeGlyphID_pairs( [89,96] );
changeGlyphID_pairs( [75,98] );
changeGlyphID_pairs( [25,106] );
changeGlyphID_pairs( [109,107] );
changeGlyphID_pairs( [96,108] );
changeGlyphID_pairs( [105,113] );
changeGlyphID_pairs( [103,115] );
changeGlyphID_pairs( [104,116] );
changeGlyphID_pairs( [108,117] );
changeGlyphID_pairs( [106,118] );
changeGlyphID_pairs( [107,119] );
changeGlyphID_pairs( [101,120] );

app.findGlyphPreferences = app.changeGlyphPreferences = NothingEnum.nothing;
}

if (_error.length > 0)
alert('Achtung!\n' +_error.join('\n'))

//================================================================
// Funktionen
//================================================================

// ---------------------------------------------------------------
// Glyphen ersetzen
// ---------------------------------------------------------------
function changeGlyphID_pairs(arr)
{
try
{
app.findGlyphPreferences.glyphID = arr[0];
app.changeGlyphPreferences.glyphID = arr[1];
doc.changeGlyph();
}
catch(e)
{
_error.push(e);
}
}

// ---------------------------------------------------------------
// Ausstieg mit Fehlermeldung
// ---------------------------------------------------------------
function error_exit(message)
{
if (arguments.length > 0)
alert(message);
exit();
}
}


Vielleicht ist es in dieser oder einer abgewandelten Form auch anderen Interessenten gelegentlich eine Hilfe.

(Dieser Beitrag wurde von Martin Fischer am 11. Dez 2018, 09:29 geändert)

Anhang:
GlyphenTabelle_UniversalGreek.png (127 KB)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 11. Dez 2018, 09:26
Beitrag geändert von Martin Fischer (Moderator) am 11. Dez 2018, 09:29