Niektóre czcionki nie obsługują CSS kursywy lub pogrubienia (np. Zapfino nie obsługuje kursywy, ponieważ jest już dość scripty). Chcę wykryć, kiedy styl czcionki nie jest obsługiwany, więc mogę wyłączyć przyciski stylizacji w edytorze.Wykrywanie pogrubienia i kursywy wsparcie
Próbowałem coś like this:
that.checkFontData = function(fontList)
{ var test = $("<span style='font-size:24px;absolute;visibility:hidden;height:auto;width:auto;white-space:nowrap;'>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678910</span>");
$('body').append(test);
for (var i= 0, iMax = fontList.length; i < iMax; ++i)
{ test.css('fontFamily', fontList[i]);
var normalWidth = test.outerWidth(true);
var normalHeight = test.outerHeight(true);
test.css('fontStyle', 'italic');
var italicWidth = test.outerWidth(true);
var italicHeight = test.outerHeight(true);
test.css('fontStyle', 'normal');
test.css('fontWeight', 'bold');
var boldWidth = test.outerWidth(true);
var boldHeight = test.outerHeight(true);
console.log(fontList[i] + ", normal: " + normalWidth + ", bold: " + boldWidth + ", italic: " + italicWidth );
}
test.remove();
};
ale to nie działa ... wiele czcionek, które zapewniają kursywa lub pogrubioną raport tych samych szerokościach.
Następnie, pomyślałem, aby wykryć to za pomocą elementu canvas, ale, niestety, firefox nie robi nawet kursywy tekstu w obszarze roboczym, więc spartaczy ten pomysł.
Co byś zasugerował?
OCR, jeśli naprawdę ważne. Nie mogę wymyślić niczego lepszego – user1721135
sprawdź to ręcznie, a na twardym kodzie wyniki – P1nGu1n
o twardych zakodowanych wynikach, takich jak sugeruje P1nGu1n byłoby najlepszym najbardziej logicznym rozwiązaniem w moim umyśle. Prawdopodobnie kontrolujesz własne czcionki - to powinno być łatwe. – rlemon