Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов. Поработав за компом с масштабированием 150%, я понял: хреново работает. Про 4K с 200% даже думать страшно. Шрифты-то масштабируются автоматически (если для них выставлены размеры в пунктах), а вот картинки остаются в родном размере в пикселях, всё мелко. Возник вопрос: а как это дело можно улучшить? Положим, сами картинки-то в разных размерах переделать несложно, но как заставить справочную систему отображать нужный вариант изображения в зависимости от текущего масштаба? Распространять 3 раздельных CHM-файла как-то не тянет.
Насколько я понял, в современном вебе для этого используются CSS-правила @media. Вот только движок IE7, на котором работает CHM, про эти правила знать не знает, так что эта идея отпала. Также я рассматривал возможность внедрить JS, который будет динамически высчитывать масштаб и подменять картинки. PoC сработал нормально, но я смутно помню, что JS в CHM считается злом (то ли на каких-то системах или при каких-то настройках он блокируется, то ли ещё что-то в этом роде; точно знаю только, что у пользователей древнего Макстона скрипты в CHM вызывали лишние запросы подтверждения от какой-то системы безопасности). В общем, по возможности хотелось бы обойтись без JS. Нашёл также интересный хак, позволяющий внедрить JS-код прямо внутрь CSS, но думается мне, это принципиально не отличается от честного выполнения JS из кода страницы.
Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Здравствуйте, CaptainFlint, Вы писали:
CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Я сварщик фронтендер не настоящий, поэтому, быть может, скажу глупость...
А что если:
— всегда класть картинки с максимальным разрешением
— указывать размеры изображения не в пикселах, а например, относительно ширины окна
Здравствуйте, Михаил Романов, Вы писали:
CF>>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи? МР>Я сварщик фронтендер не настоящий, поэтому, быть может, скажу глупость... МР>А что если: МР>- всегда класть картинки с максимальным разрешением МР>- указывать размеры изображения не в пикселах, а например, относительно ширины окна
Сейчас размеры картинок вообще не указываются, и картинки просто вставляются в "базовом" размере. Если начать вставлять туда относительные размеры, то вылезает сразу несколько проблем:
1. Если указывать размеры относительно окна, то когда пользователь растягивает окно, все картинки будут растягиваться вместе с ним (причём непропорционально).
2. Если засунуть их, скажем, в DIV фиксированного размера (равного базовому размеру картинки) и указывать размер картинки в процентах от этого блока, то DIV продолжит занимать место, и вокруг картинки останется пустое поле.
3. Независимо от выбранного способа, перемасштабирование картинки даёт мыло, которого хотелось бы избежать. Особенно с учётом того, что масштаб 100% — это всё-таки пока что мейнстрим, и он должен быть в хорошем качестве. Если 100% превратить в 200 ещё можно было бы дублированием пикселей, избежав мыла (и то ещё вопрос, как движок IE7 будет осуществлять масштабирование), то нецелые масштабы и тем более уменьшение размеров неизбежно приводят к ухудшению качества. Поскольку это не фотографии, а скриншоты с чёткими линиями, значками и текстом, то разница очень ощутима.
Здравствуйте, netch80, Вы писали:
N>Открывается okularʼом с управлением масштабированием. Есть сборка под Windows. N>Ещё есть приложение для Хрома.
К сожалению, этот вариант не подходит. Справка пишется для сторонней программы и распространяется для произвольного круга лиц. Заставить всех пересесть на альтернативный просмотрщик невозможно. Кроме того, сама программа вызывает справку с использованием HTMLHelp API, что приводит к использованию стандартного системного движка.
Здравствуйте, CaptainFlint, Вы писали:
CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Вектор туда кинуть?
IE7 не понимает .svg (уточнить), но понимает какой-то VML Наверное, есть конвертеры.
Получить скриншот в векторе сложно, но можно.
Можно попытаться подменив рисовалку.
В Qt это через QSvgGenerator, в обычном GDI это через метафайлы, зайдёт это всё только без двойной буферизации.
Или -- распознать текст и линии OCR.
Здравствуйте, Alexander G, Вы писали:
AG>Вектор туда кинуть?
AG>IE7 не понимает .svg (уточнить), но понимает какой-то VML Наверное, есть конвертеры.
Скриншот в векторе — идея, конечно, нестандартная…
Впрочем, из любопытства посмотрел, что с ними можно сделать. Но ни SVG, ни VML движок CHM принимать не захотел, показывает заглушку несуществующей картинки. (Сами файлы в CHM, разумеется, присутствуют.)
Здравствуйте, CaptainFlint, Вы писали:
CF>Насколько я понял, в современном вебе для этого используются CSS-правила @media.
В современном веб px это reference pixel, который в идеале 1/96 дюйма, но реальное соотношение может прыгать, в зависимости от реализации и сколько ошибок насобирать. Поэтому, размеры в пикселах не идеальны, но во многих случаев этого достаточно, и никакие медиа-квери не нужны и они будут физически (в дюймах) более-менее одинаковы.
@media нужны для более забористых случаев, но в значительной части используются для адаптации контента под конкретные размеры экранов. А что касается картинок, то, что бы их заменять на другие, с большим разрешением — нужно прежде всего их иметь.
Можно попробовать задавать размеры картинок в других единицах css, вплоть до процентов (например оттолкнуться от шрифта в em). Я конкретно уже про IE7 не подскажу. Наверное надо добиться, что бы в нем это сначала приемлимо заработало, а потом уже это в chm втаскивать.
Здравствуйте, CaptainFlint, Вы писали:
CF>Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов.
Решал подобную задачу, но не для chm, а для интегрированного в приложение WebControl.
Возможно, что этот способ и для htmlhelp сработает.
В реестре можно задать некоторое количество параметров IE в разрезе имени exe:
HKLM или HKCU \Software\Microsoft\Internet Explorer\Main\FeatureControl\<конкретная фича>
За DPI awarness отвечает фича FEATURE_96DPI_PIXEL. Если такого ключа нет, то его надо создать.
Далее создается параметр DWORD с именем MyApp.exe и значением 1.
Здравствуйте, CaptainFlint, Вы писали:
CF>Имеется справка в CHM-формате. В связи с распространением HiDPI-мониторов возник вопрос, как эта справка работает у пользователей сих девайсов. Поработав за компом с масштабированием 150%, я понял: хреново работает. Про 4K с 200% даже думать страшно. Шрифты-то масштабируются автоматически (если для них выставлены размеры в пунктах), а вот картинки остаются в родном размере в пикселях, всё мелко. Возник вопрос: а как это дело можно улучшить? Положим, сами картинки-то в разных размерах переделать несложно, но как заставить справочную систему отображать нужный вариант изображения в зависимости от текущего масштаба? Распространять 3 раздельных CHM-файла как-то не тянет.
CF>Насколько я понял, в современном вебе для этого используются CSS-правила @media. Вот только движок IE7, на котором работает CHM, про эти правила знать не знает, так что эта идея отпала. Также я рассматривал возможность внедрить JS, который будет динамически высчитывать масштаб и подменять картинки. PoC сработал нормально, но я смутно помню, что JS в CHM считается злом (то ли на каких-то системах или при каких-то настройках он блокируется, то ли ещё что-то в этом роде; точно знаю только, что у пользователей древнего Макстона скрипты в CHM вызывали лишние запросы подтверждения от какой-то системы безопасности). В общем, по возможности хотелось бы обойтись без JS. Нашёл также интересный хак, позволяющий внедрить JS-код прямо внутрь CSS, но думается мне, это принципиально не отличается от честного выполнения JS из кода страницы.
CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.
Здравствуйте, CaptainFlint, Вы писали:
CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Конечно знает. Перейти на более современные форматы справки и способы ее отображения. Например, положиться на то, что у пользователя установлен современный браузер, и открывать справку в нем.
Здравствуйте, Mystic Artifact, Вы писали:
CF>>Насколько я понял, в современном вебе для этого используются CSS-правила @media. MA> В современном веб px это reference pixel, который в идеале 1/96 дюйма, но реальное соотношение может прыгать, в зависимости от реализации и сколько ошибок насобирать. Поэтому, размеры в пикселах не идеальны, но во многих случаев этого достаточно, и никакие медиа-квери не нужны и они будут физически (в дюймах) более-менее одинаковы. MA> @media нужны для более забористых случаев, но в значительной части используются для адаптации контента под конкретные размеры экранов. А что касается картинок, то, что бы их заменять на другие, с большим разрешением — нужно прежде всего их иметь.
Заиметь картинки как раз не проблема. Проблема — объяснить браузеру, что при таком-то масштабе я хотел бы использовать такую картинку, при сяком-то — другую. Я в вебе сильно плаваю (особенно в современном), но, вроде, кроме @media ничем другим такого не добиться. Ну и скриптами ещё, само собой. Ещё нагуглился img srcset, но это ещё более молодая технология, про IE7 тут и заикаться нечего.
MA> Можно попробовать задавать размеры картинок в других единицах css, вплоть до процентов (например оттолкнуться от шрифта в em). Я конкретно уже про IE7 не подскажу. Наверное надо добиться, что бы в нем это сначала приемлимо заработало, а потом уже это в chm втаскивать.
Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится.
Здравствуйте, qaz77, Вы писали:
Q>Решал подобную задачу, но не для chm, а для интегрированного в приложение WebControl. Q>Возможно, что этот способ и для htmlhelp сработает.
Q>В реестре можно задать некоторое количество параметров IE в разрезе имени exe: Q>HKLM или HKCU \Software\Microsoft\Internet Explorer\Main\FeatureControl\<конкретная фича>
Q>За DPI awarness отвечает фича FEATURE_96DPI_PIXEL. Если такого ключа нет, то его надо создать. Q>Далее создается параметр DWORD с именем MyApp.exe и значением 1.
Любое изменение системных настроек тут не катит, справка идёт отдельно, без инсталлятора. Требовать от пользователей ручками что-то там настраивать в реестре — нехорошо. Да тому же влияющее не конкретно на справку, а на саму чужую программу, эту справку использующую.
Здравствуйте, wildwind, Вы писали:
W>Конечно знает. Перейти на более современные форматы справки и способы ее отображения. Например, положиться на то, что у пользователя установлен современный браузер, и открывать справку в нем.
Программа сторонняя, выбор формата справки осуществляется не мной.
(И, кстати, как пользователь, я отношусь с громадным отвращением к браузерной справке. Очень неудобно по множеству причин.)
Здравствуйте, VladCore, Вы писали:
VC>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.
Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.
Здравствуйте, CaptainFlint, Вы писали:
VC>>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.
CF>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.
ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема
и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?
Здравствуйте, VladCore, Вы писали:
VC>>>есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла. Но она глубоко спрятана. И действует на все мониторы и если их больше одного.
CF>>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.
VC>ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема
VC>и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?
DPI я предполагаю выставленным под нужды пользователя. Для меня это внешний рид-онли параметр, который меняется независимо от моих желаний, и мне надо под него подстраиваться.
Под модификацией настроек я понимаю всевозможные сценарии, где справка распространяется вместе с ридми, в котором говорится: "чтобы нормально читать нашу справку, зайдите в реестр и твикните такие-то ключили / откройте такой-то диалог и выставьте такие-то галочки / отредактируйте сякой-то системный INI-файлик / и т. д."
Из сообщения про "есть две настройки HiDPI" я сделал вывод, что в одном из этих режимов, возможно, автомасштабирование в CHM будет работать лучше, и мне предлагается заставить пользователя переключить свою систему в этот режим. Отсюда мой ответ про недопустимость подобных манипуляций. Если понял неправильно, то прошу разъяснить, что именно мне предлагалось сделать. Или это была просто ремарка о текущем положении дел, без каких-либо указаний на то, что с этим можно сделать?
Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.
Здравствуйте, CaptainFlint, Вы писали:
CF>Заиметь картинки как раз не проблема. Проблема — объяснить браузеру, что при таком-то масштабе я хотел бы использовать такую картинку, при сяком-то — другую. Я в вебе сильно плаваю (особенно в современном), но, вроде, кроме @media ничем другим такого не добиться. Ну и скриптами ещё, само собой. Ещё нагуглился img srcset, но это ещё более молодая технология, про IE7 тут и заикаться нечего.
Я помню что, что можно было что-то выиграть от meta viewport. Поведение может поменяться. (Правда саму задачу не решит.)
CF>Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится.
Прям сильно мыльная?
Насчет картинок тут проверь еще и сами картинки, какое у них указано разрешение, если это есть в их формате. Вдруг там ерунда указана.
Ну а так — поищи готовые полифилы для медиа квери.
Ну или добавь скрипт который на div разместит шрифт/букву с базовым размером который ты знаешь. Скриптом спрашиваешь размер этого div в пикселах. Тут по идее ты и сможешь вычислить масштаб и следовательно перейти на другие img, которые в ином качестве.
А еще лучше — поместить "референсную картинку" в див, и див с текстом который приблизительно равен ширине этой картинки. Ну и опять спрашиваешь браузер о размерах и получаешь отношение — и соотв. из отношения можно уже переключить на другой набор картинок.
Ну это просто идея, надо пробовать на практике на IE7 и в chm.
Add: Последний вариант возможно будет даже получше полифилов — не прийдется разбираться как они сделаны и делают ли то, что тебе нужно.
Здравствуйте, CaptainFlint, Вы писали:
CF>Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.
Я сейчас поменял старый 24" 1920x1080 на 27" 4k и даже при 200% масштабировании в Windows наблюдаю какое-то мыло в старых приложениях. Такое, что при переключении масштабирования в 175% оно вроде увеличивается, но уже не так принципиально, чтобы использовать 200% вместо 175%.
есть две настройки HiDPI — одна как в Windows 7 работает и там все легаси приложения без мыла
CF>>>Из настроек я знаю только в десятке в диалоге свойств программы, выбор типа масштабирования. Но я выше писал, любое изменение настроек на стороне пользователя крайне нежелательно. А любое изменение, влияющее не только на нашу справку, но и на другие программы/справки, и вовсе недопустимо.
VC>>ничего не понятно. если пользователь не менял настройку HiDPI то в чем тогда проблема
VC>>и что значит любое изменение настроек на стороне пользователя крайне нежелательно? я где то предлагал за пользователя менять настройки HiDPI?
CF>DPI я предполагаю выставленным под нужды пользователя. Для меня это внешний рид-онли параметр, который меняется независимо от моих желаний, и мне надо под него подстраиваться. CF>Под модификацией настроек я понимаю всевозможные сценарии, где справка распространяется вместе с ридми, в котором говорится: "чтобы нормально читать нашу справку, зайдите в реестр и твикните такие-то ключили / откройте такой-то диалог и выставьте такие-то галочки / отредактируйте сякой-то системный INI-файлик / и т. д." CF>Из сообщения про "есть две настройки HiDPI" я сделал вывод, что в одном из этих режимов, возможно, автомасштабирование в CHM будет работать лучше, и мне предлагается заставить пользователя переключить свою систему в этот режим. Отсюда мой ответ про недопустимость подобных манипуляций. Если понял неправильно, то прошу разъяснить, что именно мне предлагалось сделать. Или это была просто ремарка о текущем положении дел, без каких-либо указаний на то, что с этим можно сделать?
CF>Кстати говоря, фраза "все легаси приложения без мыла" вызывает у меня глубокий скепсис. Любое масштабирование изображений на LCD-экранах (кроме кратного) неизбежно вызовет замыление картинки. То есть чтобы было без мыла, надо картинки оставить немасштабированными — ну так именно это сейчас и происходит. Картинки чёткие, но слишком мелкие, пользоваться такой справкой некомфортно. Поэтому я ищу способы улучшить ситуацию.
и кому нужны твой скепсис и фантазии про readme?
ты нашел обе опции где HiDPI задается? Найдеш поставь +. И сюда скринь скриншоты с мылом и без. бо я уже не первый раз вижу как народ в 10ке не может включить HiDPI для легаси
Здравствуйте, VladCore, Вы писали:
VC>и кому нужны твой скепсис и фантазии про readme?
VC>ты нашел обе опции где HiDPI задается? Найдеш поставь +. И сюда скринь скриншоты с мылом и без. бо я уже не первый раз вижу как народ в 10ке не может включить HiDPI для легаси
Я их и не пытался искать. При чём тут они вообще? Опции выставляет пользователь. А я — разработчик. И мне надо под эти опции подстроиться. Чтобы произвольный пользователь скачал созданный мной CHM-файл, ткнул на него, и справка открылась, показав красивые картинки, рассчитанные на тот DPI, что сейчас выставлен у этого пользователя.
Предположим даже, что я нашёл обе эти опции и поигрался с ними. Что мне с ними предполагается делать-то? Или CHM умеет внутрь себя как-то эти опции внедрять? Или выставленные на моём компе опции телепортируются на комп пользователя, который мою справку скачает? К чему вообще была эта фраза про два варианта HiDPI? Как она призвана помочь мне в решении задачи создания справки, корректно работающей в разных режимах масштабирования? При чём тут легаси-приложения? Ни целевое приложение, под которое идёт справка, ни оболочка hh.exe, где эта справка открывается, легаси-приложениями с точки зрения системы не являются.
Здравствуйте, Mystic Artifact, Вы писали:
CF>>Про проценты я писал выше, с ними не получается. Задание размера картинки в em и в pt, вроде бы, масштабы состыковало нормально. Но задачу подстановки чёткой картинки нужного разрешения это не решает, просто получается увеличенная (или уменьшенная) мыльная копия исходного изображения, а мне это сильно не нравится. MA> Прям сильно мыльная?
Ощутимо. Сейчас, правда, во всех технологиях идёт какой-то тренд на мыльность, везде применяются какие-то размытые шрифты, всякие векторные иконки, которые ни в одном разрешении не рисуются чёткими линиями… По сравнению с этими интерфейсами, может, и нормально. Но я привык к большей чёткости изображений, и то, что получается при автомасштабировании растра, меня не устраивает.
MA> Насчет картинок тут проверь еще и сами картинки, какое у них указано разрешение, если это есть в их формате. Вдруг там ерунда указана.
Обычный PNG, там нет никаких разрешений. Есть размер холста в пикселях, в точном соответствии с которым рисунок и выводится на экран по умолчанию. Если в HTML/CSS указать для элемента IMG другой размер, то рисунок принудительно перемасштабируется под него и, разумеется, станет более размытым. Здесь хоть как крутись, по-другому просто не бывает. Либо чётко, но мелко, либо отмасштабированно, но размыто. Пока DPI не вырастет хотя бы на порядок, с этим ничего не поделать, вот и приходится заморачиваться с подстановкой разных картинок под разные разрешения (где это технически реализуемо).
MA> Ну а так — поищи готовые полифилы для медиа квери.
MA> Ну или добавь скрипт который на div разместит шрифт/букву с базовым размером который ты знаешь. Скриптом спрашиваешь размер этого div в пикселах. Тут по идее ты и сможешь вычислить масштаб и следовательно перейти на другие img, которые в ином качестве.
MA> А еще лучше — поместить "референсную картинку" в див, и див с текстом который приблизительно равен ширине этой картинки. Ну и опять спрашиваешь браузер о размерах и получаешь отношение — и соотв. из отношения можно уже переключить на другой набор картинок.
MA> Ну это просто идея, надо пробовать на практике на IE7 и в chm.
MA> Add: Последний вариант возможно будет даже получше полифилов — не прийдется разбираться как они сделаны и делают ли то, что тебе нужно.
Скриптами я давно уже сделал, без всяких полифиллов. В первом же сообщении об этом написано. Просто знаю пользователей, у которых скрипты в CHM в прошлом вызывали проблемы, поэтому хочется выяснить, существуют ли решения без применения скриптов.
Здравствуйте, CaptainFlint, Вы писали:
CF>Программа сторонняя, выбор формата справки осуществляется не мной.
Ну, значит и мой совет не для тебя, а для автора программы. Хотя странно, почему заставить работать CHM на не поддерживающей его системе это твоя проблема.
CF>(И, кстати, как пользователь, я отношусь с громадным отвращением к браузерной справке. Очень неудобно по множеству причин.)
Здравствуйте, CaptainFlint, Вы писали:
CF>Скриптами я давно уже сделал, без всяких полифиллов. В первом же сообщении об этом написано. Просто знаю пользователей, у которых скрипты в CHM в прошлом вызывали проблемы, поэтому хочется выяснить, существуют ли решения без применения скриптов.
Здравствуйте, wildwind, Вы писали:
CF>>Программа сторонняя, выбор формата справки осуществляется не мной.
W>Ну, значит и мой совет не для тебя, а для автора программы. Хотя странно, почему заставить работать CHM на не поддерживающей его системе это твоя проблема.
Почему "на не поддерживающей его системе"? CHM — стандартный формат, поддерживающийся на виндах вплоть до последней десятки. И нормальной замены ему что-то пока не видать.
Ну а относительно того, почему это моя проблема… Это не моя проблема, это моё желание. Хочу сделать пользователям лучше, такое вот странное желание.
Здравствуйте, CaptainFlint, Вы писали:
CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Ну, я формат chm не знаю, в html я бы попытался выкрутиться через img sizes где у тебя будет несколько размеров.
Здравствуйте, Igore, Вы писали:
I>Ну, я формат chm не знаю, в html я бы попытался выкрутиться через img sizes где у тебя будет несколько размеров.
CHM — это фактически и есть HTML, но отображающийся в древнем IE7-движке.
За информацию спасибо, но, видимо, этот способ не сработает. В документации говорится, что адреса изображений вытаскиваются из srcset, а он в IE не поддерживается.
Здравствуйте, sfsoft, Вы писали:
CF>>CHM — это фактически и есть HTML, но отображающийся в древнем IE7-движке.
S>Не совсем так. Можно выбирать какой браузер пользовать. Но будут нюансы, Edge шрифты мылит...
А можно поподробнее? Где эта настройка прячется? Самому обнаружить не удалось, гугл тоже не слишком торопится выдавать инфу…
Здравствуйте, sfsoft, Вы писали:
S>Я, к сожалению, не разбирался как именно это работает. Но вот авторы Help-N-Doc видимо разбирались, у них это выглядит так:
S>Image: helpndoc-rsdn.png
S>Настройка рабочая, т.к., повторюсь, edge мылил шрифты и я принудительно указал IE другой версии.
Из названия флага и дефолтного значения могу предположить, что они просто добавляют X-UA-Compatible в код. Кстати, если верить документации, IE=edge означает не браузер Edge, а последнюю доступную версию IE (типа "bleeding edge"). Но если вписать "IE=edge,chrome=1", то вроде как будет использоваться хромовский движок (если он доступен).
Спасибо за инфу, я не знал, что CHM позволяет использовать разные движки. Попробую поиграться в этом направлении. Правда, эксперименты пока дают какие-то странные результаты…
Кстати, особого мыла у себя не заметил. Возможно, какие-то настройки самого IE11 и/или Edge играют роль. Но буду иметь в виду, что оно возможно.
Здравствуйте, CaptainFlint, Вы писали:
CF>картинки остаются в родном размере в пикселях, всё мелко.
А если сделать наоборот — подготовить картинки в заведомо большом разрешении, с максимально плавными контурами, и через типичный веб-прием "резиновой картинки" (max-width: 100%; width: auto; height: auto) показывать с уменьшением? На мониторах с мелкой точкой масштабирование вниз смотрится не так ужасно, как вверх без антиалиасинга.
Здравствуйте, CaptainFlint, Вы писали:
CF>Имеется справка в CHM-формате. CF>Не знает ли многоуважаемый all каких-нибудь других способов решения задачи?
Может тупость скажу, но отказаться от CHM-формата и распространять просто в html, которым по сути CHM и является, не вариант?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А если сделать наоборот — подготовить картинки в заведомо большом разрешении, с максимально плавными контурами, и через типичный веб-прием "резиновой картинки" (max-width: 100%; width: auto; height: auto) показывать с уменьшением? На мониторах с мелкой точкой масштабирование вниз смотрится не так ужасно, как вверх без антиалиасинга.
Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить. Резиновые картинки, конечно, не катят, но попробую, что будет, если фиксированный половинный размер задать.
Здравствуйте, Michael7, Вы писали:
M>Может тупость скажу, но отказаться от CHM-формата и распространять просто в html, которым по сути CHM и является, не вариант?
Программа сторонняя, справка там либо HLP, либо CHM, другие не поддерживаются.
(Впрочем, в HTML я тоже выкладываю для удобства, но не в качестве замены CHM, а как дополнение. Чтобы была возможность дать в инете сразу ссылку на нужную статью, а не диктовать цепочку переходов.)
Здравствуйте, CaptainFlint, Вы писали:
CF>Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить.
Попробуйте просто сделать картинку, которая будет нормально смотреться на 150-200 DPI, показать ее на обычной веб-страничке с MaxWidth 100%, и поуменьшать окно браузера. Я попробовал с крупными надписями на экране 17" со 128 DPI — при уменьшении смотрится не совсем красиво, но не страшно. На более высоких разрешениях будет еще лучше.
Здравствуйте, Евгений Музыченко, Вы писали:
CF>>Чтобы была возможность дать в инете сразу ссылку на нужную статью, а не диктовать цепочку переходов.
ЕМ>В CHM можно сразу открывать нужную страницу/раздел из командной строки:
ЕМ>hh file.chm:/page.htm#anchor
Можно, но всё-таки намного удобнее дать прямую ссылку, по которой пользователь просто тыкнет. А в этой команде и путь к файлу ему придётся сначала рассчитать (так как программа может быть установлена в разные каталоги, а также использоваться портативно), и в командной строке далеко не все чувствуют себя комфортно. Да и самому банально быстрее получается перейти к нужной странице в браузере и скопипастить ссылку, чем выдирать имя страницы из диалога свойств в CHM и потом комбинировать эту команду. К тому же, веб-вариант доступен, когда сидишь за компом, где эта программа не установлена.
В общем, плюсов достаточно много, а накладные расходы минимальны, у меня для CHM и для веба страницы всё равно из единого источника генерируются программно.
Здравствуйте, Евгений Музыченко, Вы писали:
CF>>Сомнения у меня, что будет нормально смотреться, но вообще, да, по-хорошему надо бы проверить.
ЕМ>Попробуйте просто сделать картинку, которая будет нормально смотреться на 150-200 DPI, показать ее на обычной веб-страничке с MaxWidth 100%, и поуменьшать окно браузера. Я попробовал с крупными надписями на экране 17" со 128 DPI — при уменьшении смотрится не совсем красиво, но не страшно. На более высоких разрешениях будет еще лучше.
Наконец-то дошли руки проверить, но увы, выглядит жутковато. Как будто грязные разводы по всей картинке. Читабельно, конечно, но "родной" вариант выглядит намного лучше.
В общем, я пришёл к выводу, что полностью устраивающего меня решения в рамках установленных ограничений подобрать, видимо, не получится. Так что продолжу делать справку в расчёте на масштаб 100%, а отдельно можно будет попробовать выложить вариант с подменой картинок скриптами (для тех пользователей, кому базовый вариант слишком мелкий и у кого скрипты не вызывают проблем).