Преобразователь изображения / формы в Паскаль / Delphi код? - PullRequest
2 голосов
/ 04 июня 2011

Кто-нибудь знает о каком-либо редакторе, позволяющем визуально оформить форму (под формой я имею в виду не форму DFM или Delphi, а «бумажную форму», такую ​​как предварительно напечатанные формы, которые вы заполняете некоторой информацией), и которая генерируеткоманды pascal для рисования этой формы на холсте принтера (или изображения)?

Мне нужен простой способ визуально нарисовать / оформить эту форму, состоящую только из линий и текста, и способ преобразовать ее вКоманды Pascal, которые при запуске будут рисовать эту форму в Canvas (изображение или принтер), учитывая исходный макет и масштаб, не имеют значения для Canvas DPI, в котором она рисуется.

Обновление: возможно, я не былнедостаточно ясно о том, что мне нужно и зачем мне это нужно.Я разработал компонент с открытым исходным кодом под названием TFreeBoleto (freeboleto.sf.net).Он используется для генерации и печати банковских чеков (распространенный метод выставления счетов людям в Бразилии).Прямо сейчас компонент использует изображение TBitmap, содержащее маску заготовки, и методы TextOut для динамических областей (т. Е. Номер заготовки, имя клиента и т. Д.).Это нормально, если смотреть на экран, но некоторые люди жалуются, что качество напечатанного изображения не очень хорошее.Компонент использует процедуру BltTBitmapAsDib для максимизации качества печати, но некоторые люди все еще считают, что она недостаточно хороша.Итак, моя идея состояла в том, чтобы избежать использования растрового изображения в качестве макета формы и рисовать все непосредственно на холсте (как на форме, так и на принтере). Посмотрите здесь пример того, как выглядит банковская заготовка .

Конечно, ReportBuilder и / или FastReport могут решить проблему, но они не бесплатны, поэтому я не могу включить ее всоставная часть.Мне нужно "нативное" решение, которое сможет компилировать любая стандартная установка Delphi.

Ответы [ 4 ]

3 голосов
/ 04 июня 2011

Вы можете получить то, что хотите, от дизайнера отчетов Fast Reports, который является коммерческой системой отчетности для Delphi.Помните, что отчет - это просто страница.Эта страница может быть показана на экране или распечатана на принтере.

Вы также можете обнаружить, что что-то вроде TRichView поможет вам.

Вне зависимости от того, используете ли вы TRichView или нет, я бы хотел использовать HTML, чтобы делать то, что вы хотите.Я бы использовал HTML + CSS, чтобы сделать макет экрана и принтера, который также можно просматривать в Интернете.Для простого текстового макета плюс текстовые поля я думаю, что даже голых таблиц HTML и HTML может быть достаточно.Для визуального проектирования простых текстовых страниц с использованием приложения Delphi я использовал бы TRichView.

В обоих случаях вы будете создавать документы, а не код.Создать код, который создает страницу без использования какой-либо системы документов, действительно было бы очень сложно, и я не уверен, что вы действительно будете делать с этим кодом, поскольку вам потребуется компилятор или интерпретатор для преобразования этого кода в нечто, что вымог бы использовать.Пожалуйста, уточните, что вы подразумеваете под «созданием кода», и какой синтаксис вы хотите, чтобы этот код использовал.Если HTML является кодом в вашем определении «кода», то, возможно, HTML является лучшим видом «кода» для вашей проблемы.

1 голос
/ 04 июня 2011

Ознакомьтесь с ReportBuilder @ http://www.digital -metaphors.com /

Это коммерческий инструмент отчетности для Delphi - в течение длительного времени, очень высокого качества, со всеми собственными источниками Delphiкод в комплекте с ним.Я использую его для важного коммерческого проекта прямо сейчас и очень рекомендую его (я не работаю на них.) За последние годы я использовал МНОГИЕ инструменты отчетности Delphi, и это лучший IMO,

RBuilder также имеет расширенную поддержку эмуляции бумажных форм, см. http://www.digital -metaphors.com / products / report_design / form_emulation.html

, с которыми я не работалэта функция, но вы можете загрузить полнофункциональную демоверсию и попробовать ее.

1 голос
/ 04 июня 2011

Я делаю свою работу с WPTools . Это также коммерческий продукт. Ядро очень хороший текстовый процессор и форм-дизайнер. Движок может отображать текст и формы на любой холст (экран, принтер, а также создавать PDF) и является очень гибким. Вывод в основном RTF и HTML.

Я также не вижу никаких преимуществ в создании кода на Паскале для перерисовки формы. Мне нужен хороший WYSIWYG-редактор, который создает документ, который соответствует вашим потребностям.

0 голосов
/ 04 июня 2011

Yoy может использовать Adobe Acrobat (полная версия) для создания форм.

Затем вы можете использовать бесплатный Acrobat Reader для отображения и печати форм или других объектов COM в вашем приложении.

Я думаю,это лучшее решение для вас.

PS Все инструменты для отчетов, включенные в Delphi, бесплатны для разработки формы и могут свободно распространяться, если пользователь только просматривает и печатает уже созданные отчеты.

То же самое относится к Adobe Acrobat (вы можете распространять формы), но вы добавили, что вам нужно распечатать форму и текст поверх формы.Может быть, это проще, если вы используете отчеты, но это можно сделать и с помощью PDF.

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

PPS Я прочитал ваш аппетит во второй раз.Так как вы используете TBitmap и вы можете TextOut так: Вы можете использовать TMetafile.Существует множество редакторов метафайлов, и вы можете свободно распространять метафайлы.

...