Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Печать и предпросмотр.   Найти похожие ветки 

 
Тимохов ©   (2004-03-10 14:28) [0]

В настоящее время для решения сабжа используется следующая конструкция:
1. Есть некий построитель печати - некий объект, содержащий таблицы, вложенные таблицы, строки и т.д. Задача, вывести его на печать с предпросмотром.
2. Сначала идет рассчет переносов, разбиения на страницы и т.д. Рассчет делается исходя из того, что ширина страницы равна ширине canvas принтера, а высота - высоте. После рассчета делается вывод. Весь вывод делается на TMetaFileCanvas c шириной равной ширине принтера (по точками).
3. В дальнейшем готовый список метафайлов (по количеству страниц) бросается с помощью StretchDraw сначала на PaintBox (для предпросмотра), затем на Printer.Canvas (соответственно, для печати).

Проблемы.
Сами понимаете, что на экране на лист отводится существенно меньше точек, чем есть на принтере (у меня по ширине: экран - 900 точек, принтер - 6500). На принтер все выводится замечательно, т.к. все рассчеты размеров шрифтов, переносов строк и т.д. делалить именно в системе координат принтера (т.е. 6500 на 8500 точек). Линии таблицы также рассчитывались для принтера, исходя из того, что на принтере ширина линии должна получится 0.2 мм (примерно 7 точек).
При показе метафайла на canvas PaintBox"а наблюдается такой неприятный эффект - некоторые линии не видны. Ясно почему это происходит - при масштаблировке некторые линии шириной 7 становятся шириной 1, а некоторые 0.
Проверенный вариант решения 1.
Пробовал специально для предпросмотра увеличивать ширины с 0.2 мм до 0.4. В результате все линии видны, но некторые становятся шириной в 2 точки (что также не красиво).
Проверенный варинат решения 2
Еще один из вариантов решения проблемы (проблема, как вы поняли, в некрасивом предпросмотре) заключается в том, чтобы не брать для предпросмотра метафайл для печати, а строить новый (или прямо рисовать на канве PaintBox), соответственно в системе координат экрана. В этом случае получается другой неприятный эффект - линни видны, но строки выглядят немного не так, как в реальности на печати (либо шире, либо уже). Опять же ясно, почему такое происходит - размеры шрифтов дискретны, и при пропорцианальном уменишении для предпросмотра размеры изменяются скачками.
Проверенный варинат решения 3
Еще один вариант - и для предпросмотра и для печати все строить и рассчитывать исходя из ширины видимой части на предпросмотре (т.е. примерно из 900 точек по горизонтали). Такой подход также не лишен недостатков - линия в 1 точку на печати становится достаточно жирной, что не желательно.

Вопросы:
1. Как кто справляется с проблемой построения предпросмотра и последующей печати?
2. Какую библиотеку с исходниками на дельфи вы рекоммендуете постмотреть, где было бы решение (удачное, замечу) проблемы построения предпросмотра и последующей печати?


 
Тимохов ©   (2004-03-10 17:19) [1]

Еще раз подниму вопрос.

Я думаю, что скорее всего тут нет людей (или бывают редко), кто сталкивался с потребностью самостоятельно организовать какчественный сабж. Также думаю, что в основном все пользуются чем-то еще.

Поэтому, переформулирую немного вопрос: кто чем пользуется для построения печатных отчетов? Замечу, что интересует наличие исходников - без исходников у меня и самого есть - quick report. Посоветуйте, что сейчас есть нормально работающее и еще с исходниками :))))

Тырить идеи - мое кредо :)))))


 
Тимохов ©   (2004-03-10 17:22) [2]

И еще - может у кого исходники quick report есть? Там вполне нормально сделан предпросмотр - интересно было бы посмотреть как они это делают.


 
Гаврила   (2004-03-10 17:45) [3]

SetViewportOrgEx пробовал ? Не посмогает ?


 
Тимохов ©   (2004-03-10 17:49) [4]


> Гаврила   (10.03.04 17:45) [3]

Пойду посмотрю, чем мне это может помочь.
Спасибо.


 
HSolo ©   (2004-03-10 18:54) [5]

FastReport / FreeReport ?


 
Тимохов ©   (2004-03-10 19:07) [6]

Fast report уже скачал - изучаю.
Пойду качать FreeReport.
Спасибо.



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

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.058 c
1-1078559464
SS
2004-03-06 10:51
2004.03.28
Загрузка компонента


3-1077807796
Andrew
2004-02-26 18:03
2004.03.28
всем здрасти! подскажите плиз, что то не получется отобразить


14-1078387976
Карелин Артем
2004-03-04 11:12
2004.03.28
Вирь или не вирь?


14-1077891199
Cobalt
2004-02-27 17:13
2004.03.28
:-)))


3-1077381952
HMT
2004-02-21 19:45
2004.03.28
Что "правильнее" использовать при построении систем склад-учёта?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский