Вниз
Скачать: CL | DM;

Как быстро печатать большие картинки?   Найти похожие ветки 

 
Mr. D   (2006-11-19 06:18) [0]

Я печатаю через класс TPrinter, все замечательно и хорошо, кроме одного... У стандартного принтера формата A4 разрешение листа порядка 4000x6000, это получается огромная картинка... Как печатать информацию на всем листе?!?!

Мне такое разрешение для текста и не нужно, чтобы напечатать полный лист приходится создавать картинки размером по десятку мегабайт, комп подвисает при этом естественно....

Что делать в этой ситуации? Как Word так легко и быстро печатает документы? Я бы понял, если там какой текстовый режим был, но word же может печатать текст с картинками, и ничего не тормозит, спулер печати не начинает жрать 50 mb памяти (как у меня)...

Да и куча побочных проблем всплывает, например TBitmap нельзя создать такого огромного разрешения :( Не знаю что и делать...


 
Andy BitOff ©   (2006-11-19 13:19) [1]

Чего-то я не понял? А что канву у Тпринтера отменили? Или я действительно чего-то не понял. Если я все понял правильно, то TPrinter+F1


 
Mr. D   (2006-11-19 17:44) [2]

Есть у него канва, конечно...

Но как это связано с сабжем?


 
Mr. D   (2006-11-19 17:56) [3]

Объясню более подробно.

В частности, стоит задача распечатать страничку HTML так, как она бы отображалась браузером. Соответственно, используется TWebBrowser, страничка сохраняется в картинку, потом печатается. Сейчас сделал, чтобы прямо сам WebBrowser сохранял картинку в канву TPrinter - наиболее быстрый способ (промежуточно сохранить в TBitMap даже и не получится, не хватает памяти), но все равно он занимает много ресурсов.

Чтобы страница хорошо влезла в A4 - то и HTML в браузере должен быть написан под разрешение где-то 4000x6000 - жутко неудобно. Можно, конечно, сделать маленький HTML с нужными пропорциями, потом снять картинку с браузера и ресайзить ее под разрешение принтера (хотя я не знаю как ресайзить), но это опять же наверняка займет много ресурсов, такое огромное разрешение.

И что делать в такой ситуации?


 
Andy BitOff ©   (2006-11-19 18:28) [4]

Насколько мне известно разрешение принтера измеряется в DPI и определяется с помощью GetDeviceCaps, а там параметров достаточно. Покапайся. А уж как ресайзить, это уж извиняй, в "начинающим"


 
Mr. D   (2006-11-19 18:33) [5]

>Насколько мне известно разрешение принтера измеряется в DPI и
>определяется с помощью GetDeviceCaps

зачем оно мне? Я разрешение страницы и так знаю, я его уже написал...

>А уж как ресайзить, это уж извиняй, в "начинающим"

да не в этом дело. Я и так понимаю, что ресайзить до таких разрешений - это очень ресурсоемко...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.973 c
15-1163678149
Kolan
2006-11-16 14:55
2006.12.10
Что значит присоединенная информация :KAVICHS:$DATA


2-1164103100
Андрей Сенченко
2006-11-21 12:58
2006.12.10
TResourceStream.CreateFromID () "из себя"


3-1159976497
Sanya_BBB
2006-10-04 19:41
2006.12.10
Как внести данные сразу в главную и дочернюю таблицы. В сетевой Б


15-1164090702
Cerberus
2006-11-21 09:31
2006.12.10
Где скачать учебники


10-1126113296
kblc
2005-09-07 21:14
2006.12.10
inproc com-server




   Наверх