我正在尝试在VB6或VB.Net中编写一个打印布局编辑器,我正在寻找一些参考文章来帮助我入门。
这个想法是编辑器将用于定义发票或报表布局的打印“区域”,允许用户绘制客户地址,发票号,行,总计等的框。然后程序将弄清楚如何将各种盒子的尺寸和位置转换成打印位置以存储在布局定义文件中,该文件稍后由帐户系统用于打印各种报告。请注意,由于各种原因(主要是帐户系统是非Windows),将文本放入Word或类似产品并让它们打印文档不是一种选择。我当然可以手工编辑文档布局文件,但它不是非常用户友好。
正如您可能想象的那样,搜索“表单编辑器”,“布局编辑器”等会带来数百个不相关的结果。令人沮丧的是,我看到了一篇非常相关的文章,但丢失了书签。
我希望有人有一些指示。
谢谢,这听起来比我想象的要复杂得多。我真的希望我能找到我丢失的原始文章,因为它很清楚如何在vb.net中进行此操作。
因为它是打印表单的布局,我认为这会降低复杂性 - 我只需要存储每个打印区域的大小和位置,以及字体,对齐和颜色信息,以及可能的文件名对于图形,如果需要徽标。布局定义文件格式完全由我控制。
答案 0 :(得分:1)
首先,你应该对你正在使用的语言/ API有很好的了解,事实上你真的应该指定你是否使用Windows.Forms,WPF,GTK#,确保你非常良好。
然后,您应该考虑表单编辑器的格式来存储表单。通常,表单编辑器使用XML。如果您还想遵循这一趋势,那么真的应该为VB学习一个优秀的XML API。
最后,请仔细规划您的步骤:
现在,是开始概念验证的时候了:创建一个简单的编辑器,可以加载/保存表单并为它们添加按钮。这可能是最难弄清楚的一步。您可能需要处理事件和其他一些事情,但最终它会起作用(如果没有,那么您可能会再次询问)。 最后,只需添加所需的功能,例如布局定义文件输出,新控件,控制移动/调整大小等。
如果您还需要其他任何内容(包括更具体的说明),请询问。
答案 1 :(得分:0)
我记得在大约10年前的ib中,正好在vb6中开发了这种打印输出格式编辑器。不确定我仍然可以遗憾地找到消息来源:事实上我发现了这个问题,因为我需要写另一个并且希望找到一些代码来开始而不是从头开始再做一次。 无论如何,我或多或少地实现它的方式是这样的:
总而言之,它并不难做到而且非常好,它有点像“水晶报告”的形式编辑。
我记得花一些时间来弄清楚细节,例如网格捕捉不同的字符宽度,在更改文本样式(如浓缩或扩展)时调整字段大小,而不会因为舍入错误而跳转,这样的事情。不要让这吓到你,记住你不必从一开始就照顾好一切,只要小心一点,不要阻止以后做这件事的可能性。
现在我不会建议vb6,除非这是你最了解的并且需要生成.exe而不依赖于目标机器上安装的.net框架。
如果相反你选择使用.net我认为如果你不知道它将是一个学习wpf的好机会,它会比windows.forms更多地创造一些令人印象深刻的图形。