К сожалению, это очень распространенная проблема .По моему опыту, не существует надежного способа управления макетом печати в разных браузерах, кроме создания PDF.Доступно несколько пакетов «HTML to PDF», но, хотя они обычно работают, они имеют схожие вариации в зависимости от браузера, в котором они работают. Существует ряд аппаратных проблем (например, размер экрана), настроек браузера (присущихразличия между браузерами плюс локально установленный размер шрифта по умолчанию и другие параметры конфигурации) и пользовательские настройки (например, масштабирование страницы), которые, по сути, делают это, IMHO, практически невозможным, за исключением создания документа на стороне сервера.
Я уверенэто не то, что вы хотите услышать, но единственное надежное решение, позволяющее пользователю печатать веб-страницу так, как вы (разработчик) хотите, чтобы она печаталась, - это создать полный PDFна сервере .Это можно сделать с помощью нескольких различных пакетов в зависимости от исходного языка (PHP, Python и т. Д.). Для разработчика определенно больше работы, но вы можете контролировать размер изображения, размер текста, шрифт и т. Д. - всеВещи, которые вы должны иметь возможность контролировать с помощью CSS, и знать, что страница будет печататься, как ожидалось.Вместо кнопки печати на вашей странице, вызывающей функцию печати браузера, попросите ее загрузить файл страницы с сервера, все отформатированные и готовые к печати.Вы можете выбрать букву (США) или А4 (большинство других мест в мире), и эти два размера достаточно близки, чтобы большинство людей могли адаптироваться в Adobe Reader или другом программном обеспечении, чтобы оно соответствовало без потери данных или слишком большого пустого пространства.
Если ваш документ действительно «всего одно изображение», то это еще проще.Создайте изображение на стороне сервера и вставьте его в загружаемый PDF-файл на одну страницу.Если вы не можете легко создать изображение на стороне сервера, вы можете использовать сервис, такой как URLBOX (который я использую в качестве платного подписчика, но у меня нет к нему никакого подключения), чтобы генерировать изображения и загружатьих на ваш сервер для встраивания в PDF-файлы.