用于从Delphi打印带注释图像(TPicture)的文档的最佳工具[实践]

时间:2010-02-19 14:25:11

标签: delphi printing components delphi-2010

似乎大多数Delphi应用程序都属于两个类:以数据库为中心的应用程序,它们使用Reporting Systems满足所有打印需求,以及不需要打印的应用程序。

对于排除在中间的人(非数据库打印,非报告系统),有一些组件需要帮助。例如,我从一开始就是该产品生命周期中的Developer Express“Express Printing System”客户。用于打印任何组件(网格,电子表格等),也是Developer Express Printing System组件,以帮助我。

到目前为止一切顺利。我正在寻找的另一种方法(在Delphi 2010中)生成一个或两个页面的打印输出,通常包含:

  • 标题和标题
  • 页眉和页脚
  • 能够包含大图片,这是页面上的主要内容。在这种情况下,图片(位图)是我自定义的图表。
  • 在人类已知的每种版本的窗户上都有100%的防弹输出质量,每种类型的打印机都是人类所知的。

[更新:我以前在彩色激光打印机上使用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;

2 个答案:

答案 0 :(得分:2)

快速报告非常适合我的需求。他们甚至有一个脚本系统。你可以尝试,如果你已经足够好了。

http://fast-report.com/en/

答案 1 :(得分:0)

我一直在使用www.pbear.com中的HtmlViewer组件来处理所有打印解决方案。

当然,你必须创建一个html页面(或两个pagew),但是一旦你能做到这一点,你可以做任何你喜欢的事情(或者至少是html标准提供的东西)。 HtmlViewer有一个预览窗口,因此可以用作通用的“报表”查看器,它可以立即打印输出。

你会惊讶于你可以用html做什么,并且很容易改变'报告',因为它只是简单的HTML。

如果您应该这样做,我很乐意在您遇到的任何问题上为您提供帮助。该组件几年后免费。这对您的问题来说可能是一个简单而廉价的解决方案。