Sciter3: Копирование в Clipboard, печать?
От: Hawk Россия  
Дата: 14.02.14 09:31
Оценка:
Есть задача скопировать отрендеренный HTML в Clipboard в виде EMF (на самом деле формат значения не имеет — главное, чтобы MS Office понимал картинку как векторную). Возможно ли это в Sciter3 и если возможно, то как?

То же самое с печатью — как в Sciter3 отобразить HTML на device context принтера?
Re: Sciter3: Копирование в Clipboard, печать?
От: c-smile Канада http://terrainformatica.com
Дата: 16.02.14 05:39
Оценка:
Здравствуйте, Hawk, Вы писали:

H>Есть задача скопировать отрендеренный HTML в Clipboard в виде EMF (на самом деле формат значения не имеет — главное, чтобы MS Office понимал картинку как векторную). Возможно ли это в Sciter3 и если возможно, то как?


Честно говоря я не понимаю как вообще в EMF можно представить вывод Direct2D. EMF это ж сугубо GDI.
Текст например там в основном OpenFont шрифтами выводится. Вообще аналогов в GDI нет.

H>То же самое с печатью — как в Sciter3 отобразить HTML на device context принтера?


Пока нет, все собираюсь. В любом случае печать будет в битмап размером в страницу и эта битмап будет на принтер отправляться.
В принципе в W8 добавлена поддержка печати в Direct2D но это только W8.
Re[2]: Sciter3: Копирование в Clipboard, печать?
От: Hawk Россия  
Дата: 16.02.14 20:40
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Честно говоря я не понимаю как вообще в EMF можно представить вывод Direct2D. EMF это ж сугубо GDI.

CS>Текст например там в основном OpenFont шрифтами выводится. Вообще аналогов в GDI нет.

Sciter3, насколько понимаю, умеет работать в режиме GDI+. Т.е. теоретически можно сохранить данные в формате EMF+.

Здесь есть пример копирования вывода GDI+ в буфер обмена. Насколько понял, должен быть способ подсунуть объект Graphics в Sciter, который с помощью GDI+ нарисует картинку, а потом эту картинку перенести в буфер обмена. Или то же самое сделать внутри Sciter. Возможно ли такое реализовать?
Re[3]: Sciter3: Копирование в Clipboard, печать?
От: Hawk Россия  
Дата: 22.08.16 14:19
Оценка:
H>Здесь есть пример копирования вывода GDI+ в буфер обмена. Насколько понял, должен быть способ подсунуть объект Graphics в Sciter, который с помощью GDI+ нарисует картинку, а потом эту картинку перенести в буфер обмена. Или то же самое сделать внутри Sciter. Возможно ли такое реализовать?

Андрей, вопрос еще в силе. Может есть какие-нибудь идеи?
Re[4]: Sciter3: Копирование в Clipboard, печать?
От: c-smile Канада http://terrainformatica.com
Дата: 22.08.16 22:24
Оценка: 4 (1)
Здравствуйте, Hawk, Вы писали:

H>>Здесь есть пример копирования вывода GDI+ в буфер обмена. Насколько понял, должен быть способ подсунуть объект Graphics в Sciter, который с помощью GDI+ нарисует картинку, а потом эту картинку перенести в буфер обмена. Или то же самое сделать внутри Sciter. Возможно ли такое реализовать?


H>Андрей, вопрос еще в силе. Может есть какие-нибудь идеи?


Какой из двух вопросов?

Печать — Sciter уже печатает.

Если это про EMF то Direct2D про EMF ничего не знает.
Проблема в том Direct2D и GDI+ используют разные шрифты. Т.е. если я что-то и нарисовал в D2D то перенести его в GDI+ один в один невозможно.
Ну и потом EMF это поток GDI команд. GDI не знает ничего ни про anti-aliasing, ни про alpha channel.

Поэтому в настоящее время только рисование элемента в new Image(w,h, element) и потом оный image в clipboard.
Примеры в sdk/samples/graphics/test-dynamic-background.htm и sdk/samples/graphics/test-image-render-element.htm
Re[5]: Sciter3: Копирование в Clipboard, печать?
От: Hawk Россия  
Дата: 23.08.16 10:50
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Т.е. если я что-то и нарисовал в D2D то перенести его в GDI+ один в один невозможно.

Один в один и не надо. Главное, чтобы была возможность положить в cliipboard векторную картинку. Пусть даже отличающуюся от оригинала.

Вообще, странно, что подобной задачи никогда не возникало.

Например, у меня HTMLayout используется для построения диаграмм:



В результате при копировании в Excel получается примерно такая картинка:



Которая, в отличие от растровой, хорошо масштабируется:



Если бы Sciter умел нечто подобное, можно было бы полностью перейти на него и не таскать за собой HTMLayout.
Re[6]: Sciter3: Копирование в Clipboard, печать?
От: c-smile Канада http://terrainformatica.com
Дата: 25.08.16 05:42
Оценка:
Здравствуйте, Hawk, Вы писали:

H>Здравствуйте, c-smile, Вы писали:


CS>>Т.е. если я что-то и нарисовал в D2D то перенести его в GDI+ один в один невозможно.

H>Один в один и не надо. Главное, чтобы была возможность положить в cliipboard векторную картинку. Пусть даже отличающуюся от оригинала.

H>Вообще, странно, что подобной задачи никогда не возникало.


H>Которая, в отличие от растровой, хорошо масштабируется:


Плохо она масштабируется. Особенно шрифты. GDI использует пиксельную сетку поэтому расстояния между буквами плывут при разных scale factors.
EMF на самом деле нифига не вектор а что-то промежуточное на отвяжись.

H>Если бы Sciter умел нечто подобное, можно было бы полностью перейти на него и не таскать за собой HTMLayout.


Скорее всего ничего разумного не будет пока не появится нормальный векторный формат в Windows. Что-то типа PS может быть.
Re[7]: Sciter3: Копирование в Clipboard, печать?
От: aloch Россия  
Дата: 02.09.16 11:52
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Скорее всего ничего разумного не будет пока не появится нормальный векторный формат в Windows. Что-то типа PS может быть.


Так уже есть XPS, новый (с Vista) метафайл для печати


Re[8]: Sciter3: Копирование в Clipboard, печать?
От: Слава  
Дата: 02.09.16 12:23
Оценка:
Здравствуйте, aloch, Вы писали:

A>Так уже есть XPS, новый (с Vista) метафайл для печати


При сколь бы то ни было большом размере, оно тормозит. Говорю по опыту изготовления отчетов на WPF в FlowDocument.
Re[9]: Sciter3: Копирование в Clipboard, печать?
От: aloch Россия  
Дата: 02.09.16 16:05
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, aloch, Вы писали:


A>>Так уже есть XPS, новый (с Vista) метафайл для печати


С>При сколь бы то ни было большом размере, оно тормозит. Говорю по опыту изготовления отчетов на WPF в FlowDocument.


Ну тормозит не оно, а WPF. Нативный растеризатор (который не доступен простым смертным) весьма шустрый.


Re[10]: Sciter3: Копирование в Clipboard, печать?
От: Слава  
Дата: 02.09.16 16:16
Оценка:
Здравствуйте, aloch, Вы писали:

A>Ну тормозит не оно, а WPF. Нативный растеризатор (который не доступен простым смертным) весьма шустрый.


Я сохранял документ в .xps файл и открывал стандартным виндовым просмотрщиком. То же самое, тормоза.
Re[8]: Sciter3: Копирование в Clipboard, печать?
От: c-smile Канада http://terrainformatica.com
Дата: 02.09.16 17:26
Оценка:
Здравствуйте, aloch, Вы писали:

A>Здравствуйте, c-smile, Вы писали:


CS>>Скорее всего ничего разумного не будет пока не появится нормальный векторный формат в Windows. Что-то типа PS может быть.


A>Так уже есть XPS, новый (с Vista) метафайл для печати


Это для печати. Для clipboard и последующего embedding XPS не подходит.

XPS это вариант старого PS, т.е. концептуально то же самле что и PDF.

Тут скорее всего нужен SVG. Но не знаю как умеет ли Office его интегрировать в документы.
Re[2]: Sciter3: Копирование в Clipboard, печать?
От: aloch Россия  
Дата: 05.09.16 12:09
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Честно говоря я не понимаю как вообще в EMF можно представить вывод Direct2D. EMF это ж сугубо GDI.


А это не поможет? https://msdn.microsoft.com/en-us/library/windows/desktop/dd370971(v=vs.85).aspx

там "Draw Direct2D Content to a GDI Device Context"


Re[3]: Sciter3: Копирование в Clipboard, печать?
От: c-smile Канада http://terrainformatica.com
Дата: 05.09.16 20:54
Оценка:
Здравствуйте, aloch, Вы писали:

A>А это не поможет? https://msdn.microsoft.com/en-us/library/windows/desktop/dd370971(v=vs.85).aspx


A>там "Draw Direct2D Content to a GDI Device Context"


Не поможет. Это рисование в GDI bitmap. Такое Sciter и так делает когда нужно bitmap в clipboard положить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.