Исправление EXL, (текущая версия) :
Скорее всего Firefox делает так:
Firefox: > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/10870202/, свободен? Firefox: > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/") Gecko: > Firefox, хорошо. Запрос принял, начинаю обработку... Gecko: > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем! Gecko: > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif». Gecko: > call NS_System->getFontInfo(«Sans-serif») System: > Font-Name is: MS Serif Font; System: > Font-type: Windows Bitmap Fonts; Gecko: > Битмапный шрифт? Странно. Gecko: > call NS_System->getSystemInfo().OSname System: > OS Name is: Windows XP SP3 Zver Edition build 5600.1 Gecko: > Хм. Gecko: > call NS_System->getSystemDate().Year System: > 2014 Gecko: > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх... Gecko: > Надо бы узнать, какого размера шрифт соответствует 1.0 rem. Gecko: > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif») SettingsDlg: > 27 px Gecko: > Теперь по пропорции высчитываем значение 0.7 rem. Gecko: > (27 * 0.7) / 1 Gecko: > 18.9 Gecko: > Округляем до целого Gecko: > 19 Gecko: > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера. Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19) System: > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font Gecko: > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам. Gecko: > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19) System: > In «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 24, 28, 36, 48, 64, 72} sizes System: > Take the closest to the <= 19 px glyph size System: > 18 Gecko: > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px. Gecko: > Это немного меньше, чем 19 px, но хоть что-то. Gecko: > call NS_FireBug->setFontSizeForBlock(18) Gecko: > Рендерим страницу с полученным шрифтом Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(18) Gecko: > call NS_Firefox->currentTab->setCurrentWebPage(readyPage) Firefox: > Спасибо, отображаю.
То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.
Исправление EXL, :
Скорее всего Firefox делает так:
Firefox: > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/10870202/, свободен? Firefox: > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/") Gecko: > Firefox, хорошо. Запрос принял, начинаю обработку... Gecko: > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем! Gecko: > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif». Gecko: > call NS_System->getFontInfo(«Sans-serif») System: > Font-Name is: MS Serif Font; System: > Font-type: Windows Bitmap Fonts; Gecko: > Битмапный шрифт? Странно. Gecko: > call NS_System->getSystemInfo().OSname System: > OS Name is: Windows XP SP3 Zver Edition build 5600.1 Gecko: > Хм. Gecko: > call NS_System->getSystemDate().Year System: > 2014 Gecko: > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх... Gecko: > Надо бы узнать, какого размера шрифт соответствует 1.0 rem. Gecko: > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif») SettingsDlg: > 27 px Gecko: > Теперь по пропорции высчитываем значение 0.7 rem. Gecko: > (27 * 0.7) / 1 Gecko: > 18.9 Gecko: > Округляем до целого Gecko: > 19 Gecko: > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера. Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19) System: > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font Gecko: > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам. Gecko: > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19) System: > In «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 24, 28, 36, 48, 64, 72} sizes System: > Take the closest to the <= 19 px glyph size System: > 18 Gecko: > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px. Gecko: > Это немного меньше, чем 19 px, но хоть что-то. Gecko: > call NS_FireBug->setFontSizeForBlock(19) Gecko: > Рендерим страницу с полученным шрифтом Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19) Gecko: > call NS_Firefox->currentTab->setCurrentWebPage(readyPage) Firefox: > Спасибо, отображаю.
То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.
Исходная версия EXL, :
Скорее всего Firefox делает так:
Firefox: > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/forum/linux-org-ru/10870202/, свободен? Firefox: > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/") Gecko: > Firefox, хорошо. Запрос принял, начинаю обработку... Gecko: > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем! Gecko: > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif». Gecko: > call NS_System->getFontInfo(«Sans-serif») System: > Font-Name is: MS Serif Font; System: > Font-type: Windows Bitmap Fonts; Gecko: > Битмапный шрифт? Странно. Gecko: > call NS_System->getSystemInfo().OSname System: > OS Name is: Windows XP SP3 Zver Edition build 5600.1 Gecko: > Хм. Gecko: > call NS_System->getSystemDate().Year System: > 2014 Gecko: > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх... Gecko: > Надо бы узнать, какого размера шрифт соответствует 1.0 rem. Gecko: > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif») SettingsDlg: > 27 px Gecko: > Теперь по пропорции высчитываем значение 0.7 rem. Gecko: > (27 * 0.7) / 1 Gecko: > 18.9 Gecko: > Округляем до целого Gecko: > 19 Gecko: > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера. Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19) System: > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font Gecko: > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам. Gecko: > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19) System: > In the «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 22, 24, 28, 36, 48, 52, 64, 72} sizes System: > Take the closest to the <= 19 px glyph size System: > 18 Gecko: > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px. Gecko: > Это немного меньше, чем 19 px, но хоть что-то. Gecko: > call NS_FireBug->setFontSizeForBlock(19) Gecko: > Рендерим страницу с полученным шрифтом Gecko: > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19) Gecko: > call NS_Firefox->currentTab->setCurrentWebPage(readyPage) Firefox: > Спасибо, отображаю.
То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.