powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как преобразовать html с заданной шириной в bmp?
49 сообщений из 49, показаны все 2 страниц
Как преобразовать html с заданной шириной в bmp?
    #40128966
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На входе у нас есть произвольный html (имеющий довольно сложную структуру, что затрудняет его парсинг) и ширина страницы в сантиметрах для отображения данного html.

На выходе должна быть картинка в виде bmp (потом уже при необходимости преобразуем в более удобный формат png/jpg - но это за рамками данной темы).

Как можно преобразовать html с известной шири ной страницы в bmp (желательно с возможностью управления dpi)?

В наличии: среда разработки Delphi XE8. В идеале преобразование должно быть целиком с помощью Delphi. Как вариант, если это невозможно - можно рассмотреть сторонние бесплатные утилиты (желательно не GPL).
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128972
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вывести html в странице браузера на весь экран и сделать его снимок
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128976
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87> ширина страницы в сантиметрах для
Наталья87> отображения данного html.

Смотря что Вам надо зумить - html-ку или картинку.
Проще всего отобразить html любым браузером,
предварительно задав ему нужную ширину - в пикселях,
конечно же, а не в сантиметрах - и сделать скриншот.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128990
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87,

посмотрите, может вым подойдёт https://github.com/BerndGabriel/HtmlViewer ?
И далее редерьте на Canvas битмапа.

Возможности компонента до инсталляции можно проверить скомпилированной демкой, она там прилагается
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128991
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам
Наталья87> ширина страницы в сантиметрах для
Наталья87> отображения данного html.

Смотря что Вам надо зумить - html-ку или картинку.
Проще всего отобразить html любым браузером,
предварительно задав ему нужную ширину - в пикселях,
конечно же, а не в сантиметрах - и сделать скриншот.


Это некрасивый и ненадёжный способ. Т. к. будут отображаться ненужные пользователю окна на экране. И в скриншот может попасть лишнее или скриншот может быть сделан в неправильный момент времени (с опозданием или раньше времени).

В общем, нужен нормальный надёжный способ и без мерцающих окон.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128993
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без шансов.
тут программист нужен.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40128994
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наталья87
Это некрасивый и ненадёжный способ. Т. к. будут отображаться ненужные пользователю окна на экране. И в скриншот может попасть лишнее или скриншот может быть сделан в неправильный момент времени (с опозданием или раньше времени).

В общем, нужен нормальный надёжный способ и без мерцающих окон.

О, оказывается, я соскучился по этим метким и хлестким эпитетам :) "Ненужный мусор" в отношении секции uses навеки в моем сердце, но там еще много пустующих слотов для новых шедевров. Жгите!

По теме: отобразить чем-либо с контролем "лишнего" и "неправильного", конечно же. HtmlViewer уже упомянули, следующий после компонента браузера идет Phantom (жаль, не обновляется давно) или любой другой браузер, подключенный через WebDriver
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129004
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамПроще всего отобразить html любым браузером, предварительно задав ему нужную
ширину - в пикселях,

Ещё через пару страниц выяснится, что это нужно для печати и у принтера 1200
dpi, а браузер не хочет раскрываться на такую ширину.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129007
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Гаджимурадов РустамПроще всего отобразить html любым браузером, предварительно задав ему нужную
ширину - в пикселях,

Ещё через пару страниц выяснится, что это нужно для печати и у принтера 1200
dpi, а браузер не хочет раскрываться на такую ширину.


да, всё верно.
это нужно для последующей печати на принтере (bmp на принтер печатать умею встроенными средствами Delphi)
не могу понять - как распечатать произвольный html-текст на принтер с заданным именем автоматически (а не просто открыть html браузеру и предложить пользователю распечатать html)
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129014
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

При попытке отобразить html компонентом TWebBrowser обнаружился неприятный сюрприз - а именно он не хочет отображать картинку в формате base64Encode
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129015
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87,

Программа (приложение, компонент), превращающая код html в картинку, называется html viewer, он же браузер. Вам, ясен пень, удобнее использовать браузер, реализованный в виде компонента Delphi, или хотя бы в виде OLE-объекта, некоторые вам подсказали выше. Написать браузер - это довольно емкая работа, но все уже сделали за вас. Вам осталось только стартовать готовый, выставить нужные свойства (длину, ширину, тулбары и пр.), загрузить html, и попросить браузер отдать вам картинку.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129016
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
и попросить браузер отдать вам картинку.
и попросить браузер напечатать документ
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129017
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87

он не хочет отображать картинку в формате base64Encode

Наталья, вы, похоже, еще не проснулись. В таком случае рекомендована пара чашек крепкого кофе.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129019
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_и попросить браузер напечатать документ

Возможно, это удастся сделать через ShellExeuteEx('print', ...);
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129020
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87
не могу понять - как распечатать произвольный html-текст на принтер с заданным именем автоматически (а не просто открыть html браузеру и предложить пользователю распечатать html)
Смотрите, веб-страница - это html + CSS + javascript. Браузер получает это всё, парсит html с учётом CSS, вносит изменения, определенные javascript'ом и после этого делает рендеринг - по неким правилам рисует страницу. Причем, несмотря на стандарты, бывало и в недавнее время, что в разных браузерах у страниц есть отличия, пусть и в деталях. Впридачу, javascript может потом ещё что-то запросить с сервера, получить и отобразить на странице. Браузер это всё делает. Если не хотите использовать браузер, то надо самой это сделать.

Может у Свириденкова в библиотеке что-то есть: https://www.delphihtmlcomponents.com/
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129021
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
попросить браузер напечатать документ

Можно и так, но тогда придется управлять и принтером (виртуальным, да?). Ей ведь нужен не размер А4 с разбивкой по страницам, а некие произвольные ширина и высота картинки. В каких единицах, кстати, линейных, пикселах?
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129022
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Ей ведь нужен не размер А4 с разбивкой по страницам
Именно это ей и нужно
Наталья87
это нужно для последующей печати на принтере
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129023
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

_Vasilisk_и попросить браузер напечатать документ

Возможно, это удастся сделать через ShellExeuteEx('print', ...);


Но здесь есть один нюанс - нужно перед печатью менять default printer на нужный
А после печати менять обратно
Как бы не есть хорошо менять настройки windows ради прикладной программы
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129024
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalamyansky
Наталья87

он не хочет отображать картинку в формате base64Encode

Наталья, вы, похоже, еще не проснулись. В таком случае рекомендована пара чашек крепкого кофе.

На самом деле такое есть. Позволяет хранить бинарники внутри html
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129025
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повторю свой пост, он кажется затерялся среди ответов

THtmlViewer

Кроик Семён
Наталья87,

посмотрите, может вым подойдёт https://github.com/BerndGabriel/HtmlViewer ?
И далее редерьте на Canvas битмапа.

Возможности компонента до инсталляции можно проверить скомпилированной демкой, она там прилагается
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129030
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственный рабочий вариант, написанный полностью на Дельфи и не зависящий ни от чего это https://delphihtmlcomponents.com
С поддержкой CSS, сложной структуры, с разбитием на страницы или без, не привязанный к выводу на экран и окнам, с поддержкой base64 изображений и.т.д.
Делается в 5-10 строчек, при покупке библиотеки вышлю готовый пример.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129031
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87Но здесь есть один нюанс - нужно перед печатью менять default printer на нужный

Ещё через две страницы выяснится, что в HTML сформирован блок этикеток для
печати на принтере этикеток...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129033
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Именно это ей и нужно
Наталья87
это нужно для последующей печати на принтере

Вау, слона-то я и не приметил.

Я когда-то писал превью печати, и как раз для браузера-компонента. Заставлял браузер делать свой вывод на канву, и сохранял это хозяйство как EMF (Enhanced Metafile). Довольно мило получалось, и масштабировать можно, и в файл emf сохранить, и распечатать, естественно. Но с тех пор 20 лет минуло, думаю уж, что поудобнее появилось. Наталья, берите на заметку. А bmp для вашей задачи ну совсем дубовый формат.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129044
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Наталья87
Dimitry Sibiryakov

пропущено...

Возможно, это удастся сделать через ShellExeuteEx('print', ...);


Но здесь есть один нюанс - нужно перед печатью менять default printer на нужный
А после печати менять обратно


вместо 'print' надо использовать 'printto' с указанием, на какой принтер печатать
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129045
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkov
Единственный рабочий вариант, написанный полностью на Дельфи и не зависящий ни от чего это https://delphihtmlcomponents.com
С поддержкой CSS, сложной структуры, с разбитием на страницы или без, не привязанный к выводу на экран и окнам, с поддержкой base64 изображений и.т.д.
Делается в 5-10 строчек, при покупке библиотеки вышлю готовый пример.

Ну наконец-то. Мы все этого очень долго ждали
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129047
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal

base64Encode

На самом деле такое есть. Позволяет хранить бинарники внутри html

Ну это ж не формат картинки, а всего лишь способ кодирования внутренних объектов. А!.. понял, спасибо. Там такие хитрые html с внутренними картинками, что TWebBrowser их не понимает. Ну что тут делать, либо html менять, либо браузер.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129048
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
asviridenkov
Единственный рабочий вариант, написанный полностью на Дельфи и не зависящий ни от чего это https://delphihtmlcomponents.com
С поддержкой CSS, сложной структуры, с разбитием на страницы или без, не привязанный к выводу на экран и окнам, с поддержкой base64 изображений и.т.д.
Делается в 5-10 строчек, при покупке библиотеки вышлю готовый пример.


там ещё javascript поддерживается.
ага, но нет
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129050
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
shalamyansky
Fr0sT-Brutal

base64Encode

На самом деле такое есть. Позволяет хранить бинарники внутри html

Ну это ж не формат картинки, а всего лишь способ кодирования внутренних объектов. А!.. понял, спасибо. Там такие хитрые html с внутренними картинками, что TWebBrowser их не понимает. Ну что тут делать, либо html менять, либо браузер.


Да, там QR-код в виде картинки в формате Base64Encode. Вот и думаю уже - связываться с печатью готового html или парсить html и вручную формировать нужный BMP. Да, объект TWebBrowser в Delphi картинки в формате Base64 не понимает, как и команда

ShellExecute(Application.Handle, 'print', 'C:\\temp\\1.html', '', '', SW_HIDE);

При этом, например, Оперой html вполне открывается и вручную из Оперы печатается. Firefox тоже понимает. Разве что действительно открывать Оперой, а потом передавать ей команды для автопечати с эмуляцией нажатий горячих клавиш через AutoIt ...
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129055
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator


там ещё javascript поддерживается.
ага, но нет


Нет, но про него в запросе речь и не шла, судя по всему там статика.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129060
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87

парсить html и вручную формировать нужный BMP

Флаг вам в руки, Наталья! Мы в вас верим!
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129072
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот бесхитростный код, длиной буквально в 20 строчек. Может, кому пригодится.
Костыльно - но судя по всему, нормальных способов (без необходимости что-то там покупать и от чего-то зависеть) всё равно нет.
Жаль - а ведь казалось бы - печать html куда более чем стандартная операция.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TForm1.Button1Click(Sender: TObject);
var
   f: System.Text;
begin
   //потребуется установка AutoIt и Opera
   System.Assign(f, 'c:\temp\1.au3');
   System.Rewrite(f);
   System.Writeln(f, 'Send("^p")');
   System.Writeln(f, 'sleep(500)');
   System.Writeln(f, 'Send("{enter}")');
   System.Close(f);

   //ShellExecute(Application.Handle, 'print', 'C:\\temp\\1.html', '', '', SW_HIDE);
   ShellExecute(Application.Handle, 'open', 'C:\Program Files (x86)\Opera\Opera.exe', 'C:\\temp\\1.html', '', SW_HIDE);
   sleep(500);
   ShellExecute(Application.Handle, 'open', 'C:\Program Files (x86)\AutoIt3\AutoIt3.exe', 'c:\temp\1.au3', '', SW_HIDE);
end;
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129088
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87,

Спасибо вам. Вы заставляете мою голову биться чаще.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129092
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87нормальных способов (без необходимости что-то там покупать и от чего-то
зависеть) всё равно нет.

Ну да, ведь чтобы сформировать эту картинку с QR кодом прямо в отчётнике или на
канвасе нужного принтера программист нужен...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129142
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наталья87
Вот бесхитростный код, длиной буквально в 20 строчек. Может, кому пригодится.
Костыльно - но судя по всему, нормальных способов (без необходимости что-то там покупать и от чего-то зависеть) всё равно нет.
Жаль - а ведь казалось бы - печать html куда более чем стандартная операция.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TForm1.Button1Click(Sender: TObject);
var
   f: System.Text;
begin
   //потребуется установка AutoIt и Opera
   System.Assign(f, 'c:\temp\1.au3');
   System.Rewrite(f);
   System.Writeln(f, 'Send("^p")');
   System.Writeln(f, 'sleep(500)');
   System.Writeln(f, 'Send("{enter}")');
   System.Close(f);

   //ShellExecute(Application.Handle, 'print', 'C:\\temp\\1.html', '', '', SW_HIDE);
   ShellExecute(Application.Handle, 'open', 'C:\Program Files (x86)\Opera\Opera.exe', 'C:\\temp\\1.html', '', SW_HIDE);
   sleep(500);
   ShellExecute(Application.Handle, 'open', 'C:\Program Files (x86)\AutoIt3\AutoIt3.exe', 'c:\temp\1.au3', '', SW_HIDE);
end;


Эпохально! Не зря я в вас верил!
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129145
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov> Ещё через пару страниц выяснится

Я, признаться, ник не сразу признал.
Показалось что-то знакомое, но...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129203
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87 ,
https://sources.ru/delphi/delphi_twebbrowser_faq.shtml
Уже все расписано и как на печать отправить и как в bmp сохранить
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129246
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kast2K
Наталья87 ,
https://sources.ru/delphi/delphi_twebbrowser_faq.shtml
Уже все расписано и как на печать отправить и как в bmp сохранить


Там понимаете, в чём дело - в html встроена картинка в формате svg, закодированная в Base64 (не знаю, зачем разработчики так сделали). Соответственно, в Internet Explorer 11 данная картинка не отображается, хотя в Opera и Mozilla отображается. Поэтому варианты с TWebBrowser в Delphi, а также команды ShellExecute( ... print работать не будут.

Не знаю, зачем так сделали - но формат такой как есть. Остаётся получается вариант огород с костылями (Opera и эмуляция нажатий клавиш для печати) или предварительно обрабатывать html, доставать из него svg, декодировать из base64, преобразовывать полученный svg, например, в bmp или png и снова закодировав в base64 - заменять исходный base64(svg) на base64(png) в этом html-коде. Но тогда возникает вопрос - как преобразовать svg во что-нибудь нормальное вроде png или bmp ...
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129247
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наталья87
Kast2K
Наталья87 ,
https://sources.ru/delphi/delphi_twebbrowser_faq.shtml
Уже все расписано и как на печать отправить и как в bmp сохранить


Там понимаете, в чём дело - в html встроена картинка в формате svg, закодированная в Base64 (не знаю, зачем разработчики так сделали). Соответственно, в Internet Explorer 11 данная картинка не отображается, хотя в Opera и Mozilla отображается. Поэтому варианты с TWebBrowser в Delphi, а также команды ShellExecute( ... print работать не будут.

Не знаю, зачем так сделали - но формат такой как есть. Остаётся получается вариант огород с костылями (Opera и эмуляция нажатий клавиш для печати) или предварительно обрабатывать html, доставать из него svg, декодировать из base64, преобразовывать полученный svg, например, в bmp или png и снова закодировав в base64 - заменять исходный base64(svg) на base64(png) в этом html-коде. Способ с преобразованием html лучше и надёжнее, чем эмуляция нажатий клавиш. Но тогда возникает вопрос - как преобразовать svg во что-нибудь нормальное вроде png или bmp ...
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129249
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129257
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наталья87
Kast2K
Наталья87 ,
https://sources.ru/delphi/delphi_twebbrowser_faq.shtml
Уже все расписано и как на печать отправить и как в bmp сохранить


Там понимаете, в чём дело - в html встроена картинка в формате svg, закодированная в Base64 (не знаю, зачем разработчики так сделали). Соответственно, в Internet Explorer 11 данная картинка не отображается, хотя в Opera и Mozilla отображается. Поэтому варианты с TWebBrowser в Delphi, а также команды ShellExecute( ... print работать не будут.

Не знаю, зачем так сделали - но формат такой как есть. Остаётся получается вариант огород с костылями (Opera и эмуляция нажатий клавиш для печати) или предварительно обрабатывать html, доставать из него svg, декодировать из base64, преобразовывать полученный svg, например, в bmp или png и снова закодировав в base64 - заменять исходный base64(svg) на base64(png) в этом html-коде. Но тогда возникает вопрос - как преобразовать svg во что-нибудь нормальное вроде png или bmp ...


А если вытащить bmp, записанный в html в виде base64 (это текст) и преобразовать в двоичный код, сохранить его рядом с html в файле *.bmp. а в html выкинуть bmp в base64 и указать ссылку на сохраненный файл. И тогда можно будет воспользоваться TWebBrowser?
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129260
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge, а ты с кем сейчас разговаривал?
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129264
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge,

У нее там SVG закодирован а не BMP. А преобразовать SVG в BMP не проще чем решить начальную задачу.
Кроме того, переход от вектора к растру портит качество печати.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129267
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkovА преобразовать SVG в BMP не проще чем решить начальную задачу.

К счастью, она уже имеет легко гуглящиеся решения:
https://www.ideasawakened.com/post/simple-svg-images-in-delphi-applications
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129268
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asviridenkov
Belotsky Serge,

У нее там SVG закодирован а не BMP. А преобразовать SVG в BMP не проще чем решить начальную задачу.
Кроме того, переход от вектора к растру портит качество печати.

Все, понял. Но изначально то речь шла про bmp.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129272
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запомни ник топикстартерши и запиши: её топики никогда не про то, что написано в
заголовке или первом сообщении. Это очень опытный проктостоматолог.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129311
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87
команды ShellExecute( ... print работать не будут.
Ну уж подобную чепуху нести Вам совсем стыдно должно быть...
ShellExecute/CreateProcess можно указать какой браузер открывать.
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129428
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам
Наталья87
команды ShellExecute( ... print работать не будут.
Ну уж подобную чепуху нести Вам совсем стыдно должно быть...
ShellExecute/CreateProcess можно указать какой браузер открывать.


Так ведь надо не просто открыть, а распечатать. Открыть html Оперой и дурак сможет. А если развёрнуто:

1. Работает

ShellExecuteA(Application.Handle, 'open', 'C:\Program Files (x86)\Opera\Opera.exe', 'c:\temp\1.html', '', 0);

но это простое открытие Оперой, нужно печатать, а не просто открыть


2. Работает.

ShellExecuteA(Application.Handle, 'print', 'c:\temp\1.html', '', '', 0);

Но это печать встроенным движком Internet Explorer, который не отображает svg.


3. ShellExecuteA(Application.Handle, 'print', 'C:\Program Files (x86)\Opera\Opera.exe', 'c:\temp\1.html', '', 0);

Так не работает.


И как же команде print указать, какой браузер открывать?
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129434
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
Запомни ник топикстартерши и запиши: её топики никогда не про то, что написано в
заголовке или первом сообщении. Это очень опытный проктостоматолог.

зато сразу набегают учителя, и топики разрастаются, как тесто
...
Рейтинг: 0 / 0
Как преобразовать html с заданной шириной в bmp?
    #40129438
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87> Так ведь надо не просто открыть, а распечатать.

Про print это Вы потом запели,
изначально речь шла об открытии.

Ну и в любом случае почитайте про
keybd_event/SendInput в порядке
самообразования, так сказать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как преобразовать html с заданной шириной в bmp?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]