Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.175.159] |
|
Сообщ.
#1
,
|
|
|
Хочется написать простенькую программу, способную отображать и распечатывать документы (бланки).
Условие: программа должна быть кроссплатформенной, написанной на Lazarus. Пока нашёл два компонента, более-менее удовлетворяющих обоим условиям: RichView, написанный Сергеем Ткаченко http://wiki.lazarus.freepascal.org/RichView http://www.trichview.com/ И стандартный компонент TIpHTMLPanel на вкладке IPro Оба компонента пока не совсем доработаны, кроме того для текстовых документов требуется задавать ширину страницы (подразумевается, что бланки должны печататься на листах формата А4 - причём, как в портретной, так и в альбомной ориентации). Как можно решить подобную задачу? Разумеется, можно создать файл в формате RTF / ODT / HTML и открыть его сторонними средствами. Но хотелось бы, чтобы программа сама предоставляла подобную функциональность. Заранее благодарен. |
Сообщ.
#2
,
|
|
|
Предлагаю работать с документом типа PDF, так как он является открытым стандартом для электронных документов.
Можно использовать библиотеки, использующие API для создания PDF документов напрямую или же посредством посреднических слоёв, таких как известная библиотека векторной графики Cairo (вывод текста и графических примитивов), в том числе позволяющей экспортировать изображения в PS, PDF. Если речь идёт от направлении на печать, то лучше PS. Если же нужен документ, то лучше PDF. |
Сообщ.
#3
,
|
|
|
Да я не против, можно и PS, и PDF - вопрос только в том, чтобы отобразить документ на экране с кнопочкой печати, а потом жмакнуть на неё и получить хардкопи один в один - типа WYSIWYG. Я не про форматы спрашиваю, а про то, какие компоненты имеются в Лазаре для корректного отображения этих форматов. Нет, я понимаю - при желании можно и TImage использовать, вот только подгонка того, что видишь на экране с подгонкой того, что будет при распечатке - занятие не тривиальное.
З.Ы. И было бы неплохо иметь средства для простого редактирования форм таких бланков. В шаблонный бланк данные вставить несложно, шаблоны тоже легко хранить в любой БД. Самая большая сложность - проверить правильность введённых данных и корректно их распечатать. Потому я и смотрел в сторону HTML - ИМХО, проще тегов ничего нет. Вот только с корректной распечаткой таких данных может получиться затык. В Дельфи есть подобные примеры с компонентом TRichEdit. Но в Лазаре такого компонента нет. З.З.Ы. Возможно применение внешних средств, в том числе библиотеки Cairo, так что за подсказку спасибо. Попробую покурить мануалы. Просто хотелось бы найти наиболее лёгкий и логичный путь. |
Сообщ.
#4
,
|
|
|
Пользователь будет заполнять форму на VCL со всеми проверками, а данные будут использоваться при генерации вёрстки бланка средствами Каиро. Потом тот же layout направляешь на PDF. Вектор тем и хорош, что с пропорциями нет проблем. Перед печатью покажешь воссозданное изображение PNG той же Cairo.
Добавлено Кстати, у Каиро есть также возможность вывода верстки на печать в Win32... |
Сообщ.
#5
,
|
|
|
Да-да, это и интересует. Спасибки, буду смотреть как Lazarus работает с Cairo.
|