有没有人知道任何编辑器允许在视觉上设计一个表单(通过表单我不是指DFM或Delphi表单,而是一个“纸质表单”,就像那些预先打印的表单,你填写了一些信息)并生成pascal命令在打印机(或图像)画布中绘制该表单?
我想要的是一种直观地绘制/设计此表单的简单方法,仅由行和文本组成,以及将其转换为Pascal命令的方法,在运行时,将在Canvas(图像或打印机)中绘制该表单,尊重原始布局和比例,与绘制它的Canvas DPI无关。
更新:也许我不清楚我需要什么以及为什么需要它。我开发了一个名为TFreeBoleto(freeboleto.sf.net)的开源组件。它用于生成和打印银行方坯(这是在巴西向人们收费的常用方法)。现在,该组件使用包含“billet”掩码的TBitmap图像,以及动态区域的TextOut方法(即:方坯编号,客户名称等)。在屏幕上查看时很好,但有些人抱怨打印图像的质量不好。该组件使用BltTBitmapAsDib程序来最大化打印质量,但有些人仍然认为它不够好。因此,我的想法是避免使用位图图像作为表单布局,并直接在画布中绘制所有内容(包括表单和打印机)。 Check here for a sample of what a bank billet looks like
当然ReportBuilder和/或FastReport可以解决问题,但它们不是免费的,所以我不能将它包含在组件中。我需要“本机”解决方案,任何标准的Delphi安装都能够编译。
答案 0 :(得分:3)
您可以从快速报告报告设计器中获得您想要的内容,这是Delphi的商业报告系统。请记住,报告只是一个页面。该页面可以显示在屏幕上或打印在打印机上。
您也可能会发现像TRichView这样的东西会帮助您。
无论是否特别使用TRichView,我都会考虑使用HTML来做你想做的事情。我会使用HTML + CSS同时进行屏幕和打印机布局,也可以在网上查看。对于简单的文本布局和文本框,我认为即使是裸HTML和HTML表也可能就足够了。为了在视觉上设计简单的文本页面,使用Delphi应用程序,我会使用TRichView。
在这两种情况下,您都将创建文档,而不是代码。创建一个不使用任何文档系统的页面创建代码确实非常困难,而且我不确定你会用这个代码做什么,因为你需要一个编译器或解释器来将代码转换为你的代码可以用。请通过“创建代码”澄清您的意思,以及您希望该代码使用的语法。如果HTML是您的“代码”定义中的代码,则HTML可能是您问题的最佳“代码”。
答案 1 :(得分:1)
我使用WPTools进行表单工作。它也是一种商业产品。核心是一个非常好的文字处理器和表单设计器。引擎可以将文本和表单渲染到任何画布(屏幕,打印机,也可以创建pdf),并且非常灵活。输出主要是rtf和html。
我也认为创建pascal代码以重绘表单没有任何优势。我认为,你需要的是一个好的WYSIWYG编辑器,它可以创建一个符合你需求的文档。
答案 2 :(得分:1)
查看ReportBuilder @ http://www.digital-metaphors.com/
它是Delphi的商业报告工具 - 长期以来,质量非常高,所有本机Delphi源代码都随之打包。我现在正在将它用于一个重要的商业项目,我高度推荐它(我不是为他们工作。)多年来我使用了 MANY Delphi报告工具,这个是最好的IMO。
RBuilder还对纸张表单仿真提供了广泛的支持,请参阅: http://www.digital-metaphors.com/products/report_design/form_emulation.html
我没有使用过该功能,但您可以下载功能齐全的演示并试用它。
答案 3 :(得分:-1)
Yoy可以使用Adobe Acrobat(完整版)来创建表单。
然后,您可以使用免费的Acrobat Reader在您的应用程序中显示和打印表单或其他COM对象。
我认为这是最好的解决方案。
PS Delphi中包含的所有报表工具都可以免费为您设计表单,如果用户只预览和打印已设计的报表,则可以免费分发。
这同样适用于Adobe Acrobat(您可以分发表单),但您已经添加了需要在表单上打印表单和一些文本。如果您使用报告可能会更容易,但使用PDF也可以这样做。
大多数报表引擎不是开源的,但可以自由分发。创建PDF有许多组件 - 付费(一次),免费,以及开源。
<强> PPS 我第二次看了你的updete。由于您使用的是TBitmap,因此您可以使用TextOut:您可以使用TMetafile。元文件有很多编辑器,可以免费分发元文件。