зеркало из https://github.com/mozilla/gecko-dev.git
Bug 468387 - disable synthetic faces for downloadable fonts on Windows already specified as bold/italic. r=vlad
This commit is contained in:
Родитель
c5b3074722
Коммит
ae7f73220e
|
@ -290,6 +290,8 @@ public:
|
|||
nsTArray< nsAutoPtr<Block> > mBlocks;
|
||||
};
|
||||
|
||||
#define TRUETYPE_TAG(a, b, c, d) ((a) << 24 | (b) << 16 | (c) << 8 | (d))
|
||||
|
||||
class THEBES_API gfxFontUtils {
|
||||
|
||||
public:
|
||||
|
@ -328,7 +330,7 @@ public:
|
|||
static nsresult
|
||||
ReadCMAP(PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCharacterMap,
|
||||
PRPackedBool& aUnicodeFont, PRPackedBool& aSymbolFont);
|
||||
|
||||
|
||||
#ifdef XP_WIN
|
||||
// given a TrueType/OpenType data file, produce a EOT-format header
|
||||
// for use with Windows T2Embed API AddFontResource type API's
|
||||
|
@ -352,6 +354,36 @@ public:
|
|||
RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
||||
PRUint32 aFontDataLength, nsTArray<PRUint8> *aNewFont);
|
||||
|
||||
// constansts used with name table read methods
|
||||
enum {
|
||||
PLATFORM_ALL = -1,
|
||||
PLATFORM_UNICODE = 0,
|
||||
PLATFORM_MACINTOSH = 1,
|
||||
PLATFORM_MICROSOFT = 3,
|
||||
|
||||
NAME_LANG_ALL = -1,
|
||||
|
||||
// name record id's
|
||||
NAME_ID_FAMILY = 1,
|
||||
NAME_ID_STYLE = 2,
|
||||
NAME_ID_UNIQUE = 3,
|
||||
NAME_ID_FULL = 4, // used as key to GDI CreateFontIndirect
|
||||
NAME_ID_VERSION = 5,
|
||||
NAME_ID_POSTSCRIPT = 6,
|
||||
NAME_ID_PREFERRED_FAMILY = 16
|
||||
};
|
||||
|
||||
// read all names matching aNameID, returning in aNames array
|
||||
static nsresult
|
||||
ReadNames(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
PRInt32 aPlatformID, nsTArray<nsString>& aNames);
|
||||
|
||||
// reads English or first name matching aNameID, returning in aName
|
||||
// platform based on OS
|
||||
static nsresult
|
||||
ReadCanonicalName(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
nsString& aName);
|
||||
|
||||
static inline bool IsJoiner(PRUint32 ch) {
|
||||
return (ch == 0x200C ||
|
||||
ch == 0x200D ||
|
||||
|
@ -371,6 +403,11 @@ public:
|
|||
// generate a unique font name
|
||||
static nsresult MakeUniqueUserFontName(nsAString& aName);
|
||||
|
||||
protected:
|
||||
static nsresult
|
||||
ReadNames(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
PRInt32 aLangID, PRInt32 aPlatformID, nsTArray<nsString>& aNames);
|
||||
|
||||
};
|
||||
|
||||
// helper class for loading in font info spaced out at regular intervals
|
||||
|
|
|
@ -110,13 +110,18 @@ private:
|
|||
class FontEntry : public gfxFontEntry
|
||||
{
|
||||
public:
|
||||
FontEntry(const nsAString& aFaceName) :
|
||||
gfxFontEntry(aFaceName), mFontType(GFX_FONT_TYPE_UNKNOWN),
|
||||
FontEntry(const nsAString& aFaceName, gfxWindowsFontType aFontType,
|
||||
PRBool aItalic, PRUint16 aWeight, gfxUserFontData *aUserFontData) :
|
||||
gfxFontEntry(aFaceName), mFontType(aFontType),
|
||||
mForceGDI(PR_FALSE), mUnknownCMAP(PR_FALSE),
|
||||
mUnicodeFont(PR_FALSE), mSymbolFont(PR_FALSE),
|
||||
mUnicodeFont(PR_FALSE), mSymbolFont(PR_FALSE), mUserFont(PR_FALSE),
|
||||
mCharset(0), mUnicodeRanges(0)
|
||||
{
|
||||
|
||||
mUserFontData = aUserFontData;
|
||||
mItalic = aItalic;
|
||||
mWeight = aWeight;
|
||||
if (IsType1())
|
||||
mForceGDI = PR_TRUE;
|
||||
}
|
||||
|
||||
FontEntry(const FontEntry& aFontEntry) :
|
||||
|
@ -128,6 +133,7 @@ public:
|
|||
mUnknownCMAP(aFontEntry.mUnknownCMAP),
|
||||
mUnicodeFont(aFontEntry.mUnicodeFont),
|
||||
mSymbolFont(aFontEntry.mSymbolFont),
|
||||
mUserFont(aFontEntry.mUserFont),
|
||||
mCharset(aFontEntry.mCharset),
|
||||
mUnicodeRanges(aFontEntry.mUnicodeRanges)
|
||||
{
|
||||
|
@ -135,16 +141,29 @@ public:
|
|||
}
|
||||
static void InitializeFontEmbeddingProcs();
|
||||
|
||||
static FontEntry* CreateFontEntry(const gfxProxyFontEntry &aProxyEntry,
|
||||
nsISupports *aLoader,
|
||||
const PRUint8 *aFontData,
|
||||
PRUint32 aLength);
|
||||
|
||||
static FontEntry* CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType, PRBool aItalic, PRUint16 aWeight, gfxUserFontData* aUserFontData, HDC hdc = 0, LOGFONTW *aLogFont = nsnull);
|
||||
// create a font entry from downloaded font data
|
||||
static FontEntry* LoadFont(const gfxProxyFontEntry &aProxyEntry,
|
||||
nsISupports *aLoader,
|
||||
const PRUint8 *aFontData,
|
||||
PRUint32 aLength);
|
||||
|
||||
static void FillLogFont(LOGFONTW *aLogFont, FontEntry *aFontEntry, gfxFloat aSize, PRBool aItalic);
|
||||
// create a font entry for a font with a given name
|
||||
static FontEntry* CreateFontEntry(const nsAString& aName,
|
||||
gfxWindowsFontType aFontType,
|
||||
PRBool aItalic, PRUint16 aWeight,
|
||||
gfxUserFontData* aUserFontData,
|
||||
HDC hdc = 0, LOGFONTW *aLogFont = nsnull);
|
||||
|
||||
static gfxWindowsFontType DetermineFontType(const NEWTEXTMETRICW& metrics, DWORD fontType)
|
||||
// create a font entry for a font referenced by its fullname
|
||||
static FontEntry* LoadLocalFont(const gfxProxyFontEntry &aProxyEntry,
|
||||
const nsAString& aFullname);
|
||||
|
||||
static void FillLogFont(LOGFONTW *aLogFont, const nsAString& aName,
|
||||
gfxWindowsFontType aFontType, PRBool aItalic,
|
||||
PRUint16 aWeight, gfxFloat aSize);
|
||||
|
||||
static gfxWindowsFontType DetermineFontType(const NEWTEXTMETRICW& metrics,
|
||||
DWORD fontType)
|
||||
{
|
||||
gfxWindowsFontType feType;
|
||||
if (metrics.ntmFlags & NTM_TYPE1)
|
||||
|
@ -274,6 +293,7 @@ public:
|
|||
PRPackedBool mUnknownCMAP : 1;
|
||||
PRPackedBool mUnicodeFont : 1;
|
||||
PRPackedBool mSymbolFont : 1;
|
||||
PRPackedBool mUserFont : 1;
|
||||
|
||||
std::bitset<256> mCharset;
|
||||
std::bitset<128> mUnicodeRanges;
|
||||
|
|
|
@ -491,7 +491,7 @@ gfxAtsuiFont::HasMirroringInfo()
|
|||
ByteCount size;
|
||||
|
||||
// 361695 - if the font has a 'prop' table, assume that ATSUI will handle glyph mirroring
|
||||
status = ATSFontGetTable(GetATSFontRef(), 'prop', 0, 0, 0, &size);
|
||||
status = ATSFontGetTable(GetATSFontRef(), TRUETYPE_TAG('p','r','o','p'), 0, 0, 0, &size);
|
||||
mHasMirroring = (status == noErr);
|
||||
mHasMirroringLookedUp = PR_TRUE;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,9 @@
|
|||
|
||||
#include "plbase64.h"
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#endif
|
||||
|
||||
#define NO_RANGE_FOUND 126 // bit 126 in the font unicode ranges is required to be 0
|
||||
|
||||
|
@ -331,19 +334,19 @@ gfxFontUtils::ReadCMAPTableFormat4(PRUint8 *aBuf, PRUint32 aLength, gfxSparseBit
|
|||
// For fonts with two format-4 tables, the first one (Unicode platform) is preferred on the Mac.
|
||||
|
||||
#if defined(XP_MACOSX)
|
||||
#define acceptablePlatform(p) ((p) == PlatformIDUnicode || (p) == PlatformIDMicrosoft)
|
||||
#define acceptableFormat4(p,e,k) ( ((p) == PlatformIDMicrosoft && (e) == EncodingIDMicrosoft && (k) != 4) || \
|
||||
((p) == PlatformIDUnicode) )
|
||||
#define isSymbol(p,e) ((p) == PlatformIDMicrosoft && (e) == EncodingIDSymbol)
|
||||
#define acceptablePlatform(p) ((p) == PLATFORM_UNICODE || (p) == PLATFORM_MICROSOFT)
|
||||
#define acceptableFormat4(p,e,k) ( ((p) == PLATFORM_MICROSOFT && (e) == EncodingIDMicrosoft && (k) != 4) || \
|
||||
((p) == PLATFORM_UNICODE) )
|
||||
#define isSymbol(p,e) ((p) == PLATFORM_MICROSOFT && (e) == EncodingIDSymbol)
|
||||
#else
|
||||
#define acceptablePlatform(p) ((p) == PlatformIDMicrosoft)
|
||||
#define acceptablePlatform(p) ((p) == PLATFORM_MICROSOFT)
|
||||
#define acceptableFormat4(p,e,k) ((e) == EncodingIDMicrosoft)
|
||||
#define isSymbol(p,e) ((e) == EncodingIDSymbol)
|
||||
#endif
|
||||
|
||||
#define acceptableUCS4Encoding(p, e) \
|
||||
((platformID == PlatformIDMicrosoft && encodingID == EncodingIDUCS4ForMicrosoftPlatform) || \
|
||||
(platformID == PlatformIDUnicode && encodingID == EncodingIDUCS4ForUnicodePlatform))
|
||||
((platformID == PLATFORM_MICROSOFT && encodingID == EncodingIDUCS4ForMicrosoftPlatform) || \
|
||||
(platformID == PLATFORM_UNICODE && encodingID == EncodingIDUCS4ForUnicodePlatform))
|
||||
|
||||
nsresult
|
||||
gfxFontUtils::ReadCMAP(PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCharacterMap,
|
||||
|
@ -361,10 +364,6 @@ gfxFontUtils::ReadCMAP(PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCha
|
|||
|
||||
SubtableOffsetFormat = 0
|
||||
};
|
||||
enum {
|
||||
PlatformIDUnicode = 0,
|
||||
PlatformIDMicrosoft = 3
|
||||
};
|
||||
enum {
|
||||
EncodingIDSymbol = 0,
|
||||
EncodingIDMicrosoft = 1,
|
||||
|
@ -600,16 +599,9 @@ struct NameRecord {
|
|||
AutoSwap_PRUint16 offset; // String offset from start of storage area (in bytes).
|
||||
|
||||
enum {
|
||||
NAME_ID_FAMILY = 1,
|
||||
NAME_ID_STYLE = 2,
|
||||
NAME_ID_UNIQUE = 3,
|
||||
NAME_ID_FULL = 4,
|
||||
NAME_ID_VERSION = 5,
|
||||
NAME_ID_POSTSCRIPT = 6,
|
||||
PLATFORM_ID_UNICODE = 0, // Mac OS uses this typically
|
||||
PLATFORM_ID_MICROSOFT = 3,
|
||||
ENCODING_ID_MICROSOFT_UNICODEBMP = 1, // with Microsoft platformID, BMP-only Unicode encoding
|
||||
LANG_ID_MICROSOFT_EN_US = 0x0409 // with Microsoft platformID, EN US lang code
|
||||
LANG_ID_MICROSOFT_EN_US = 0x0409, // with Microsoft platformID, EN US lang code
|
||||
LANG_ID_MACINTOSH_EN = 0
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -667,7 +659,7 @@ IsValidSFNTVersion(PRUint32 version)
|
|||
{
|
||||
// normally 0x00010000, CFF-style OT fonts == 'OTTO' and Apple TT fonts = 'true'
|
||||
// 'typ1' is also possible for old Type 1 fonts in a SFNT container but not supported
|
||||
return version == 0x10000 || version == 'OTTO' || version == 'true';
|
||||
return version == 0x10000 || version == TRUETYPE_TAG('O','T','T','O') || version == TRUETYPE_TAG('t','r','u','e');
|
||||
}
|
||||
|
||||
// copy and swap UTF-16 values, assume no surrogate pairs, can be in place
|
||||
|
@ -706,7 +698,7 @@ gfxFontUtils::ValidateSFNTHeaders(const PRUint8 *aFontData,
|
|||
}
|
||||
|
||||
if (aIsCFF)
|
||||
*aIsCFF = (sfntVersion == 'OTTO');
|
||||
*aIsCFF = (sfntVersion == TRUETYPE_TAG('O','T','T','O'));
|
||||
|
||||
// iterate through the table headers to find the head, name and OS/2 tables
|
||||
PRBool foundHead = PR_FALSE, foundOS2 = PR_FALSE, foundName = PR_FALSE;
|
||||
|
@ -747,7 +739,7 @@ gfxFontUtils::ValidateSFNTHeaders(const PRUint8 *aFontData,
|
|||
|
||||
switch (dirEntry->tag) {
|
||||
|
||||
case 'head':
|
||||
case TRUETYPE_TAG('h','e','a','d'):
|
||||
foundHead = PR_TRUE;
|
||||
headOffset = dirEntry->offset;
|
||||
headLen = dirEntry->length;
|
||||
|
@ -757,21 +749,21 @@ gfxFontUtils::ValidateSFNTHeaders(const PRUint8 *aFontData,
|
|||
}
|
||||
break;
|
||||
|
||||
case 'name':
|
||||
case TRUETYPE_TAG('n','a','m','e'):
|
||||
foundName = PR_TRUE;
|
||||
nameOffset = dirEntry->offset;
|
||||
nameLen = dirEntry->length;
|
||||
break;
|
||||
|
||||
case 'OS/2':
|
||||
case TRUETYPE_TAG('O','S','/','2'):
|
||||
foundOS2 = PR_TRUE;
|
||||
break;
|
||||
|
||||
case 'glyf': // TrueType-style quadratic glyph table
|
||||
case TRUETYPE_TAG('g','l','y','f'): // TrueType-style quadratic glyph table
|
||||
foundGlyphs = PR_TRUE;
|
||||
break;
|
||||
|
||||
case 'CFF ': // PS-style cubic glyph table
|
||||
case TRUETYPE_TAG('C','F','F',' '): // PS-style cubic glyph table
|
||||
foundCFF = PR_TRUE;
|
||||
break;
|
||||
|
||||
|
@ -811,7 +803,7 @@ gfxFontUtils::ValidateSFNTHeaders(const PRUint8 *aFontData,
|
|||
}
|
||||
|
||||
// need glyf or CFF table based on sfnt version
|
||||
if (sfntVersion == 'OTTO') {
|
||||
if (sfntVersion == TRUETYPE_TAG('O','T','T','O')) {
|
||||
if (!foundCFF) {
|
||||
NS_WARNING("invalid font (missing CFF table)");
|
||||
return PR_FALSE;
|
||||
|
@ -861,11 +853,11 @@ gfxFontUtils::RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
|||
PRUint64 dataLength(aFontDataLength);
|
||||
|
||||
// new name table
|
||||
static const PRUint32 neededNameIDs[] = {NameRecord::NAME_ID_FAMILY,
|
||||
NameRecord::NAME_ID_STYLE,
|
||||
NameRecord::NAME_ID_UNIQUE,
|
||||
NameRecord::NAME_ID_FULL,
|
||||
NameRecord::NAME_ID_POSTSCRIPT};
|
||||
static const PRUint32 neededNameIDs[] = {gfxFontUtils::NAME_ID_FAMILY,
|
||||
gfxFontUtils::NAME_ID_STYLE,
|
||||
gfxFontUtils::NAME_ID_UNIQUE,
|
||||
gfxFontUtils::NAME_ID_FULL,
|
||||
gfxFontUtils::NAME_ID_POSTSCRIPT};
|
||||
|
||||
// calculate new name table size
|
||||
PRUint16 nameCount = NS_ARRAY_LENGTH(neededNameIDs);
|
||||
|
@ -909,7 +901,7 @@ gfxFontUtils::RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
|||
NameRecord *nameRecord = reinterpret_cast<NameRecord*>(nameHeader + 1);
|
||||
|
||||
for (i = 0; i < nameCount; i++, nameRecord++) {
|
||||
nameRecord->platformID = NameRecord::PLATFORM_ID_MICROSOFT;
|
||||
nameRecord->platformID = gfxFontUtils::PLATFORM_MICROSOFT;
|
||||
nameRecord->encodingID = NameRecord::ENCODING_ID_MICROSOFT_UNICODEBMP;
|
||||
nameRecord->languageID = NameRecord::LANG_ID_MICROSOFT_EN_US;
|
||||
nameRecord->nameID = neededNameIDs[i];
|
||||
|
@ -939,7 +931,7 @@ gfxFontUtils::RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
|||
PRBool foundName = PR_FALSE;
|
||||
|
||||
for (i = 0; i < numTables; i++, dirEntry++) {
|
||||
if (dirEntry->tag == 'name') {
|
||||
if (dirEntry->tag == TRUETYPE_TAG('n','a','m','e')) {
|
||||
foundName = PR_TRUE;
|
||||
break;
|
||||
}
|
||||
|
@ -980,7 +972,7 @@ gfxFontUtils::RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
|||
dirEntry = reinterpret_cast<TableDirEntry*>(newFontData + sizeof(SFNTHeader));
|
||||
|
||||
for (i = 0; i < numTables; i++, dirEntry++) {
|
||||
if (dirEntry->tag == 'head') {
|
||||
if (dirEntry->tag == TRUETYPE_TAG('h','e','a','d')) {
|
||||
headOffset = dirEntry->offset;
|
||||
}
|
||||
checksum += dirEntry->checkSum;
|
||||
|
@ -995,6 +987,216 @@ gfxFontUtils::RenameFont(const nsAString& aName, const PRUint8 *aFontData,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
enum {
|
||||
#if defined(XP_MACOSX)
|
||||
CANONICAL_LANG_ID = NameRecord::LANG_ID_MACINTOSH_EN,
|
||||
PLATFORM_ID = gfxFontUtils::PLATFORM_MACINTOSH
|
||||
#else
|
||||
CANONICAL_LANG_ID = NameRecord::LANG_ID_MICROSOFT_EN_US,
|
||||
PLATFORM_ID = gfxFontUtils::PLATFORM_MICROSOFT
|
||||
#endif
|
||||
};
|
||||
|
||||
nsresult
|
||||
gfxFontUtils::ReadNames(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
PRInt32 aPlatformID, nsTArray<nsString>& aNames)
|
||||
{
|
||||
return ReadNames(aNameTable, aNameID, NAME_LANG_ALL, aPlatformID, aNames);
|
||||
}
|
||||
|
||||
nsresult
|
||||
gfxFontUtils::ReadCanonicalName(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
nsString& aName)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
nsTArray<nsString> names;
|
||||
|
||||
// first, look for the English name (this will succeed 99% of the time)
|
||||
rv = ReadNames(aNameTable, aNameID, CANONICAL_LANG_ID, PLATFORM_ID, names);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// otherwise, grab names for all languages
|
||||
if (names.Length() == 0) {
|
||||
rv = ReadNames(aNameTable, aNameID, NAME_LANG_ALL, PLATFORM_ID, names);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
#if defined(XP_MACOSX)
|
||||
// may be dealing with font that only has Microsoft name entries
|
||||
if (names.Length() == 0) {
|
||||
rv = ReadNames(aNameTable, aNameID, NameRecord::LANG_ID_MICROSOFT_EN_US,
|
||||
gfxFontUtils::PLATFORM_MICROSOFT, names);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// getting really desperate now, take anything!
|
||||
if (names.Length() == 0) {
|
||||
rv = ReadNames(aNameTable, aNameID, NAME_LANG_ALL,
|
||||
gfxFontUtils::PLATFORM_MICROSOFT, names);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// return the first name (99.9% of the time names will
|
||||
// contain a single English name)
|
||||
if (names.Length()) {
|
||||
aName.Assign(names[0]);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsresult
|
||||
DecodeName(PRUint8 *aNameData, PRUint32 aByteLen, PRInt32 aPlatform,
|
||||
PRUint32 aEncoding, nsAString& aName)
|
||||
{
|
||||
NS_ASSERTION(aPlatform != gfxFontUtils::PLATFORM_ALL, "need a defined platform to decode string");
|
||||
|
||||
#if defined(XP_MACOSX)
|
||||
|
||||
CFStringRef name = NULL;
|
||||
|
||||
if (aPlatform == gfxFontUtils::PLATFORM_MACINTOSH) {
|
||||
name = CFStringCreateWithBytes(kCFAllocatorDefault, aNameData, aByteLen,
|
||||
(CFStringEncoding) aEncoding, false);
|
||||
} else if (aPlatform == gfxFontUtils::PLATFORM_UNICODE
|
||||
|| aPlatform == gfxFontUtils::PLATFORM_MICROSOFT)
|
||||
{
|
||||
name = CFStringCreateWithBytes(kCFAllocatorDefault, aNameData, aByteLen,
|
||||
kCFStringEncodingUTF16BE, false);
|
||||
}
|
||||
|
||||
if (!name)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
CFIndex len = CFStringGetLength(name);
|
||||
aName.SetLength(len);
|
||||
CFStringGetCharacters(name, CFRangeMake(0, len), aName.BeginWriting());
|
||||
CFRelease(name);
|
||||
|
||||
#else
|
||||
|
||||
// skip non-MS platforms and non-Unicode encodings
|
||||
if (aPlatform != gfxFontUtils::PLATFORM_MICROSOFT
|
||||
|| aEncoding != NameRecord::ENCODING_ID_MICROSOFT_UNICODEBMP)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
PRUint32 strLen = aByteLen/2;
|
||||
PRUnichar *str;
|
||||
|
||||
#ifdef IS_LITTLE_ENDIAN
|
||||
nsAutoTArray<PRUnichar,256> swapBuf;
|
||||
if (!swapBuf.AppendElements(strLen))
|
||||
NS_ERROR_FAILURE;
|
||||
|
||||
str = (PRUnichar*) (swapBuf.Elements());
|
||||
PRUnichar *ch, *end = (PRUnichar*)(aNameData + aByteLen);
|
||||
for (ch = (PRUnichar*) aNameData; ch < end; ch++) {
|
||||
*str++ = NS_SWAP16(*ch);
|
||||
}
|
||||
str = (PRUnichar*) (swapBuf.Elements());
|
||||
#else
|
||||
str = (PRUnichar*) aNameData;
|
||||
#endif
|
||||
|
||||
aName.Assign(str, strLen);
|
||||
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
gfxFontUtils::ReadNames(nsTArray<PRUint8>& aNameTable, PRUint32 aNameID,
|
||||
PRInt32 aLangID, PRInt32 aPlatformID,
|
||||
nsTArray<nsString>& aNames)
|
||||
{
|
||||
PRUint32 nameTableLen = aNameTable.Length();
|
||||
NS_ASSERTION(nameTableLen != 0, "null name table");
|
||||
|
||||
if (nameTableLen == 0)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
PRUint8 *nameTable = aNameTable.Elements();
|
||||
|
||||
// -- name table data
|
||||
const NameHeader *nameHeader = reinterpret_cast<const NameHeader*>(nameTable);
|
||||
|
||||
PRUint32 nameCount = nameHeader->count;
|
||||
|
||||
// -- sanity check the number of name records
|
||||
if (PRUint64(nameCount) * sizeof(NameRecord) > nameTableLen) {
|
||||
NS_WARNING("invalid font (name table data)");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// -- iterate through name records
|
||||
const NameRecord *nameRecord
|
||||
= reinterpret_cast<const NameRecord*>(nameTable + sizeof(NameHeader));
|
||||
PRUint64 nameStringsBase = PRUint64(nameHeader->stringOffset);
|
||||
|
||||
PRUint32 i;
|
||||
for (i = 0; i < nameCount; i++, nameRecord++) {
|
||||
PRUint32 platformID;
|
||||
|
||||
// skip over unwanted nameID's
|
||||
if (PRUint32(nameRecord->nameID) != aNameID)
|
||||
continue;
|
||||
|
||||
// skip over unwanted platform data
|
||||
platformID = nameRecord->platformID;
|
||||
if (aPlatformID != PLATFORM_ALL
|
||||
&& PRUint32(nameRecord->platformID) != PLATFORM_ID)
|
||||
continue;
|
||||
|
||||
// skip over unwanted languages
|
||||
if (aLangID != NAME_LANG_ALL
|
||||
&& PRUint32(nameRecord->languageID) != PRUint32(aLangID))
|
||||
continue;
|
||||
|
||||
// add name to names array
|
||||
|
||||
// -- calculate string location
|
||||
PRUint32 namelen = nameRecord->length;
|
||||
PRUint32 nameoff = nameRecord->offset; // offset from base of string storage
|
||||
|
||||
if (nameStringsBase + PRUint64(nameoff) + PRUint64(namelen)
|
||||
> nameTableLen) {
|
||||
NS_WARNING("invalid font (name table strings)");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// -- decode if necessary and make nsString
|
||||
nsAutoString name;
|
||||
nsresult rv;
|
||||
|
||||
rv = DecodeName(nameTable + nameStringsBase + nameoff, namelen,
|
||||
platformID, PRUint32(nameRecord->encodingID), name);
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
continue;
|
||||
|
||||
PRUint32 k, numNames;
|
||||
PRBool foundName = PR_FALSE;
|
||||
|
||||
numNames = aNames.Length();
|
||||
for (k = 0; k < numNames; k++) {
|
||||
if (name.Equals(aNames[k])) {
|
||||
foundName = PR_TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundName)
|
||||
aNames.AppendElement(name);
|
||||
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Embedded OpenType (EOT) handling
|
||||
// needed for dealing with downloadable fonts on Windows
|
||||
//
|
||||
|
@ -1142,7 +1344,7 @@ gfxFontUtils::MakeEOTHeader(const PRUint8 *aFontData, PRUint32 aFontDataLength,
|
|||
|
||||
switch (dirEntry->tag) {
|
||||
|
||||
case 'head':
|
||||
case TRUETYPE_TAG('h','e','a','d'):
|
||||
foundHead = PR_TRUE;
|
||||
headOffset = dirEntry->offset;
|
||||
headLen = dirEntry->length;
|
||||
|
@ -1150,23 +1352,23 @@ gfxFontUtils::MakeEOTHeader(const PRUint8 *aFontData, PRUint32 aFontDataLength,
|
|||
return NS_ERROR_FAILURE;
|
||||
break;
|
||||
|
||||
case 'name':
|
||||
case TRUETYPE_TAG('n','a','m','e'):
|
||||
foundName = PR_TRUE;
|
||||
nameOffset = dirEntry->offset;
|
||||
nameLen = dirEntry->length;
|
||||
break;
|
||||
|
||||
case 'OS/2':
|
||||
case TRUETYPE_TAG('O','S','/','2'):
|
||||
foundOS2 = PR_TRUE;
|
||||
os2Offset = dirEntry->offset;
|
||||
os2Len = dirEntry->length;
|
||||
break;
|
||||
|
||||
case 'glyf': // TrueType-style quadratic glyph table
|
||||
case TRUETYPE_TAG('g','l','y','f'): // TrueType-style quadratic glyph table
|
||||
foundGlyphs = PR_TRUE;
|
||||
break;
|
||||
|
||||
case 'CFF ': // PS-style cubic glyph table
|
||||
case TRUETYPE_TAG('C','F','F',' '): // PS-style cubic glyph table
|
||||
foundGlyphs = PR_TRUE;
|
||||
break;
|
||||
|
||||
|
@ -1217,32 +1419,32 @@ gfxFontUtils::MakeEOTHeader(const PRUint8 *aFontData, PRUint32 aFontDataLength,
|
|||
for (i = 0; i < nameCount; i++, nameRecord++) {
|
||||
|
||||
// looking for Microsoft English US name strings, skip others
|
||||
if (PRUint32(nameRecord->platformID) != NameRecord::PLATFORM_ID_MICROSOFT ||
|
||||
if (PRUint32(nameRecord->platformID) != gfxFontUtils::PLATFORM_MICROSOFT ||
|
||||
PRUint32(nameRecord->encodingID) != NameRecord::ENCODING_ID_MICROSOFT_UNICODEBMP ||
|
||||
PRUint32(nameRecord->languageID) != NameRecord::LANG_ID_MICROSOFT_EN_US)
|
||||
continue;
|
||||
|
||||
switch ((PRUint32)nameRecord->nameID) {
|
||||
|
||||
case NameRecord::NAME_ID_FAMILY:
|
||||
case gfxFontUtils::NAME_ID_FAMILY:
|
||||
names[EOTFixedHeader::EOT_FAMILY_NAME_INDEX].offset = nameRecord->offset;
|
||||
names[EOTFixedHeader::EOT_FAMILY_NAME_INDEX].length = nameRecord->length;
|
||||
needNames &= ~(1 << EOTFixedHeader::EOT_FAMILY_NAME_INDEX);
|
||||
break;
|
||||
|
||||
case NameRecord::NAME_ID_STYLE:
|
||||
case gfxFontUtils::NAME_ID_STYLE:
|
||||
names[EOTFixedHeader::EOT_STYLE_NAME_INDEX].offset = nameRecord->offset;
|
||||
names[EOTFixedHeader::EOT_STYLE_NAME_INDEX].length = nameRecord->length;
|
||||
needNames &= ~(1 << EOTFixedHeader::EOT_STYLE_NAME_INDEX);
|
||||
break;
|
||||
|
||||
case NameRecord::NAME_ID_FULL:
|
||||
case gfxFontUtils::NAME_ID_FULL:
|
||||
names[EOTFixedHeader::EOT_FULL_NAME_INDEX].offset = nameRecord->offset;
|
||||
names[EOTFixedHeader::EOT_FULL_NAME_INDEX].length = nameRecord->length;
|
||||
needNames &= ~(1 << EOTFixedHeader::EOT_FULL_NAME_INDEX);
|
||||
break;
|
||||
|
||||
case NameRecord::NAME_ID_VERSION:
|
||||
case gfxFontUtils::NAME_ID_VERSION:
|
||||
names[EOTFixedHeader::EOT_VERSION_NAME_INDEX].offset = nameRecord->offset;
|
||||
names[EOTFixedHeader::EOT_VERSION_NAME_INDEX].length = nameRecord->length;
|
||||
needNames &= ~(1 << EOTFixedHeader::EOT_VERSION_NAME_INDEX);
|
||||
|
|
|
@ -195,7 +195,9 @@ MacOSFontEntry::ReadCMAP()
|
|||
// attempt this once, if errors occur leave a blank cmap
|
||||
mCmapInitialized = PR_TRUE;
|
||||
|
||||
status = ATSFontGetTable(fontRef, 'cmap', 0, 0, 0, &size);
|
||||
PRUint32 kCMAP = TRUETYPE_TAG('c','m','a','p');
|
||||
|
||||
status = ATSFontGetTable(fontRef, kCMAP, 0, 0, 0, &size);
|
||||
cmapSize = size;
|
||||
//printf( "cmap size: %s %d", NS_ConvertUTF16toUTF8(mName).get(), size );
|
||||
#if DEBUG
|
||||
|
@ -212,7 +214,7 @@ MacOSFontEntry::ReadCMAP()
|
|||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
PRUint8 *cmap = buffer.Elements();
|
||||
|
||||
status = ATSFontGetTable(fontRef, 'cmap', 0, size, cmap, &size);
|
||||
status = ATSFontGetTable(fontRef, kCMAP, 0, size, cmap, &size);
|
||||
NS_ENSURE_TRUE(status == noErr, NS_ERROR_FAILURE);
|
||||
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
|
@ -232,13 +234,13 @@ MacOSFontEntry::ReadCMAP()
|
|||
|
||||
// check for mort/morx table, if haven't already
|
||||
if (!checkedForMorphTable) {
|
||||
status = ATSFontGetTable(fontRef, 'morx', 0, 0, 0, &size);
|
||||
status = ATSFontGetTable(fontRef, TRUETYPE_TAG('m','o','r','x'), 0, 0, 0, &size);
|
||||
if (status == noErr) {
|
||||
checkedForMorphTable = PR_TRUE;
|
||||
hasMorphTable = PR_TRUE;
|
||||
} else {
|
||||
// check for a mort table
|
||||
status = ATSFontGetTable(fontRef, 'mort', 0, 0, 0, &size);
|
||||
status = ATSFontGetTable(fontRef, TRUETYPE_TAG('m','o','r','t'), 0, 0, 0, &size);
|
||||
checkedForMorphTable = PR_TRUE;
|
||||
if (status == noErr) {
|
||||
hasMorphTable = PR_TRUE;
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefLocalizedString.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsIStreamBufferAccess.h"
|
||||
|
||||
#include "nsCRT.h"
|
||||
|
||||
|
@ -147,7 +148,7 @@ struct DCFromContext {
|
|||
static nsresult
|
||||
ReadCMAP(HDC hdc, FontEntry *aFontEntry)
|
||||
{
|
||||
const PRUint32 kCMAP = (('c') | ('m' << 8) | ('a' << 16) | ('p' << 24));
|
||||
const PRUint32 kCMAP = NS_SWAP32(TRUETYPE_TAG('c','m','a','p'));
|
||||
|
||||
DWORD len = GetFontData(hdc, kCMAP, 0, nsnull, 0);
|
||||
if (len == GDI_ERROR || len == 0) // not a truetype font --
|
||||
|
@ -494,9 +495,9 @@ public:
|
|||
|
||||
/* static */
|
||||
FontEntry*
|
||||
FontEntry::CreateFontEntry(const gfxProxyFontEntry &aProxyEntry,
|
||||
nsISupports *aLoader,const PRUint8 *aFontData,
|
||||
PRUint32 aLength) {
|
||||
FontEntry::LoadFont(const gfxProxyFontEntry &aProxyEntry,
|
||||
nsISupports *aLoader,const PRUint8 *aFontData,
|
||||
PRUint32 aLength) {
|
||||
// if calls aren't available, bail
|
||||
if (!TTLoadEmbeddedFontPtr || !TTDeleteEmbeddedFontPtr)
|
||||
return nsnull;
|
||||
|
@ -579,13 +580,45 @@ FontEntry::CreateFontEntry(const gfxProxyFontEntry &aProxyEntry,
|
|||
PRUint32(aProxyEntry.mItalic ? FONT_STYLE_ITALIC : FONT_STYLE_NORMAL),
|
||||
w, winUserFontData);
|
||||
|
||||
if (fe && isCFF)
|
||||
if (!fe)
|
||||
return fe;
|
||||
|
||||
fe->mUserFont = PR_TRUE;
|
||||
if (isCFF)
|
||||
fe->mForceGDI = PR_TRUE;
|
||||
|
||||
return fe;
|
||||
}
|
||||
|
||||
class AutoReleaseDC {
|
||||
public:
|
||||
AutoReleaseDC(HDC hdc) : mDC(hdc) {
|
||||
SetGraphicsMode(hdc, GM_ADVANCED);
|
||||
}
|
||||
~AutoReleaseDC() { ReleaseDC(nsnull, mDC); }
|
||||
HDC mDC;
|
||||
};
|
||||
|
||||
class AutoPushPopFont {
|
||||
public:
|
||||
AutoPushPopFont(HDC hdc, HFONT aFont) : mDC(hdc), mFont(aFont) {
|
||||
mOldFont = (HFONT)SelectObject(mDC, mFont);
|
||||
}
|
||||
~AutoPushPopFont() {
|
||||
SelectObject(mDC, mOldFont);
|
||||
DeleteObject(mFont);
|
||||
}
|
||||
HDC mDC;
|
||||
HFONT mFont;
|
||||
HFONT mOldFont;
|
||||
};
|
||||
|
||||
/* static */
|
||||
FontEntry*
|
||||
FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType, PRBool aItalic, PRUint16 aWeight, gfxUserFontData* aUserFontData, HDC hdc, LOGFONTW *aLogFont)
|
||||
FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType,
|
||||
PRBool aItalic, PRUint16 aWeight,
|
||||
gfxUserFontData* aUserFontData,
|
||||
HDC hdc, LOGFONTW *aLogFont)
|
||||
{
|
||||
LOGFONTW logFont;
|
||||
PRBool needRelease = PR_FALSE;
|
||||
|
@ -594,19 +627,11 @@ FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType,
|
|||
|
||||
FontEntry *fe;
|
||||
|
||||
fe = new FontEntry(aName);
|
||||
fe->mFontType = aFontType;
|
||||
fe->mUserFontData = aUserFontData;
|
||||
|
||||
fe->mItalic = aItalic;
|
||||
fe->mWeight = aWeight;
|
||||
|
||||
if (fe->IsType1())
|
||||
fe->mForceGDI = PR_TRUE;
|
||||
fe = new FontEntry(aName, aFontType, aItalic, aWeight, aUserFontData);
|
||||
|
||||
if (!aLogFont) {
|
||||
aLogFont = &logFont;
|
||||
FontEntry::FillLogFont(aLogFont, fe, 0, aItalic);
|
||||
FontEntry::FillLogFont(aLogFont, aName, aFontType, aItalic, aWeight, 0);
|
||||
}
|
||||
|
||||
if (!hdc) {
|
||||
|
@ -614,11 +639,11 @@ FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType,
|
|||
SetGraphicsMode(hdc, GM_ADVANCED);
|
||||
needRelease = PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
HFONT font = CreateFontIndirectW(aLogFont);
|
||||
|
||||
if (font) {
|
||||
HFONT oldFont = (HFONT)SelectObject(hdc, font);
|
||||
AutoPushPopFont fontCleanup(hdc, font);
|
||||
|
||||
// ReadCMAP may change the values of mUnicodeFont and mSymbolFont
|
||||
if (NS_FAILED(::ReadCMAP(hdc, fe))) {
|
||||
|
@ -634,9 +659,6 @@ FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType,
|
|||
fe->mUnknownCMAP = PR_TRUE;
|
||||
|
||||
}
|
||||
|
||||
SelectObject(hdc, oldFont);
|
||||
DeleteObject(font);
|
||||
}
|
||||
|
||||
if (needRelease)
|
||||
|
@ -645,9 +667,82 @@ FontEntry::CreateFontEntry(const nsAString& aName, gfxWindowsFontType aFontType,
|
|||
return fe;
|
||||
}
|
||||
|
||||
/* static */
|
||||
FontEntry*
|
||||
FontEntry::LoadLocalFont(const gfxProxyFontEntry &aProxyEntry,
|
||||
const nsAString& aFullname)
|
||||
{
|
||||
// lookup name with CreateFontIndirect
|
||||
HDC hdc = GetDC(nsnull);
|
||||
AutoReleaseDC dcCleanup(hdc);
|
||||
SetGraphicsMode(hdc, GM_ADVANCED);
|
||||
|
||||
LOGFONTW logFont;
|
||||
memset(&logFont, 0, sizeof(LOGFONTW));
|
||||
logFont.lfCharSet = DEFAULT_CHARSET;
|
||||
PRUint32 namelen = PR_MIN(aFullname.Length(), LF_FACESIZE - 1);
|
||||
memcpy(logFont.lfFaceName,
|
||||
nsPromiseFlatString(aFullname).get(),
|
||||
namelen * sizeof(PRUnichar));
|
||||
logFont.lfFaceName[namelen] = 0;
|
||||
|
||||
HFONT font = CreateFontIndirectW(&logFont);
|
||||
if (!font)
|
||||
return nsnull;
|
||||
|
||||
// fetch fullname from name table (Windows takes swapped tag order)
|
||||
const PRUint32 kNameTag = NS_SWAP32(TRUETYPE_TAG('n','a','m','e'));
|
||||
nsAutoString fullName;
|
||||
|
||||
{
|
||||
AutoPushPopFont fontCleanup(hdc, font);
|
||||
|
||||
DWORD len = GetFontData(hdc, kNameTag, 0, nsnull, 0);
|
||||
if (len == GDI_ERROR || len == 0) // not a truetype font --
|
||||
return nsnull; // so just ignore
|
||||
|
||||
nsAutoTArray<PRUint8,1024> nameData;
|
||||
if (!nameData.AppendElements(len))
|
||||
return nsnull;
|
||||
PRUint8 *nameTable = nameData.Elements();
|
||||
|
||||
DWORD newLen = GetFontData(hdc, kNameTag, 0, nameTable, len);
|
||||
if (newLen != len)
|
||||
return nsnull;
|
||||
|
||||
nsresult rv;
|
||||
|
||||
rv = gfxFontUtils::ReadCanonicalName(nameData,
|
||||
gfxFontUtils::NAME_ID_FULL,
|
||||
fullName);
|
||||
if (NS_FAILED(rv))
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
// reject if different from canonical fullname
|
||||
if (!aFullname.Equals(fullName))
|
||||
return nsnull;
|
||||
|
||||
// create a new font entry
|
||||
PRUint16 w = (aProxyEntry.mWeight == 0 ? 400 : aProxyEntry.mWeight);
|
||||
PRBool isCFF = PR_FALSE; // jtdfix -- need to determine this
|
||||
|
||||
FontEntry *fe = FontEntry::CreateFontEntry(aFullname,
|
||||
gfxWindowsFontType(isCFF ? GFX_FONT_TYPE_PS_OPENTYPE : GFX_FONT_TYPE_TRUETYPE) /*type*/,
|
||||
PRUint32(aProxyEntry.mItalic ? FONT_STYLE_ITALIC : FONT_STYLE_NORMAL),
|
||||
w, nsnull);
|
||||
|
||||
if (!fe)
|
||||
return fe;
|
||||
|
||||
fe->mUserFont = PR_TRUE;
|
||||
return fe;
|
||||
}
|
||||
|
||||
void
|
||||
FontEntry::FillLogFont(LOGFONTW *aLogFont, FontEntry *aFontEntry, gfxFloat aSize, PRBool aItalic)
|
||||
FontEntry::FillLogFont(LOGFONTW *aLogFont, const nsAString& aName,
|
||||
gfxWindowsFontType aFontType, PRBool aItalic,
|
||||
PRUint16 aWeight, gfxFloat aSize)
|
||||
{
|
||||
#define CLIP_TURNOFF_FONTASSOCIATION 0x40
|
||||
|
||||
|
@ -663,7 +758,7 @@ FontEntry::FillLogFont(LOGFONTW *aLogFont, FontEntry *aFontEntry, gfxFloat aSize
|
|||
aLogFont->lfUnderline = FALSE;
|
||||
aLogFont->lfStrikeOut = FALSE;
|
||||
aLogFont->lfCharSet = DEFAULT_CHARSET;
|
||||
aLogFont->lfOutPrecision = FontTypeToOutPrecision(aFontEntry->mFontType);
|
||||
aLogFont->lfOutPrecision = FontTypeToOutPrecision(aFontType);
|
||||
aLogFont->lfClipPrecision = CLIP_TURNOFF_FONTASSOCIATION;
|
||||
aLogFont->lfQuality = DEFAULT_QUALITY;
|
||||
aLogFont->lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
|
||||
|
@ -672,10 +767,10 @@ FontEntry::FillLogFont(LOGFONTW *aLogFont, FontEntry *aFontEntry, gfxFloat aSize
|
|||
// it may give us a regular one based on weight. Windows should
|
||||
// do fake italic for us in that case.
|
||||
aLogFont->lfItalic = aItalic;
|
||||
aLogFont->lfWeight = aFontEntry->mWeight;
|
||||
aLogFont->lfWeight = aWeight;
|
||||
|
||||
int len = PR_MIN(aFontEntry->Name().Length(), LF_FACESIZE - 1);
|
||||
memcpy(aLogFont->lfFaceName, nsPromiseFlatString(aFontEntry->Name()).get(), len * 2);
|
||||
int len = PR_MIN(aName.Length(), LF_FACESIZE - 1);
|
||||
memcpy(aLogFont->lfFaceName, nsPromiseFlatString(aName).get(), len * 2);
|
||||
aLogFont->lfFaceName[len] = '\0';
|
||||
}
|
||||
|
||||
|
@ -961,7 +1056,23 @@ gfxWindowsFont::ComputeMetrics()
|
|||
void
|
||||
gfxWindowsFont::FillLogFont(gfxFloat aSize)
|
||||
{
|
||||
FontEntry::FillLogFont(&mLogFont, GetFontEntry(), aSize, (GetStyle()->style & (FONT_STYLE_ITALIC | FONT_STYLE_OBLIQUE)));
|
||||
FontEntry *fe = GetFontEntry();
|
||||
PRBool isItalic;
|
||||
|
||||
isItalic = (GetStyle()->style & (FONT_STYLE_ITALIC | FONT_STYLE_OBLIQUE));
|
||||
PRUint16 weight = fe->Weight();
|
||||
|
||||
// if user font, disable italics/bold if defined to be italics/bold face
|
||||
// this avoids unwanted synthetic italics/bold
|
||||
if (fe->mUserFont) {
|
||||
if (fe->IsItalic())
|
||||
isItalic = PR_FALSE; // avoid synthetic italic
|
||||
if (fe->IsBold())
|
||||
weight = 400; // avoid synthetic bold
|
||||
}
|
||||
|
||||
FontEntry::FillLogFont(&mLogFont, fe->Name(), fe->mFontType, isItalic,
|
||||
weight, aSize);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -754,6 +754,7 @@ gfxFontEntry*
|
|||
gfxWindowsPlatform::LookupLocalFont(const gfxProxyFontEntry *aProxyEntry,
|
||||
const nsAString& aFontName)
|
||||
{
|
||||
#ifdef MOZ_FT2_FONTS
|
||||
// walk over list of names
|
||||
FullFontNameSearch data(aFontName);
|
||||
|
||||
|
@ -764,6 +765,9 @@ gfxWindowsPlatform::LookupLocalFont(const gfxProxyFontEntry *aProxyEntry,
|
|||
ReleaseDC(nsnull, data.mDC);
|
||||
|
||||
return data.mFontEntry;
|
||||
#else
|
||||
return FontEntry::LoadLocalFont(*aProxyEntry, aFontName);
|
||||
#endif
|
||||
}
|
||||
|
||||
gfxFontEntry*
|
||||
|
@ -771,8 +775,7 @@ gfxWindowsPlatform::MakePlatformFont(const gfxProxyFontEntry *aProxyEntry,
|
|||
nsISupports *aLoader,
|
||||
const PRUint8 *aFontData, PRUint32 aLength)
|
||||
{
|
||||
return FontEntry::CreateFontEntry(*aProxyEntry, aLoader,
|
||||
aFontData, aLength);
|
||||
return FontEntry::LoadFont(*aProxyEntry, aLoader, aFontData, aLength);
|
||||
}
|
||||
|
||||
PRBool
|
||||
|
|
|
@ -25,15 +25,18 @@ HTTP(..) == src-list-format-4.html src-list-format-1-ref.html
|
|||
HTTP(..) == src-list-format-5.html src-list-format-2-ref.html
|
||||
HTTP(..) == src-list-format-6.html src-list-format-3-ref.html
|
||||
# assumes AAT fonts are only supported on MacOS
|
||||
skip-if(MOZ_WIDGET_TOOLKIT=="cocoa") HTTP(..) == src-list-format-7.html src-list-format-2-ref.html
|
||||
skip-if(MOZ_WIDGET_TOOLKIT!="cocoa") HTTP(..) == src-list-format-7.html src-list-format-3-ref.html
|
||||
skip-if(MOZ_WIDGET_TOOLKIT=="windows") == src-list-local-full.html src-list-local-full-ref.html # bug 468387 (windows)
|
||||
skip-if(MOZ_WIDGET_TOOLKIT=="windows") == src-list-local-full-quotes.html src-list-local-full-ref.html # bug 468387 (windows)
|
||||
random-if(MOZ_WIDGET_TOOLKIT=="cocoa") HTTP(..) == src-list-format-7.html src-list-format-2-ref.html
|
||||
random-if(MOZ_WIDGET_TOOLKIT!="cocoa") HTTP(..) == src-list-format-7.html src-list-format-3-ref.html
|
||||
== src-list-local-full.html src-list-local-full-ref.html
|
||||
== src-list-local-full-quotes.html src-list-local-full-ref.html
|
||||
HTTP(..) == src-list-local-fallback.html src-list-local-fallback-ref.html
|
||||
|
||||
# localized full fontnames should *not* match, only English ones (need locale-invariant key)
|
||||
random-if(MOZ_WIDGET_TOOLKIT=="gtk2") HTTP(..) == src-list-local-localized.html src-list-local-localized-ref.html
|
||||
|
||||
# Postscript name lookup only supported on MacOS currently
|
||||
skip-if(MOZ_WIDGET_TOOLKIT!="cocoa") == src-list-local-ps.html src-list-local-full-ref.html
|
||||
skip-if(MOZ_WIDGET_TOOLKIT!="cocoa") == helveticaneue-ultra.html helveticaneue-ultra-ref.html
|
||||
random-if(MOZ_WIDGET_TOOLKIT!="cocoa") == src-list-local-ps.html src-list-local-full-ref.html
|
||||
random-if(MOZ_WIDGET_TOOLKIT!="cocoa") == helveticaneue-ultra.html helveticaneue-ultra-ref.html
|
||||
|
||||
# Arabic support requires AAT fonts under Mac OS, OpenType otherwise
|
||||
random-if(MOZ_WIDGET_TOOLKIT!="cocoa") HTTP(..) == src-format-arabic.html src-format-arabic-aat-ref.html
|
||||
|
@ -80,5 +83,5 @@ HTTP(..) == ahem-metrics-1.html ahem-metrics-1-ref.html
|
|||
HTTP(..) == ex-unit-1.html ex-unit-1-ref.html
|
||||
HTTP(..) == ex-unit-1-dynamic.html ex-unit-1-ref.html
|
||||
|
||||
fails-if(MOZ_WIDGET_TOOLKIT=="windows") == local-1.html local-1-ref.html # bug 468387
|
||||
fails-if(MOZ_WIDGET_TOOLKIT=="windows") HTTP(..) == synthetic-weight-style.html synthetic-weight-style-ref.html # bug 468387
|
||||
== local-1.html local-1-ref.html
|
||||
HTTP(..) == synthetic-weight-style.html synthetic-weight-style-ref.html
|
||||
|
|
|
@ -0,0 +1,378 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Localized fullnames</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: testbackup;
|
||||
src: url(../fonts/markA.ttf);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 50px;
|
||||
font-size: 18px;
|
||||
font-family: Futura, Helvetica, Calibri, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
table {
|
||||
font-family: testbackup, serif;
|
||||
border-collapse: collapse;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
td + td {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h4>The letter A should not appear below independent of locale:</h4>
|
||||
|
||||
<p>(Mouse over to see local name used)</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td class="test0">AA</td>
|
||||
<td class="test1">AA</td>
|
||||
<td class="test2">AA</td>
|
||||
<td class="test3">AA</td>
|
||||
<td class="test4">AA</td>
|
||||
<td class="test5">AA</td>
|
||||
<td class="test6">AA</td>
|
||||
<td class="test7">AA</td>
|
||||
<td class="test8">AA</td>
|
||||
<td class="test9">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test10">AA</td>
|
||||
<td class="test11">AA</td>
|
||||
<td class="test12">AA</td>
|
||||
<td class="test13">AA</td>
|
||||
<td class="test14">AA</td>
|
||||
<td class="test15">AA</td>
|
||||
<td class="test16">AA</td>
|
||||
<td class="test17">AA</td>
|
||||
<td class="test18">AA</td>
|
||||
<td class="test19">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test20">AA</td>
|
||||
<td class="test21">AA</td>
|
||||
<td class="test22">AA</td>
|
||||
<td class="test23">AA</td>
|
||||
<td class="test24">AA</td>
|
||||
<td class="test25">AA</td>
|
||||
<td class="test26">AA</td>
|
||||
<td class="test27">AA</td>
|
||||
<td class="test28">AA</td>
|
||||
<td class="test29">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test30">AA</td>
|
||||
<td class="test31">AA</td>
|
||||
<td class="test32">AA</td>
|
||||
<td class="test33">AA</td>
|
||||
<td class="test34">AA</td>
|
||||
<td class="test35">AA</td>
|
||||
<td class="test36">AA</td>
|
||||
<td class="test37">AA</td>
|
||||
<td class="test38">AA</td>
|
||||
<td class="test39">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test40">AA</td>
|
||||
<td class="test41">AA</td>
|
||||
<td class="test42">AA</td>
|
||||
<td class="test43">AA</td>
|
||||
<td class="test44">AA</td>
|
||||
<td class="test45">AA</td>
|
||||
<td class="test46">AA</td>
|
||||
<td class="test47">AA</td>
|
||||
<td class="test48">AA</td>
|
||||
<td class="test49">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test50">AA</td>
|
||||
<td class="test51">AA</td>
|
||||
<td class="test52">AA</td>
|
||||
<td class="test53">AA</td>
|
||||
<td class="test54">AA</td>
|
||||
<td class="test55">AA</td>
|
||||
<td class="test56">AA</td>
|
||||
<td class="test57">AA</td>
|
||||
<td class="test58">AA</td>
|
||||
<td class="test59">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test60">AA</td>
|
||||
<td class="test61">AA</td>
|
||||
<td class="test62">AA</td>
|
||||
<td class="test63">AA</td>
|
||||
<td class="test64">AA</td>
|
||||
<td class="test65">AA</td>
|
||||
<td class="test66">AA</td>
|
||||
<td class="test67">AA</td>
|
||||
<td class="test68">AA</td>
|
||||
<td class="test69">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test70">AA</td>
|
||||
<td class="test71">AA</td>
|
||||
<td class="test72">AA</td>
|
||||
<td class="test73">AA</td>
|
||||
<td class="test74">AA</td>
|
||||
<td class="test75">AA</td>
|
||||
<td class="test76">AA</td>
|
||||
<td class="test77">AA</td>
|
||||
<td class="test78">AA</td>
|
||||
<td class="test79">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test80">AA</td>
|
||||
<td class="test81">AA</td>
|
||||
<td class="test82">AA</td>
|
||||
<td class="test83">AA</td>
|
||||
<td class="test84">AA</td>
|
||||
<td class="test85">AA</td>
|
||||
<td class="test86">AA</td>
|
||||
<td class="test87">AA</td>
|
||||
<td class="test88">AA</td>
|
||||
<td class="test89">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test90">AA</td>
|
||||
<td class="test91">AA</td>
|
||||
<td class="test92">AA</td>
|
||||
<td class="test93">AA</td>
|
||||
<td class="test94">AA</td>
|
||||
<td class="test95">AA</td>
|
||||
<td class="test96">AA</td>
|
||||
<td class="test97">AA</td>
|
||||
<td class="test98">AA</td>
|
||||
<td class="test99">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test100">AA</td>
|
||||
<td class="test101">AA</td>
|
||||
<td class="test102">AA</td>
|
||||
<td class="test103">AA</td>
|
||||
<td class="test104">AA</td>
|
||||
<td class="test105">AA</td>
|
||||
<td class="test106">AA</td>
|
||||
<td class="test107">AA</td>
|
||||
<td class="test108">AA</td>
|
||||
<td class="test109">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test110">AA</td>
|
||||
<td class="test111">AA</td>
|
||||
<td class="test112">AA</td>
|
||||
<td class="test113">AA</td>
|
||||
<td class="test114">AA</td>
|
||||
<td class="test115">AA</td>
|
||||
<td class="test116">AA</td>
|
||||
<td class="test117">AA</td>
|
||||
<td class="test118">AA</td>
|
||||
<td class="test119">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test120">AA</td>
|
||||
<td class="test121">AA</td>
|
||||
<td class="test122">AA</td>
|
||||
<td class="test123">AA</td>
|
||||
<td class="test124">AA</td>
|
||||
<td class="test125">AA</td>
|
||||
<td class="test126">AA</td>
|
||||
<td class="test127">AA</td>
|
||||
<td class="test128">AA</td>
|
||||
<td class="test129">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test130">AA</td>
|
||||
<td class="test131">AA</td>
|
||||
<td class="test132">AA</td>
|
||||
<td class="test133">AA</td>
|
||||
<td class="test134">AA</td>
|
||||
<td class="test135">AA</td>
|
||||
<td class="test136">AA</td>
|
||||
<td class="test137">AA</td>
|
||||
<td class="test138">AA</td>
|
||||
<td class="test139">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test140">AA</td>
|
||||
<td class="test141">AA</td>
|
||||
<td class="test142">AA</td>
|
||||
<td class="test143">AA</td>
|
||||
<td class="test144">AA</td>
|
||||
<td class="test145">AA</td>
|
||||
<td class="test146">AA</td>
|
||||
<td class="test147">AA</td>
|
||||
<td class="test148">AA</td>
|
||||
<td class="test149">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test150">AA</td>
|
||||
<td class="test151">AA</td>
|
||||
<td class="test152">AA</td>
|
||||
<td class="test153">AA</td>
|
||||
<td class="test154">AA</td>
|
||||
<td class="test155">AA</td>
|
||||
<td class="test156">AA</td>
|
||||
<td class="test157">AA</td>
|
||||
<td class="test158">AA</td>
|
||||
<td class="test159">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test160">AA</td>
|
||||
<td class="test161">AA</td>
|
||||
<td class="test162">AA</td>
|
||||
<td class="test163">AA</td>
|
||||
<td class="test164">AA</td>
|
||||
<td class="test165">AA</td>
|
||||
<td class="test166">AA</td>
|
||||
<td class="test167">AA</td>
|
||||
<td class="test168">AA</td>
|
||||
<td class="test169">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test170">AA</td>
|
||||
<td class="test171">AA</td>
|
||||
<td class="test172">AA</td>
|
||||
<td class="test173">AA</td>
|
||||
<td class="test174">AA</td>
|
||||
<td class="test175">AA</td>
|
||||
<td class="test176">AA</td>
|
||||
<td class="test177">AA</td>
|
||||
<td class="test178">AA</td>
|
||||
<td class="test179">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test180">AA</td>
|
||||
<td class="test181">AA</td>
|
||||
<td class="test182">AA</td>
|
||||
<td class="test183">AA</td>
|
||||
<td class="test184">AA</td>
|
||||
<td class="test185">AA</td>
|
||||
<td class="test186">AA</td>
|
||||
<td class="test187">AA</td>
|
||||
<td class="test188">AA</td>
|
||||
<td class="test189">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test190">AA</td>
|
||||
<td class="test191">AA</td>
|
||||
<td class="test192">AA</td>
|
||||
<td class="test193">AA</td>
|
||||
<td class="test194">AA</td>
|
||||
<td class="test195">AA</td>
|
||||
<td class="test196">AA</td>
|
||||
<td class="test197">AA</td>
|
||||
<td class="test198">AA</td>
|
||||
<td class="test199">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test200">AA</td>
|
||||
<td class="test201">AA</td>
|
||||
<td class="test202">AA</td>
|
||||
<td class="test203">AA</td>
|
||||
<td class="test204">AA</td>
|
||||
<td class="test205">AA</td>
|
||||
<td class="test206">AA</td>
|
||||
<td class="test207">AA</td>
|
||||
<td class="test208">AA</td>
|
||||
<td class="test209">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test210">AA</td>
|
||||
<td class="test211">AA</td>
|
||||
<td class="test212">AA</td>
|
||||
<td class="test213">AA</td>
|
||||
<td class="test214">AA</td>
|
||||
<td class="test215">AA</td>
|
||||
<td class="test216">AA</td>
|
||||
<td class="test217">AA</td>
|
||||
<td class="test218">AA</td>
|
||||
<td class="test219">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test220">AA</td>
|
||||
<td class="test221">AA</td>
|
||||
<td class="test222">AA</td>
|
||||
<td class="test223">AA</td>
|
||||
<td class="test224">AA</td>
|
||||
<td class="test225">AA</td>
|
||||
<td class="test226">AA</td>
|
||||
<td class="test227">AA</td>
|
||||
<td class="test228">AA</td>
|
||||
<td class="test229">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test230">AA</td>
|
||||
<td class="test231">AA</td>
|
||||
<td class="test232">AA</td>
|
||||
<td class="test233">AA</td>
|
||||
<td class="test234">AA</td>
|
||||
<td class="test235">AA</td>
|
||||
<td class="test236">AA</td>
|
||||
<td class="test237">AA</td>
|
||||
<td class="test238">AA</td>
|
||||
<td class="test239">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test240">AA</td>
|
||||
<td class="test241">AA</td>
|
||||
<td class="test242">AA</td>
|
||||
<td class="test243">AA</td>
|
||||
<td class="test244">AA</td>
|
||||
<td class="test245">AA</td>
|
||||
<td class="test246">AA</td>
|
||||
<td class="test247">AA</td>
|
||||
<td class="test248">AA</td>
|
||||
<td class="test249">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test250">AA</td>
|
||||
<td class="test251">AA</td>
|
||||
<td class="test252">AA</td>
|
||||
<td class="test253">AA</td>
|
||||
<td class="test254">AA</td>
|
||||
<td class="test255">AA</td>
|
||||
<td class="test256">AA</td>
|
||||
<td class="test257">AA</td>
|
||||
<td class="test258">AA</td>
|
||||
<td class="test259">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test260">AA</td>
|
||||
<td class="test261">AA</td>
|
||||
<td class="test262">AA</td>
|
||||
<td class="test263">AA</td>
|
||||
<td class="test264">AA</td>
|
||||
<td class="test265">AA</td>
|
||||
<td class="test266">AA</td>
|
||||
<td class="test267">AA</td>
|
||||
<td class="test268">AA</td>
|
||||
<td class="test269">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test270">AA</td>
|
||||
<td class="test271">AA</td>
|
||||
<td class="test272">AA</td>
|
||||
<td class="test273">AA</td>
|
||||
<td class="test274">AA</td>
|
||||
<td class="test275">AA</td>
|
||||
<td class="test276">AA</td>
|
||||
<td class="test277">AA</td>
|
||||
<td class="test278">AA</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,939 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Localized fullnames</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
@font-face {
|
||||
font-family: testbackup;
|
||||
src: url(../fonts/markA.ttf);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 50px;
|
||||
font-size: 18px;
|
||||
font-family: Futura, Helvetica, Calibri, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
table {
|
||||
font-family: testbackup, serif;
|
||||
border-collapse: collapse;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
td + td {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<style type="text/css">
|
||||
@font-face { font-family: test0; src: local("#궁서체 일반체"); }
|
||||
.test0 { font-family: test0, testbackup; }
|
||||
@font-face { font-family: test1; src: local("#헤드라인A 일반체"); }
|
||||
.test1 { font-family: test1, testbackup; }
|
||||
@font-face { font-family: test2; src: local("AppleGothic 일반체"); }
|
||||
.test2 { font-family: test2, testbackup; }
|
||||
@font-face { font-family: test3; src: local("Arial Black Normal"); }
|
||||
.test3 { font-family: test3, testbackup; }
|
||||
@font-face { font-family: test4; src: local("Arial Black Standard"); }
|
||||
.test4 { font-family: test4, testbackup; }
|
||||
@font-face { font-family: test5; src: local("Arial Black normal"); }
|
||||
.test5 { font-family: test5, testbackup; }
|
||||
@font-face { font-family: test6; src: local("Arial Black obyčejné"); }
|
||||
.test6 { font-family: test6, testbackup; }
|
||||
@font-face { font-family: test7; src: local("Arial Black Обычный"); }
|
||||
.test7 { font-family: test7, testbackup; }
|
||||
@font-face { font-family: test8; src: local("Arial Black Κανονικά"); }
|
||||
.test8 { font-family: test8, testbackup; }
|
||||
@font-face { font-family: test9; src: local("Arial Corsivo"); }
|
||||
.test9 { font-family: test9, testbackup; }
|
||||
@font-face { font-family: test10; src: local("Arial Cursief"); }
|
||||
.test10 { font-family: test10, testbackup; }
|
||||
@font-face { font-family: test11; src: local("Arial Cursiva"); }
|
||||
.test11 { font-family: test11, testbackup; }
|
||||
@font-face { font-family: test12; src: local("Arial Dőlt"); }
|
||||
.test12 { font-family: test12, testbackup; }
|
||||
@font-face { font-family: test13; src: local("Arial Etzana"); }
|
||||
.test13 { font-family: test13, testbackup; }
|
||||
@font-face { font-family: test14; src: local("Arial Fet Kursiv"); }
|
||||
.test14 { font-family: test14, testbackup; }
|
||||
@font-face { font-family: test15; src: local("Arial Fet"); }
|
||||
.test15 { font-family: test15, testbackup; }
|
||||
@font-face { font-family: test16; src: local("Arial Fett Kursiv"); }
|
||||
.test16 { font-family: test16, testbackup; }
|
||||
@font-face { font-family: test17; src: local("Arial Fett"); }
|
||||
.test17 { font-family: test17, testbackup; }
|
||||
@font-face { font-family: test18; src: local("Arial Félkövér dőlt"); }
|
||||
.test18 { font-family: test18, testbackup; }
|
||||
@font-face { font-family: test19; src: local("Arial Félkövér"); }
|
||||
.test19 { font-family: test19, testbackup; }
|
||||
@font-face { font-family: test20; src: local("Arial Gras Italique"); }
|
||||
.test20 { font-family: test20, testbackup; }
|
||||
@font-face { font-family: test21; src: local("Arial Gras"); }
|
||||
.test21 { font-family: test21, testbackup; }
|
||||
@font-face { font-family: test22; src: local("Arial Grassetto Corsivo"); }
|
||||
.test22 { font-family: test22, testbackup; }
|
||||
@font-face { font-family: test23; src: local("Arial Grassetto"); }
|
||||
.test23 { font-family: test23, testbackup; }
|
||||
@font-face { font-family: test24; src: local("Arial Halvfet Kursiv"); }
|
||||
.test24 { font-family: test24, testbackup; }
|
||||
@font-face { font-family: test25; src: local("Arial Halvfet"); }
|
||||
.test25 { font-family: test25, testbackup; }
|
||||
@font-face { font-family: test26; src: local("Arial Italique"); }
|
||||
.test26 { font-family: test26, testbackup; }
|
||||
@font-face { font-family: test27; src: local("Arial Itálico"); }
|
||||
.test27 { font-family: test27, testbackup; }
|
||||
@font-face { font-family: test28; src: local("Arial Kalın İtalik"); }
|
||||
.test28 { font-family: test28, testbackup; }
|
||||
@font-face { font-family: test29; src: local("Arial Kalın"); }
|
||||
.test29 { font-family: test29, testbackup; }
|
||||
@font-face { font-family: test30; src: local("Arial Krepko poševno"); }
|
||||
.test30 { font-family: test30, testbackup; }
|
||||
@font-face { font-family: test31; src: local("Arial Krepko"); }
|
||||
.test31 { font-family: test31, testbackup; }
|
||||
@font-face { font-family: test32; src: local("Arial Kursiv"); }
|
||||
.test32 { font-family: test32, testbackup; }
|
||||
@font-face { font-family: test33; src: local("Arial Kursivoitu"); }
|
||||
.test33 { font-family: test33, testbackup; }
|
||||
@font-face { font-family: test34; src: local("Arial Kursywa"); }
|
||||
.test34 { font-family: test34, testbackup; }
|
||||
@font-face { font-family: test35; src: local("Arial Kurzíva"); }
|
||||
.test35 { font-family: test35, testbackup; }
|
||||
@font-face { font-family: test36; src: local("Arial Lihavoitu Kursivoi"); }
|
||||
.test36 { font-family: test36, testbackup; }
|
||||
@font-face { font-family: test37; src: local("Arial Lihavoitu"); }
|
||||
.test37 { font-family: test37, testbackup; }
|
||||
@font-face { font-family: test38; src: local("Arial Lodi etzana"); }
|
||||
.test38 { font-family: test38, testbackup; }
|
||||
@font-face { font-family: test39; src: local("Arial Lodia"); }
|
||||
.test39 { font-family: test39, testbackup; }
|
||||
@font-face { font-family: test40; src: local("Arial Negreta"); }
|
||||
.test40 { font-family: test40, testbackup; }
|
||||
@font-face { font-family: test41; src: local("Arial Negrita Cursiva"); }
|
||||
.test41 { font-family: test41, testbackup; }
|
||||
@font-face { font-family: test42; src: local("Arial Negrita"); }
|
||||
.test42 { font-family: test42, testbackup; }
|
||||
@font-face { font-family: test43; src: local("Arial Negrito Itálico"); }
|
||||
.test43 { font-family: test43, testbackup; }
|
||||
@font-face { font-family: test44; src: local("Arial Negrito"); }
|
||||
.test44 { font-family: test44, testbackup; }
|
||||
@font-face { font-family: test45; src: local("Arial Pogrubiona kursywa"); }
|
||||
.test45 { font-family: test45, testbackup; }
|
||||
@font-face { font-family: test46; src: local("Arial Pogrubiony"); }
|
||||
.test46 { font-family: test46, testbackup; }
|
||||
@font-face { font-family: test47; src: local("Arial Poševno"); }
|
||||
.test47 { font-family: test47, testbackup; }
|
||||
@font-face { font-family: test48; src: local("Arial Tučná kurzíva"); }
|
||||
.test48 { font-family: test48, testbackup; }
|
||||
@font-face { font-family: test49; src: local("Arial Tučné"); }
|
||||
.test49 { font-family: test49, testbackup; }
|
||||
@font-face { font-family: test50; src: local("Arial Vet Cursief"); }
|
||||
.test50 { font-family: test50, testbackup; }
|
||||
@font-face { font-family: test51; src: local("Arial Vet"); }
|
||||
.test51 { font-family: test51, testbackup; }
|
||||
@font-face { font-family: test52; src: local("Arial fed kursiv"); }
|
||||
.test52 { font-family: test52, testbackup; }
|
||||
@font-face { font-family: test53; src: local("Arial fed"); }
|
||||
.test53 { font-family: test53, testbackup; }
|
||||
@font-face { font-family: test54; src: local("Arial kursiv"); }
|
||||
.test54 { font-family: test54, testbackup; }
|
||||
@font-face { font-family: test55; src: local("Arial kurzíva"); }
|
||||
.test55 { font-family: test55, testbackup; }
|
||||
@font-face { font-family: test56; src: local("Arial nghiêng đậm"); }
|
||||
.test56 { font-family: test56, testbackup; }
|
||||
@font-face { font-family: test57; src: local("Arial nghiêng"); }
|
||||
.test57 { font-family: test57, testbackup; }
|
||||
@font-face { font-family: test58; src: local("Arial tučné kurzíva"); }
|
||||
.test58 { font-family: test58, testbackup; }
|
||||
@font-face { font-family: test59; src: local("Arial tučné"); }
|
||||
.test59 { font-family: test59, testbackup; }
|
||||
@font-face { font-family: test60; src: local("Arial İtalik"); }
|
||||
.test60 { font-family: test60, testbackup; }
|
||||
@font-face { font-family: test61; src: local("Arial đậm"); }
|
||||
.test61 { font-family: test61, testbackup; }
|
||||
@font-face { font-family: test62; src: local("Arial Έντονα Πλάγια"); }
|
||||
.test62 { font-family: test62, testbackup; }
|
||||
@font-face { font-family: test63; src: local("Arial Έντονα"); }
|
||||
.test63 { font-family: test63, testbackup; }
|
||||
@font-face { font-family: test64; src: local("Arial Πλάγια"); }
|
||||
.test64 { font-family: test64, testbackup; }
|
||||
@font-face { font-family: test65; src: local("Arial Курсив"); }
|
||||
.test65 { font-family: test65, testbackup; }
|
||||
@font-face { font-family: test66; src: local("Arial Полужирный Курсив"); }
|
||||
.test66 { font-family: test66, testbackup; }
|
||||
@font-face { font-family: test67; src: local("Arial Полужирный"); }
|
||||
.test67 { font-family: test67, testbackup; }
|
||||
@font-face { font-family: test68; src: local("Brush Script MT Πλάγια"); }
|
||||
.test68 { font-family: test68, testbackup; }
|
||||
@font-face { font-family: test69; src: local("Brush Script MT Курсив"); }
|
||||
.test69 { font-family: test69, testbackup; }
|
||||
@font-face { font-family: test70; src: local("Century Gothic Halvfet"); }
|
||||
.test70 { font-family: test70, testbackup; }
|
||||
@font-face { font-family: test71; src: local("Century Gothic Italique"); }
|
||||
.test71 { font-family: test71, testbackup; }
|
||||
@font-face { font-family: test72; src: local("Century Gothic Kalın"); }
|
||||
.test72 { font-family: test72, testbackup; }
|
||||
@font-face { font-family: test73; src: local("Century Gothic Krepko poševno"); }
|
||||
.test73 { font-family: test73, testbackup; }
|
||||
@font-face { font-family: test74; src: local("Century Gothic Krepko"); }
|
||||
.test74 { font-family: test74, testbackup; }
|
||||
@font-face { font-family: test75; src: local("Century Gothic Kursiv"); }
|
||||
.test75 { font-family: test75, testbackup; }
|
||||
@font-face { font-family: test76; src: local("Comic Sans MS Negreta"); }
|
||||
.test76 { font-family: test76, testbackup; }
|
||||
@font-face { font-family: test77; src: local("Comic Sans MS Έντονα"); }
|
||||
.test77 { font-family: test77, testbackup; }
|
||||
@font-face { font-family: test78; src: local("Courier Carregado"); }
|
||||
.test78 { font-family: test78, testbackup; }
|
||||
@font-face { font-family: test79; src: local("Courier Fet"); }
|
||||
.test79 { font-family: test79, testbackup; }
|
||||
@font-face { font-family: test80; src: local("Courier Fett"); }
|
||||
.test80 { font-family: test80, testbackup; }
|
||||
@font-face { font-family: test81; src: local("Courier Gras"); }
|
||||
.test81 { font-family: test81, testbackup; }
|
||||
@font-face { font-family: test82; src: local("Courier lihava"); }
|
||||
.test82 { font-family: test82, testbackup; }
|
||||
@font-face { font-family: test83; src: local("Courier vet"); }
|
||||
.test83 { font-family: test83, testbackup; }
|
||||
@font-face { font-family: test84; src: local("Courier עבה"); }
|
||||
.test84 { font-family: test84, testbackup; }
|
||||
@font-face { font-family: test85; src: local("Courier أسود"); }
|
||||
.test85 { font-family: test85, testbackup; }
|
||||
@font-face { font-family: test86; src: local("Courier برجسته"); }
|
||||
.test86 { font-family: test86, testbackup; }
|
||||
@font-face { font-family: test87; src: local("EucrosiaUPC Полужирный"); }
|
||||
.test87 { font-family: test87, testbackup; }
|
||||
@font-face { font-family: test88; src: local("Franklin Gothic Medium Kursiv"); }
|
||||
.test88 { font-family: test88, testbackup; }
|
||||
@font-face { font-family: test89; src: local("Garamond Kursywa"); }
|
||||
.test89 { font-family: test89, testbackup; }
|
||||
@font-face { font-family: test90; src: local("Garamond Kurzíva"); }
|
||||
.test90 { font-family: test90, testbackup; }
|
||||
@font-face { font-family: test91; src: local("Georgia Italique"); }
|
||||
.test91 { font-family: test91, testbackup; }
|
||||
@font-face { font-family: test92; src: local("Georgia Itálico"); }
|
||||
.test92 { font-family: test92, testbackup; }
|
||||
@font-face { font-family: test93; src: local("Georgia Kalın İtalik"); }
|
||||
.test93 { font-family: test93, testbackup; }
|
||||
@font-face { font-family: test94; src: local("HGP明朝B"); }
|
||||
.test94 { font-family: test94, testbackup; }
|
||||
@font-face { font-family: test95; src: local("HGP明朝E"); }
|
||||
.test95 { font-family: test95, testbackup; }
|
||||
@font-face { font-family: test96; src: local("HGPゴシックE"); }
|
||||
.test96 { font-family: test96, testbackup; }
|
||||
@font-face { font-family: test97; src: local("HGPゴシックM"); }
|
||||
.test97 { font-family: test97, testbackup; }
|
||||
@font-face { font-family: test98; src: local("HGP創英角ゴシックUB"); }
|
||||
.test98 { font-family: test98, testbackup; }
|
||||
@font-face { font-family: test99; src: local("HGS明朝B"); }
|
||||
.test99 { font-family: test99, testbackup; }
|
||||
@font-face { font-family: test100; src: local("HGS明朝E"); }
|
||||
.test100 { font-family: test100, testbackup; }
|
||||
@font-face { font-family: test101; src: local("HGS行書体"); }
|
||||
.test101 { font-family: test101, testbackup; }
|
||||
@font-face { font-family: test102; src: local("HGS教科書体"); }
|
||||
.test102 { font-family: test102, testbackup; }
|
||||
@font-face { font-family: test103; src: local("HGSゴシックE"); }
|
||||
.test103 { font-family: test103, testbackup; }
|
||||
@font-face { font-family: test104; src: local("HGSゴシックM"); }
|
||||
.test104 { font-family: test104, testbackup; }
|
||||
@font-face { font-family: test105; src: local("HGS創英プレゼンスEB"); }
|
||||
.test105 { font-family: test105, testbackup; }
|
||||
@font-face { font-family: test106; src: local("HG明朝B"); }
|
||||
.test106 { font-family: test106, testbackup; }
|
||||
@font-face { font-family: test107; src: local("HG正楷書体-PRO"); }
|
||||
.test107 { font-family: test107, testbackup; }
|
||||
@font-face { font-family: test108; src: local("HGゴシックE"); }
|
||||
.test108 { font-family: test108, testbackup; }
|
||||
@font-face { font-family: test109; src: local("HGゴシックM"); }
|
||||
.test109 { font-family: test109, testbackup; }
|
||||
@font-face { font-family: test110; src: local("HG丸ゴシックM-PRO"); }
|
||||
.test110 { font-family: test110, testbackup; }
|
||||
@font-face { font-family: test111; src: local("HG創英プレゼンスEB"); }
|
||||
.test111 { font-family: test111, testbackup; }
|
||||
@font-face { font-family: test112; src: local("Helvetica Carregado"); }
|
||||
.test112 { font-family: test112, testbackup; }
|
||||
@font-face { font-family: test113; src: local("Helvetica עבה"); }
|
||||
.test113 { font-family: test113, testbackup; }
|
||||
@font-face { font-family: test114; src: local("Helvetica أسود"); }
|
||||
.test114 { font-family: test114, testbackup; }
|
||||
@font-face { font-family: test115; src: local("Helvetica برجسته"); }
|
||||
.test115 { font-family: test115, testbackup; }
|
||||
@font-face { font-family: test116; src: local("Osaka−等幅"); }
|
||||
.test116 { font-family: test116, testbackup; }
|
||||
@font-face { font-family: test117; src: local("Thonburi Carregado"); }
|
||||
.test117 { font-family: test117, testbackup; }
|
||||
@font-face { font-family: test118; src: local("Thonburi Gras"); }
|
||||
.test118 { font-family: test118, testbackup; }
|
||||
@font-face { font-family: test119; src: local("Thonburi vet"); }
|
||||
.test119 { font-family: test119, testbackup; }
|
||||
@font-face { font-family: test120; src: local("Times Cursiva"); }
|
||||
.test120 { font-family: test120, testbackup; }
|
||||
@font-face { font-family: test121; src: local("Times Gras"); }
|
||||
.test121 { font-family: test121, testbackup; }
|
||||
@font-face { font-family: test122; src: local("Times Negrita"); }
|
||||
.test122 { font-family: test122, testbackup; }
|
||||
@font-face { font-family: test123; src: local("Times New Roman Corsivo"); }
|
||||
.test123 { font-family: test123, testbackup; }
|
||||
@font-face { font-family: test124; src: local("Times New Roman Cursief"); }
|
||||
.test124 { font-family: test124, testbackup; }
|
||||
@font-face { font-family: test125; src: local("Times New Roman Cursiva"); }
|
||||
.test125 { font-family: test125, testbackup; }
|
||||
@font-face { font-family: test126; src: local("Times New Roman Dőlt"); }
|
||||
.test126 { font-family: test126, testbackup; }
|
||||
@font-face { font-family: test127; src: local("Times New Roman Etzana"); }
|
||||
.test127 { font-family: test127, testbackup; }
|
||||
@font-face { font-family: test128; src: local("Times New Roman Fet Kursiv"); }
|
||||
.test128 { font-family: test128, testbackup; }
|
||||
@font-face { font-family: test129; src: local("Times New Roman Fet"); }
|
||||
.test129 { font-family: test129, testbackup; }
|
||||
@font-face { font-family: test130; src: local("Times New Roman Fett Kursiv"); }
|
||||
.test130 { font-family: test130, testbackup; }
|
||||
@font-face { font-family: test131; src: local("Times New Roman Fett"); }
|
||||
.test131 { font-family: test131, testbackup; }
|
||||
@font-face { font-family: test132; src: local("Times New Roman Félkövér dőlt"); }
|
||||
.test132 { font-family: test132, testbackup; }
|
||||
@font-face { font-family: test133; src: local("Times New Roman Félkövér"); }
|
||||
.test133 { font-family: test133, testbackup; }
|
||||
@font-face { font-family: test134; src: local("Times New Roman Gras Italique"); }
|
||||
.test134 { font-family: test134, testbackup; }
|
||||
@font-face { font-family: test135; src: local("Times New Roman Gras"); }
|
||||
.test135 { font-family: test135, testbackup; }
|
||||
@font-face { font-family: test136; src: local("Times New Roman Grassetto Corsivo"); }
|
||||
.test136 { font-family: test136, testbackup; }
|
||||
@font-face { font-family: test137; src: local("Times New Roman Grassetto"); }
|
||||
.test137 { font-family: test137, testbackup; }
|
||||
@font-face { font-family: test138; src: local("Times New Roman Halvfet Kursiv"); }
|
||||
.test138 { font-family: test138, testbackup; }
|
||||
@font-face { font-family: test139; src: local("Times New Roman Halvfet"); }
|
||||
.test139 { font-family: test139, testbackup; }
|
||||
@font-face { font-family: test140; src: local("Times New Roman Italique"); }
|
||||
.test140 { font-family: test140, testbackup; }
|
||||
@font-face { font-family: test141; src: local("Times New Roman Itálico"); }
|
||||
.test141 { font-family: test141, testbackup; }
|
||||
@font-face { font-family: test142; src: local("Times New Roman Kalın İtalik"); }
|
||||
.test142 { font-family: test142, testbackup; }
|
||||
@font-face { font-family: test143; src: local("Times New Roman Kalın"); }
|
||||
.test143 { font-family: test143, testbackup; }
|
||||
@font-face { font-family: test144; src: local("Times New Roman Krepko poševno"); }
|
||||
.test144 { font-family: test144, testbackup; }
|
||||
@font-face { font-family: test145; src: local("Times New Roman Krepko"); }
|
||||
.test145 { font-family: test145, testbackup; }
|
||||
@font-face { font-family: test146; src: local("Times New Roman Kursiv"); }
|
||||
.test146 { font-family: test146, testbackup; }
|
||||
@font-face { font-family: test147; src: local("Times New Roman Kursivoitu"); }
|
||||
.test147 { font-family: test147, testbackup; }
|
||||
@font-face { font-family: test148; src: local("Times New Roman Kurzíva"); }
|
||||
.test148 { font-family: test148, testbackup; }
|
||||
@font-face { font-family: test149; src: local("Times New Roman Lihavoitu Kursivoi"); }
|
||||
.test149 { font-family: test149, testbackup; }
|
||||
@font-face { font-family: test150; src: local("Times New Roman Lihavoitu"); }
|
||||
.test150 { font-family: test150, testbackup; }
|
||||
@font-face { font-family: test151; src: local("Times New Roman Lodi etzana"); }
|
||||
.test151 { font-family: test151, testbackup; }
|
||||
@font-face { font-family: test152; src: local("Times New Roman Lodia"); }
|
||||
.test152 { font-family: test152, testbackup; }
|
||||
@font-face { font-family: test153; src: local("Times New Roman Negreta cursiva"); }
|
||||
.test153 { font-family: test153, testbackup; }
|
||||
@font-face { font-family: test154; src: local("Times New Roman Negreta"); }
|
||||
.test154 { font-family: test154, testbackup; }
|
||||
@font-face { font-family: test155; src: local("Times New Roman Negrita Cursiva"); }
|
||||
.test155 { font-family: test155, testbackup; }
|
||||
@font-face { font-family: test156; src: local("Times New Roman Negrita"); }
|
||||
.test156 { font-family: test156, testbackup; }
|
||||
@font-face { font-family: test157; src: local("Times New Roman Negrito Itálico"); }
|
||||
.test157 { font-family: test157, testbackup; }
|
||||
@font-face { font-family: test158; src: local("Times New Roman Negrito"); }
|
||||
.test158 { font-family: test158, testbackup; }
|
||||
@font-face { font-family: test159; src: local("Times New Roman Pogrubiona kursywa"); }
|
||||
.test159 { font-family: test159, testbackup; }
|
||||
@font-face { font-family: test160; src: local("Times New Roman Pogrubiona"); }
|
||||
.test160 { font-family: test160, testbackup; }
|
||||
@font-face { font-family: test161; src: local("Times New Roman Poševno"); }
|
||||
.test161 { font-family: test161, testbackup; }
|
||||
@font-face { font-family: test162; src: local("Times New Roman Tučná kurzíva"); }
|
||||
.test162 { font-family: test162, testbackup; }
|
||||
@font-face { font-family: test163; src: local("Times New Roman Tučné"); }
|
||||
.test163 { font-family: test163, testbackup; }
|
||||
@font-face { font-family: test164; src: local("Times New Roman Vet Cursief"); }
|
||||
.test164 { font-family: test164, testbackup; }
|
||||
@font-face { font-family: test165; src: local("Times New Roman Vet"); }
|
||||
.test165 { font-family: test165, testbackup; }
|
||||
@font-face { font-family: test166; src: local("Times New Roman cursiva"); }
|
||||
.test166 { font-family: test166, testbackup; }
|
||||
@font-face { font-family: test167; src: local("Times New Roman fed kursiv"); }
|
||||
.test167 { font-family: test167, testbackup; }
|
||||
@font-face { font-family: test168; src: local("Times New Roman fed"); }
|
||||
.test168 { font-family: test168, testbackup; }
|
||||
@font-face { font-family: test169; src: local("Times New Roman kursiv"); }
|
||||
.test169 { font-family: test169, testbackup; }
|
||||
@font-face { font-family: test170; src: local("Times New Roman kursywa"); }
|
||||
.test170 { font-family: test170, testbackup; }
|
||||
@font-face { font-family: test171; src: local("Times New Roman kurzíva"); }
|
||||
.test171 { font-family: test171, testbackup; }
|
||||
@font-face { font-family: test172; src: local("Times New Roman nghiêng đậm"); }
|
||||
.test172 { font-family: test172, testbackup; }
|
||||
@font-face { font-family: test173; src: local("Times New Roman nghiêng"); }
|
||||
.test173 { font-family: test173, testbackup; }
|
||||
@font-face { font-family: test174; src: local("Times New Roman tučné kurzíva"); }
|
||||
.test174 { font-family: test174, testbackup; }
|
||||
@font-face { font-family: test175; src: local("Times New Roman tučné"); }
|
||||
.test175 { font-family: test175, testbackup; }
|
||||
@font-face { font-family: test176; src: local("Times New Roman İtalik"); }
|
||||
.test176 { font-family: test176, testbackup; }
|
||||
@font-face { font-family: test177; src: local("Times New Roman đậm"); }
|
||||
.test177 { font-family: test177, testbackup; }
|
||||
@font-face { font-family: test178; src: local("Times New Roman Έντονα Πλάγια"); }
|
||||
.test178 { font-family: test178, testbackup; }
|
||||
@font-face { font-family: test179; src: local("Times New Roman Έντονα"); }
|
||||
.test179 { font-family: test179, testbackup; }
|
||||
@font-face { font-family: test180; src: local("Times New Roman Πλάγια"); }
|
||||
.test180 { font-family: test180, testbackup; }
|
||||
@font-face { font-family: test181; src: local("Times New Roman Курсив"); }
|
||||
.test181 { font-family: test181, testbackup; }
|
||||
@font-face { font-family: test182; src: local("Times New Roman Полужирный Курсив"); }
|
||||
.test182 { font-family: test182, testbackup; }
|
||||
@font-face { font-family: test183; src: local("Times New Roman Полужирный"); }
|
||||
.test183 { font-family: test183, testbackup; }
|
||||
@font-face { font-family: test184; src: local("Times grassetto"); }
|
||||
.test184 { font-family: test184, testbackup; }
|
||||
@font-face { font-family: test185; src: local("Verdana Corsivo"); }
|
||||
.test185 { font-family: test185, testbackup; }
|
||||
@font-face { font-family: test186; src: local("Verdana Cursief"); }
|
||||
.test186 { font-family: test186, testbackup; }
|
||||
@font-face { font-family: test187; src: local("Verdana Cursiva"); }
|
||||
.test187 { font-family: test187, testbackup; }
|
||||
@font-face { font-family: test188; src: local("Verdana Dőlt"); }
|
||||
.test188 { font-family: test188, testbackup; }
|
||||
@font-face { font-family: test189; src: local("Verdana Etzana"); }
|
||||
.test189 { font-family: test189, testbackup; }
|
||||
@font-face { font-family: test190; src: local("Verdana Fet Kursiv"); }
|
||||
.test190 { font-family: test190, testbackup; }
|
||||
@font-face { font-family: test191; src: local("Verdana Fet"); }
|
||||
.test191 { font-family: test191, testbackup; }
|
||||
@font-face { font-family: test192; src: local("Verdana Fett Kursiv"); }
|
||||
.test192 { font-family: test192, testbackup; }
|
||||
@font-face { font-family: test193; src: local("Verdana Fett"); }
|
||||
.test193 { font-family: test193, testbackup; }
|
||||
@font-face { font-family: test194; src: local("Verdana Félkövér dőlt"); }
|
||||
.test194 { font-family: test194, testbackup; }
|
||||
@font-face { font-family: test195; src: local("Verdana Félkövér"); }
|
||||
.test195 { font-family: test195, testbackup; }
|
||||
@font-face { font-family: test196; src: local("Verdana Gras Italique"); }
|
||||
.test196 { font-family: test196, testbackup; }
|
||||
@font-face { font-family: test197; src: local("Verdana Gras"); }
|
||||
.test197 { font-family: test197, testbackup; }
|
||||
@font-face { font-family: test198; src: local("Verdana Grassetto Corsivo"); }
|
||||
.test198 { font-family: test198, testbackup; }
|
||||
@font-face { font-family: test199; src: local("Verdana Grassetto"); }
|
||||
.test199 { font-family: test199, testbackup; }
|
||||
@font-face { font-family: test200; src: local("Verdana Halvfet Kursiv"); }
|
||||
.test200 { font-family: test200, testbackup; }
|
||||
@font-face { font-family: test201; src: local("Verdana Halvfet"); }
|
||||
.test201 { font-family: test201, testbackup; }
|
||||
@font-face { font-family: test202; src: local("Verdana Italique"); }
|
||||
.test202 { font-family: test202, testbackup; }
|
||||
@font-face { font-family: test203; src: local("Verdana Itálico"); }
|
||||
.test203 { font-family: test203, testbackup; }
|
||||
@font-face { font-family: test204; src: local("Verdana Kalın İtalik"); }
|
||||
.test204 { font-family: test204, testbackup; }
|
||||
@font-face { font-family: test205; src: local("Verdana Kalın"); }
|
||||
.test205 { font-family: test205, testbackup; }
|
||||
@font-face { font-family: test206; src: local("Verdana Krepko poševno"); }
|
||||
.test206 { font-family: test206, testbackup; }
|
||||
@font-face { font-family: test207; src: local("Verdana Krepko"); }
|
||||
.test207 { font-family: test207, testbackup; }
|
||||
@font-face { font-family: test208; src: local("Verdana Kursiv"); }
|
||||
.test208 { font-family: test208, testbackup; }
|
||||
@font-face { font-family: test209; src: local("Verdana Kursivoitu"); }
|
||||
.test209 { font-family: test209, testbackup; }
|
||||
@font-face { font-family: test210; src: local("Verdana Kursywa"); }
|
||||
.test210 { font-family: test210, testbackup; }
|
||||
@font-face { font-family: test211; src: local("Verdana Kurzíva"); }
|
||||
.test211 { font-family: test211, testbackup; }
|
||||
@font-face { font-family: test212; src: local("Verdana Lihavoitu Kursivoi"); }
|
||||
.test212 { font-family: test212, testbackup; }
|
||||
@font-face { font-family: test213; src: local("Verdana Lihavoitu"); }
|
||||
.test213 { font-family: test213, testbackup; }
|
||||
@font-face { font-family: test214; src: local("Verdana Lodi etzana"); }
|
||||
.test214 { font-family: test214, testbackup; }
|
||||
@font-face { font-family: test215; src: local("Verdana Lodia"); }
|
||||
.test215 { font-family: test215, testbackup; }
|
||||
@font-face { font-family: test216; src: local("Verdana Negreta cursiva"); }
|
||||
.test216 { font-family: test216, testbackup; }
|
||||
@font-face { font-family: test217; src: local("Verdana Negreta"); }
|
||||
.test217 { font-family: test217, testbackup; }
|
||||
@font-face { font-family: test218; src: local("Verdana Negrita Cursiva"); }
|
||||
.test218 { font-family: test218, testbackup; }
|
||||
@font-face { font-family: test219; src: local("Verdana Negrita"); }
|
||||
.test219 { font-family: test219, testbackup; }
|
||||
@font-face { font-family: test220; src: local("Verdana Negrito Itálico"); }
|
||||
.test220 { font-family: test220, testbackup; }
|
||||
@font-face { font-family: test221; src: local("Verdana Negrito"); }
|
||||
.test221 { font-family: test221, testbackup; }
|
||||
@font-face { font-family: test222; src: local("Verdana Pogrubiona kursywa"); }
|
||||
.test222 { font-family: test222, testbackup; }
|
||||
@font-face { font-family: test223; src: local("Verdana Pogrubiony"); }
|
||||
.test223 { font-family: test223, testbackup; }
|
||||
@font-face { font-family: test224; src: local("Verdana Poševno"); }
|
||||
.test224 { font-family: test224, testbackup; }
|
||||
@font-face { font-family: test225; src: local("Verdana Tučná kurzíva"); }
|
||||
.test225 { font-family: test225, testbackup; }
|
||||
@font-face { font-family: test226; src: local("Verdana Tučné"); }
|
||||
.test226 { font-family: test226, testbackup; }
|
||||
@font-face { font-family: test227; src: local("Verdana Vet Cursief"); }
|
||||
.test227 { font-family: test227, testbackup; }
|
||||
@font-face { font-family: test228; src: local("Verdana Vet"); }
|
||||
.test228 { font-family: test228, testbackup; }
|
||||
@font-face { font-family: test229; src: local("Verdana fed kursiv"); }
|
||||
.test229 { font-family: test229, testbackup; }
|
||||
@font-face { font-family: test230; src: local("Verdana fed"); }
|
||||
.test230 { font-family: test230, testbackup; }
|
||||
@font-face { font-family: test231; src: local("Verdana kursiv"); }
|
||||
.test231 { font-family: test231, testbackup; }
|
||||
@font-face { font-family: test232; src: local("Verdana kurzíva"); }
|
||||
.test232 { font-family: test232, testbackup; }
|
||||
@font-face { font-family: test233; src: local("Verdana tučné kurzíva"); }
|
||||
.test233 { font-family: test233, testbackup; }
|
||||
@font-face { font-family: test234; src: local("Verdana tučné"); }
|
||||
.test234 { font-family: test234, testbackup; }
|
||||
@font-face { font-family: test235; src: local("Verdana İtalik"); }
|
||||
.test235 { font-family: test235, testbackup; }
|
||||
@font-face { font-family: test236; src: local("Verdana Έντονα Πλάγια"); }
|
||||
.test236 { font-family: test236, testbackup; }
|
||||
@font-face { font-family: test237; src: local("Verdana Έντονα"); }
|
||||
.test237 { font-family: test237, testbackup; }
|
||||
@font-face { font-family: test238; src: local("Verdana Πλάγια"); }
|
||||
.test238 { font-family: test238, testbackup; }
|
||||
@font-face { font-family: test239; src: local("Verdana Курсив"); }
|
||||
.test239 { font-family: test239, testbackup; }
|
||||
@font-face { font-family: test240; src: local("Verdana Полужирный Курсив"); }
|
||||
.test240 { font-family: test240, testbackup; }
|
||||
@font-face { font-family: test241; src: local("Verdana Полужирный"); }
|
||||
.test241 { font-family: test241, testbackup; }
|
||||
@font-face { font-family: test242; src: local("儷宋 Pro"); }
|
||||
.test242 { font-family: test242, testbackup; }
|
||||
@font-face { font-family: test243; src: local("儷黑 Pro"); }
|
||||
.test243 { font-family: test243, testbackup; }
|
||||
@font-face { font-family: test244; src: local("MS 明朝"); }
|
||||
.test244 { font-family: test244, testbackup; }
|
||||
@font-face { font-family: test245; src: local("MS P明朝"); }
|
||||
.test245 { font-family: test245, testbackup; }
|
||||
@font-face { font-family: test246; src: local("MS ゴシック"); }
|
||||
.test246 { font-family: test246, testbackup; }
|
||||
@font-face { font-family: test247; src: local("MS Pゴシック"); }
|
||||
.test247 { font-family: test247, testbackup; }
|
||||
@font-face { font-family: test248; src: local("仿宋"); }
|
||||
.test248 { font-family: test248, testbackup; }
|
||||
@font-face { font-family: test249; src: local("楷体"); }
|
||||
.test249 { font-family: test249, testbackup; }
|
||||
@font-face { font-family: test250; src: local("굴림"); }
|
||||
.test250 { font-family: test250, testbackup; }
|
||||
@font-face { font-family: test251; src: local("궁서"); }
|
||||
.test251 { font-family: test251, testbackup; }
|
||||
@font-face { font-family: test252; src: local("돋움"); }
|
||||
.test252 { font-family: test252, testbackup; }
|
||||
@font-face { font-family: test253; src: local("바탕"); }
|
||||
.test253 { font-family: test253, testbackup; }
|
||||
@font-face { font-family: test254; src: local("標楷體"); }
|
||||
.test254 { font-family: test254, testbackup; }
|
||||
@font-face { font-family: test255; src: local("細明體"); }
|
||||
.test255 { font-family: test255, testbackup; }
|
||||
@font-face { font-family: test256; src: local("굴림체"); }
|
||||
.test256 { font-family: test256, testbackup; }
|
||||
@font-face { font-family: test257; src: local("바탕체"); }
|
||||
.test257 { font-family: test257, testbackup; }
|
||||
@font-face { font-family: test258; src: local("細明體-ExtB"); }
|
||||
.test258 { font-family: test258, testbackup; }
|
||||
@font-face { font-family: test259; src: local("細明體_HKSCS"); }
|
||||
.test259 { font-family: test259, testbackup; }
|
||||
@font-face { font-family: test260; src: local("メイリオ ボールド イタリック"); }
|
||||
.test260 { font-family: test260, testbackup; }
|
||||
@font-face { font-family: test261; src: local("メイリオ ボールド"); }
|
||||
.test261 { font-family: test261, testbackup; }
|
||||
@font-face { font-family: test262; src: local("メイリオ"); }
|
||||
.test262 { font-family: test262, testbackup; }
|
||||
@font-face { font-family: test263; src: local("华文仿宋"); }
|
||||
.test263 { font-family: test263, testbackup; }
|
||||
@font-face { font-family: test264; src: local("华文细黑"); }
|
||||
.test264 { font-family: test264, testbackup; }
|
||||
@font-face { font-family: test265; src: local("华文黑体"); }
|
||||
.test265 { font-family: test265, testbackup; }
|
||||
@font-face { font-family: test266; src: local("微软雅黑"); }
|
||||
.test266 { font-family: test266, testbackup; }
|
||||
@font-face { font-family: test267; src: local("新細明體"); }
|
||||
.test267 { font-family: test267, testbackup; }
|
||||
@font-face { font-family: test268; src: local("新細明體-ExtB"); }
|
||||
.test268 { font-family: test268, testbackup; }
|
||||
@font-face { font-family: test269; src: local("微軟正黑體 Bold"); }
|
||||
.test269 { font-family: test269, testbackup; }
|
||||
@font-face { font-family: test270; src: local("רעננה"); }
|
||||
.test270 { font-family: test270, testbackup; }
|
||||
@font-face { font-family: test271; src: local("微軟正黑體"); }
|
||||
.test271 { font-family: test271, testbackup; }
|
||||
@font-face { font-family: test272; src: local("蘋果儷中黑"); }
|
||||
.test272 { font-family: test272, testbackup; }
|
||||
@font-face { font-family: test273; src: local("蘋果儷細宋"); }
|
||||
.test273 { font-family: test273, testbackup; }
|
||||
@font-face { font-family: test274; src: local("ヒラギノ角ゴ Pro W3"); }
|
||||
.test274 { font-family: test274, testbackup; }
|
||||
@font-face { font-family: test275; src: local("ヒラギノ丸ゴ Pro W4"); }
|
||||
.test275 { font-family: test275, testbackup; }
|
||||
@font-face { font-family: test276; src: local("ヒラギノ明朝 Pro W6"); }
|
||||
.test276 { font-family: test276, testbackup; }
|
||||
@font-face { font-family: test277; src: local("ヒラギノ丸ゴ ProN W4"); }
|
||||
.test277 { font-family: test277, testbackup; }
|
||||
@font-face { font-family: test278; src: local("רעננה Bold"); }
|
||||
.test278 { font-family: test278, testbackup; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h4>The letter A should not appear below independent of locale:</h4>
|
||||
|
||||
<p>(Mouse over to see local name used)</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td class="test0" title="#궁서체 일반체">AA</td>
|
||||
<td class="test1" title="#헤드라인A 일반체">AA</td>
|
||||
<td class="test2" title="AppleGothic 일반체">AA</td>
|
||||
<td class="test3" title="Arial Black Normal">AA</td>
|
||||
<td class="test4" title="Arial Black Standard">AA</td>
|
||||
<td class="test5" title="Arial Black normal">AA</td>
|
||||
<td class="test6" title="Arial Black obyčejné">AA</td>
|
||||
<td class="test7" title="Arial Black Обычный">AA</td>
|
||||
<td class="test8" title="Arial Black Κανονικά">AA</td>
|
||||
<td class="test9" title="Arial Corsivo">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test10" title="Arial Cursief">AA</td>
|
||||
<td class="test11" title="Arial Cursiva">AA</td>
|
||||
<td class="test12" title="Arial Dőlt">AA</td>
|
||||
<td class="test13" title="Arial Etzana">AA</td>
|
||||
<td class="test14" title="Arial Fet Kursiv">AA</td>
|
||||
<td class="test15" title="Arial Fet">AA</td>
|
||||
<td class="test16" title="Arial Fett Kursiv">AA</td>
|
||||
<td class="test17" title="Arial Fett">AA</td>
|
||||
<td class="test18" title="Arial Félkövér dőlt">AA</td>
|
||||
<td class="test19" title="Arial Félkövér">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test20" title="Arial Gras Italique">AA</td>
|
||||
<td class="test21" title="Arial Gras">AA</td>
|
||||
<td class="test22" title="Arial Grassetto Corsivo">AA</td>
|
||||
<td class="test23" title="Arial Grassetto">AA</td>
|
||||
<td class="test24" title="Arial Halvfet Kursiv">AA</td>
|
||||
<td class="test25" title="Arial Halvfet">AA</td>
|
||||
<td class="test26" title="Arial Italique">AA</td>
|
||||
<td class="test27" title="Arial Itálico">AA</td>
|
||||
<td class="test28" title="Arial Kalın İtalik">AA</td>
|
||||
<td class="test29" title="Arial Kalın">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test30" title="Arial Krepko poševno">AA</td>
|
||||
<td class="test31" title="Arial Krepko">AA</td>
|
||||
<td class="test32" title="Arial Kursiv">AA</td>
|
||||
<td class="test33" title="Arial Kursivoitu">AA</td>
|
||||
<td class="test34" title="Arial Kursywa">AA</td>
|
||||
<td class="test35" title="Arial Kurzíva">AA</td>
|
||||
<td class="test36" title="Arial Lihavoitu Kursivoi">AA</td>
|
||||
<td class="test37" title="Arial Lihavoitu">AA</td>
|
||||
<td class="test38" title="Arial Lodi etzana">AA</td>
|
||||
<td class="test39" title="Arial Lodia">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test40" title="Arial Negreta">AA</td>
|
||||
<td class="test41" title="Arial Negrita Cursiva">AA</td>
|
||||
<td class="test42" title="Arial Negrita">AA</td>
|
||||
<td class="test43" title="Arial Negrito Itálico">AA</td>
|
||||
<td class="test44" title="Arial Negrito">AA</td>
|
||||
<td class="test45" title="Arial Pogrubiona kursywa">AA</td>
|
||||
<td class="test46" title="Arial Pogrubiony">AA</td>
|
||||
<td class="test47" title="Arial Poševno">AA</td>
|
||||
<td class="test48" title="Arial Tučná kurzíva">AA</td>
|
||||
<td class="test49" title="Arial Tučné">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test50" title="Arial Vet Cursief">AA</td>
|
||||
<td class="test51" title="Arial Vet">AA</td>
|
||||
<td class="test52" title="Arial fed kursiv">AA</td>
|
||||
<td class="test53" title="Arial fed">AA</td>
|
||||
<td class="test54" title="Arial kursiv">AA</td>
|
||||
<td class="test55" title="Arial kurzíva">AA</td>
|
||||
<td class="test56" title="Arial nghiêng đậm">AA</td>
|
||||
<td class="test57" title="Arial nghiêng">AA</td>
|
||||
<td class="test58" title="Arial tučné kurzíva">AA</td>
|
||||
<td class="test59" title="Arial tučné">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test60" title="Arial İtalik">AA</td>
|
||||
<td class="test61" title="Arial đậm">AA</td>
|
||||
<td class="test62" title="Arial Έντονα Πλάγια">AA</td>
|
||||
<td class="test63" title="Arial Έντονα">AA</td>
|
||||
<td class="test64" title="Arial Πλάγια">AA</td>
|
||||
<td class="test65" title="Arial Курсив">AA</td>
|
||||
<td class="test66" title="Arial Полужирный Курсив">AA</td>
|
||||
<td class="test67" title="Arial Полужирный">AA</td>
|
||||
<td class="test68" title="Brush Script MT Πλάγια">AA</td>
|
||||
<td class="test69" title="Brush Script MT Курсив">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test70" title="Century Gothic Halvfet">AA</td>
|
||||
<td class="test71" title="Century Gothic Italique">AA</td>
|
||||
<td class="test72" title="Century Gothic Kalın">AA</td>
|
||||
<td class="test73" title="Century Gothic Krepko poševno">AA</td>
|
||||
<td class="test74" title="Century Gothic Krepko">AA</td>
|
||||
<td class="test75" title="Century Gothic Kursiv">AA</td>
|
||||
<td class="test76" title="Comic Sans MS Negreta">AA</td>
|
||||
<td class="test77" title="Comic Sans MS Έντονα">AA</td>
|
||||
<td class="test78" title="Courier Carregado">AA</td>
|
||||
<td class="test79" title="Courier Fet">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test80" title="Courier Fett">AA</td>
|
||||
<td class="test81" title="Courier Gras">AA</td>
|
||||
<td class="test82" title="Courier lihava">AA</td>
|
||||
<td class="test83" title="Courier vet">AA</td>
|
||||
<td class="test84" title="Courier עבה">AA</td>
|
||||
<td class="test85" title="Courier أسود">AA</td>
|
||||
<td class="test86" title="Courier برجسته">AA</td>
|
||||
<td class="test87" title="EucrosiaUPC Полужирный">AA</td>
|
||||
<td class="test88" title="Franklin Gothic Medium Kursiv">AA</td>
|
||||
<td class="test89" title="Garamond Kursywa">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test90" title="Garamond Kurzíva">AA</td>
|
||||
<td class="test91" title="Georgia Italique">AA</td>
|
||||
<td class="test92" title="Georgia Itálico">AA</td>
|
||||
<td class="test93" title="Georgia Kalın İtalik">AA</td>
|
||||
<td class="test94" title="HGP明朝B">AA</td>
|
||||
<td class="test95" title="HGP明朝E">AA</td>
|
||||
<td class="test96" title="HGPゴシックE">AA</td>
|
||||
<td class="test97" title="HGPゴシックM">AA</td>
|
||||
<td class="test98" title="HGP創英角ゴシックUB">AA</td>
|
||||
<td class="test99" title="HGS明朝B">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test100" title="HGS明朝E">AA</td>
|
||||
<td class="test101" title="HGS行書体">AA</td>
|
||||
<td class="test102" title="HGS教科書体">AA</td>
|
||||
<td class="test103" title="HGSゴシックE">AA</td>
|
||||
<td class="test104" title="HGSゴシックM">AA</td>
|
||||
<td class="test105" title="HGS創英プレゼンスEB">AA</td>
|
||||
<td class="test106" title="HG明朝B">AA</td>
|
||||
<td class="test107" title="HG正楷書体-PRO">AA</td>
|
||||
<td class="test108" title="HGゴシックE">AA</td>
|
||||
<td class="test109" title="HGゴシックM">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test110" title="HG丸ゴシックM-PRO">AA</td>
|
||||
<td class="test111" title="HG創英プレゼンスEB">AA</td>
|
||||
<td class="test112" title="Helvetica Carregado">AA</td>
|
||||
<td class="test113" title="Helvetica עבה">AA</td>
|
||||
<td class="test114" title="Helvetica أسود">AA</td>
|
||||
<td class="test115" title="Helvetica برجسته">AA</td>
|
||||
<td class="test116" title="Osaka−等幅">AA</td>
|
||||
<td class="test117" title="Thonburi Carregado">AA</td>
|
||||
<td class="test118" title="Thonburi Gras">AA</td>
|
||||
<td class="test119" title="Thonburi vet">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test120" title="Times Cursiva">AA</td>
|
||||
<td class="test121" title="Times Gras">AA</td>
|
||||
<td class="test122" title="Times Negrita">AA</td>
|
||||
<td class="test123" title="Times New Roman Corsivo">AA</td>
|
||||
<td class="test124" title="Times New Roman Cursief">AA</td>
|
||||
<td class="test125" title="Times New Roman Cursiva">AA</td>
|
||||
<td class="test126" title="Times New Roman Dőlt">AA</td>
|
||||
<td class="test127" title="Times New Roman Etzana">AA</td>
|
||||
<td class="test128" title="Times New Roman Fet Kursiv">AA</td>
|
||||
<td class="test129" title="Times New Roman Fet">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test130" title="Times New Roman Fett Kursiv">AA</td>
|
||||
<td class="test131" title="Times New Roman Fett">AA</td>
|
||||
<td class="test132" title="Times New Roman Félkövér dőlt">AA</td>
|
||||
<td class="test133" title="Times New Roman Félkövér">AA</td>
|
||||
<td class="test134" title="Times New Roman Gras Italique">AA</td>
|
||||
<td class="test135" title="Times New Roman Gras">AA</td>
|
||||
<td class="test136" title="Times New Roman Grassetto Corsivo">AA</td>
|
||||
<td class="test137" title="Times New Roman Grassetto">AA</td>
|
||||
<td class="test138" title="Times New Roman Halvfet Kursiv">AA</td>
|
||||
<td class="test139" title="Times New Roman Halvfet">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test140" title="Times New Roman Italique">AA</td>
|
||||
<td class="test141" title="Times New Roman Itálico">AA</td>
|
||||
<td class="test142" title="Times New Roman Kalın İtalik">AA</td>
|
||||
<td class="test143" title="Times New Roman Kalın">AA</td>
|
||||
<td class="test144" title="Times New Roman Krepko poševno">AA</td>
|
||||
<td class="test145" title="Times New Roman Krepko">AA</td>
|
||||
<td class="test146" title="Times New Roman Kursiv">AA</td>
|
||||
<td class="test147" title="Times New Roman Kursivoitu">AA</td>
|
||||
<td class="test148" title="Times New Roman Kurzíva">AA</td>
|
||||
<td class="test149" title="Times New Roman Lihavoitu Kursivoi">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test150" title="Times New Roman Lihavoitu">AA</td>
|
||||
<td class="test151" title="Times New Roman Lodi etzana">AA</td>
|
||||
<td class="test152" title="Times New Roman Lodia">AA</td>
|
||||
<td class="test153" title="Times New Roman Negreta cursiva">AA</td>
|
||||
<td class="test154" title="Times New Roman Negreta">AA</td>
|
||||
<td class="test155" title="Times New Roman Negrita Cursiva">AA</td>
|
||||
<td class="test156" title="Times New Roman Negrita">AA</td>
|
||||
<td class="test157" title="Times New Roman Negrito Itálico">AA</td>
|
||||
<td class="test158" title="Times New Roman Negrito">AA</td>
|
||||
<td class="test159" title="Times New Roman Pogrubiona kursywa">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test160" title="Times New Roman Pogrubiona">AA</td>
|
||||
<td class="test161" title="Times New Roman Poševno">AA</td>
|
||||
<td class="test162" title="Times New Roman Tučná kurzíva">AA</td>
|
||||
<td class="test163" title="Times New Roman Tučné">AA</td>
|
||||
<td class="test164" title="Times New Roman Vet Cursief">AA</td>
|
||||
<td class="test165" title="Times New Roman Vet">AA</td>
|
||||
<td class="test166" title="Times New Roman cursiva">AA</td>
|
||||
<td class="test167" title="Times New Roman fed kursiv">AA</td>
|
||||
<td class="test168" title="Times New Roman fed">AA</td>
|
||||
<td class="test169" title="Times New Roman kursiv">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test170" title="Times New Roman kursywa">AA</td>
|
||||
<td class="test171" title="Times New Roman kurzíva">AA</td>
|
||||
<td class="test172" title="Times New Roman nghiêng đậm">AA</td>
|
||||
<td class="test173" title="Times New Roman nghiêng">AA</td>
|
||||
<td class="test174" title="Times New Roman tučné kurzíva">AA</td>
|
||||
<td class="test175" title="Times New Roman tučné">AA</td>
|
||||
<td class="test176" title="Times New Roman İtalik">AA</td>
|
||||
<td class="test177" title="Times New Roman đậm">AA</td>
|
||||
<td class="test178" title="Times New Roman Έντονα Πλάγια">AA</td>
|
||||
<td class="test179" title="Times New Roman Έντονα">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test180" title="Times New Roman Πλάγια">AA</td>
|
||||
<td class="test181" title="Times New Roman Курсив">AA</td>
|
||||
<td class="test182" title="Times New Roman Полужирный Курсив">AA</td>
|
||||
<td class="test183" title="Times New Roman Полужирный">AA</td>
|
||||
<td class="test184" title="Times grassetto">AA</td>
|
||||
<td class="test185" title="Verdana Corsivo">AA</td>
|
||||
<td class="test186" title="Verdana Cursief">AA</td>
|
||||
<td class="test187" title="Verdana Cursiva">AA</td>
|
||||
<td class="test188" title="Verdana Dőlt">AA</td>
|
||||
<td class="test189" title="Verdana Etzana">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test190" title="Verdana Fet Kursiv">AA</td>
|
||||
<td class="test191" title="Verdana Fet">AA</td>
|
||||
<td class="test192" title="Verdana Fett Kursiv">AA</td>
|
||||
<td class="test193" title="Verdana Fett">AA</td>
|
||||
<td class="test194" title="Verdana Félkövér dőlt">AA</td>
|
||||
<td class="test195" title="Verdana Félkövér">AA</td>
|
||||
<td class="test196" title="Verdana Gras Italique">AA</td>
|
||||
<td class="test197" title="Verdana Gras">AA</td>
|
||||
<td class="test198" title="Verdana Grassetto Corsivo">AA</td>
|
||||
<td class="test199" title="Verdana Grassetto">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test200" title="Verdana Halvfet Kursiv">AA</td>
|
||||
<td class="test201" title="Verdana Halvfet">AA</td>
|
||||
<td class="test202" title="Verdana Italique">AA</td>
|
||||
<td class="test203" title="Verdana Itálico">AA</td>
|
||||
<td class="test204" title="Verdana Kalın İtalik">AA</td>
|
||||
<td class="test205" title="Verdana Kalın">AA</td>
|
||||
<td class="test206" title="Verdana Krepko poševno">AA</td>
|
||||
<td class="test207" title="Verdana Krepko">AA</td>
|
||||
<td class="test208" title="Verdana Kursiv">AA</td>
|
||||
<td class="test209" title="Verdana Kursivoitu">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test210" title="Verdana Kursywa">AA</td>
|
||||
<td class="test211" title="Verdana Kurzíva">AA</td>
|
||||
<td class="test212" title="Verdana Lihavoitu Kursivoi">AA</td>
|
||||
<td class="test213" title="Verdana Lihavoitu">AA</td>
|
||||
<td class="test214" title="Verdana Lodi etzana">AA</td>
|
||||
<td class="test215" title="Verdana Lodia">AA</td>
|
||||
<td class="test216" title="Verdana Negreta cursiva">AA</td>
|
||||
<td class="test217" title="Verdana Negreta">AA</td>
|
||||
<td class="test218" title="Verdana Negrita Cursiva">AA</td>
|
||||
<td class="test219" title="Verdana Negrita">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test220" title="Verdana Negrito Itálico">AA</td>
|
||||
<td class="test221" title="Verdana Negrito">AA</td>
|
||||
<td class="test222" title="Verdana Pogrubiona kursywa">AA</td>
|
||||
<td class="test223" title="Verdana Pogrubiony">AA</td>
|
||||
<td class="test224" title="Verdana Poševno">AA</td>
|
||||
<td class="test225" title="Verdana Tučná kurzíva">AA</td>
|
||||
<td class="test226" title="Verdana Tučné">AA</td>
|
||||
<td class="test227" title="Verdana Vet Cursief">AA</td>
|
||||
<td class="test228" title="Verdana Vet">AA</td>
|
||||
<td class="test229" title="Verdana fed kursiv">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test230" title="Verdana fed">AA</td>
|
||||
<td class="test231" title="Verdana kursiv">AA</td>
|
||||
<td class="test232" title="Verdana kurzíva">AA</td>
|
||||
<td class="test233" title="Verdana tučné kurzíva">AA</td>
|
||||
<td class="test234" title="Verdana tučné">AA</td>
|
||||
<td class="test235" title="Verdana İtalik">AA</td>
|
||||
<td class="test236" title="Verdana Έντονα Πλάγια">AA</td>
|
||||
<td class="test237" title="Verdana Έντονα">AA</td>
|
||||
<td class="test238" title="Verdana Πλάγια">AA</td>
|
||||
<td class="test239" title="Verdana Курсив">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test240" title="Verdana Полужирный Курсив">AA</td>
|
||||
<td class="test241" title="Verdana Полужирный">AA</td>
|
||||
<td class="test242" title="儷宋 Pro">AA</td>
|
||||
<td class="test243" title="儷黑 Pro">AA</td>
|
||||
<td class="test244" title="MS 明朝">AA</td>
|
||||
<td class="test245" title="MS P明朝">AA</td>
|
||||
<td class="test246" title="MS ゴシック">AA</td>
|
||||
<td class="test247" title="MS Pゴシック">AA</td>
|
||||
<td class="test248" title="仿宋">AA</td>
|
||||
<td class="test249" title="楷体">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test250" title="굴림">AA</td>
|
||||
<td class="test251" title="궁서">AA</td>
|
||||
<td class="test252" title="돋움">AA</td>
|
||||
<td class="test253" title="바탕">AA</td>
|
||||
<td class="test254" title="標楷體">AA</td>
|
||||
<td class="test255" title="細明體">AA</td>
|
||||
<td class="test256" title="굴림체">AA</td>
|
||||
<td class="test257" title="바탕체">AA</td>
|
||||
<td class="test258" title="細明體-ExtB">AA</td>
|
||||
<td class="test259" title="細明體_HKSCS">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test260" title="メイリオ ボールド イタリック">AA</td>
|
||||
<td class="test261" title="メイリオ ボールド">AA</td>
|
||||
<td class="test262" title="メイリオ">AA</td>
|
||||
<td class="test263" title="华文仿宋">AA</td>
|
||||
<td class="test264" title="华文细黑">AA</td>
|
||||
<td class="test265" title="华文黑体">AA</td>
|
||||
<td class="test266" title="微软雅黑">AA</td>
|
||||
<td class="test267" title="新細明體">AA</td>
|
||||
<td class="test268" title="新細明體-ExtB">AA</td>
|
||||
<td class="test269" title="微軟正黑體 Bold">AA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="test270" title="רעננה">AA</td>
|
||||
<td class="test271" title="微軟正黑體">AA</td>
|
||||
<td class="test272" title="蘋果儷中黑">AA</td>
|
||||
<td class="test273" title="蘋果儷細宋">AA</td>
|
||||
<td class="test274" title="ヒラギノ角ゴ Pro W3">AA</td>
|
||||
<td class="test275" title="ヒラギノ丸ゴ Pro W4">AA</td>
|
||||
<td class="test276" title="ヒラギノ明朝 Pro W6">AA</td>
|
||||
<td class="test277" title="ヒラギノ丸ゴ ProN W4">AA</td>
|
||||
<td class="test278" title="רעננה Bold">AA</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче