似乎大多数Delphi应用程序都属于两个类:以数据库为中心的应用程序,它们使用Reporting Systems满足所有打印需求,以及不需要打印的应用程序。
对于排除在中间的人(非数据库打印,非报告系统),有一些组件需要帮助。例如,我从一开始就是该产品生命周期中的Developer Express“Express Printing System”客户。用于打印任何组件(网格,电子表格等),也是Developer Express Printing System组件,以帮助我。
到目前为止一切顺利。我正在寻找的另一种方法(在Delphi 2010中)生成一个或两个页面的打印输出,通常包含:
[更新:我以前在彩色激光打印机上使用Developer Express打印组件时出现了奇怪的故障,我现在非常希望能够解决这个问题。 ] ...我仍然认为在那里查看其他打印组件是明智的,因此我当前和未来项目的可能解决方案的“工具箱”可以包括生成打印机页面的简单可靠方法。
所以我真的可以使用建议。我对报告系统,甚至是基于代码的系统都有偏见,但我正在考虑快速报告,即使我对它的使用远远不是典型的用例场景。我的打印页面中没有涉及行和列数据集。
更新/最终:FastReports看起来很棒。它可以轻松地将应用程序内存中的任何数据(例如图像)传输到当前报告页面,如下所示:
procedure TForm2.Button1Click(Sender: TObject);
var
pic:TfrxPictureView;
begin
pic := frxReport1.FindObject('Picture1') as TfrxPictureView;
pic.Picture.Assign(Image1.Picture);
frxReport1.ShowReport;
frxReport1.Print;
end;
答案 0 :(得分:2)
快速报告非常适合我的需求。他们甚至有一个脚本系统。你可以尝试,如果你已经足够好了。
答案 1 :(得分:0)
我一直在使用www.pbear.com中的HtmlViewer组件来处理所有打印解决方案。
当然,你必须创建一个html页面(或两个pagew),但是一旦你能做到这一点,你可以做任何你喜欢的事情(或者至少是html标准提供的东西)。 HtmlViewer有一个预览窗口,因此可以用作通用的“报表”查看器,它可以立即打印输出。
你会惊讶于你可以用html做什么,并且很容易改变'报告',因为它只是简单的HTML。
如果您应该这样做,我很乐意在您遇到的任何问题上为您提供帮助。该组件几年后免费。这对您的问题来说可能是一个简单而廉价的解决方案。