以编程方式创建报表时,如何对其进行缩放以使所有数据都适合?

时间:2012-11-13 15:27:57

标签: delphi pdf scale

申请说明 我有一个允许用户将报告输出到文档的应用程序。写入文档的数据采用表格形式。表中的列数和表中每个单元格中包含的字符串的宽度在运行时之前是未知的(它取决于用户运行的查询,他们希望在报告中看到的内容等)。

我正在使用Delphi XE和Gnostice的eDocEngine来创建PDF文档,然后在文档中创建一个表并将报告数据写入其中。

问题: 我遇到的问题是,在文档从文档的右侧消失之前,您只能在文档中写入一定数量的列(6或7)。用户在表中生成包含30或40列的报表(因为它们对应于数据库中的字段,它们运行查询)并不是未知的,因此我需要能够使表适合完全放入文档中,无论它包含多少列。

由于PDF可以缩放,我想我可以缩小字体大小和列宽,并以这种方式适应所有内容,因为用户可以使用PDF阅读器放大并滚动表格。我需要知道的是:

  1. 有没有更好的方法让整个桌子适合页面?
  2. 如果缩小/缩放是这样做的最佳/唯一方式,那么确保所有内容都适合而不会使文档看起来很奇怪的最有效方法是什么(即表格理想地应该在页面上伸展,而不是聚集在一起由于一些随机缩放算法而在左侧。
  3. 修改 我刚刚做了一些挖掘,我发现了“inputXRes”和“inputYRes”属性,这些属性改变了文档中画布的规模,看起来很有希望,但我现在无法让它正常工作。任何人都可以了解这些属性的使用方式吗?文本本身是缩放的,但是表的大小保持不变,这意味着我现在在一个巨大的表格单元格中间有一小段文本,并且该表格仍然只在报告中显示7列。

1 个答案:

答案 0 :(得分:3)

不要弄乱缩放和字体大小。

您的客户将使用PDF阅读器,并且有一些选项可帮助阅读信息,例如1:1。但是当您更改缩放比例或字体大小时,您无法读取信息,因为它太小了。

获取适合客户需求的字体大小,并扩展页面大小以适应桌面大小。

使用PDF阅读器,您的客户可以根据自己的喜好查看和打印(缩小至适合)以及打印可以处理的纸张尺寸。

顺便说一句: 如果更改分辨率并在画布上绘制一条长度为2英寸的线,它将长2英寸,但字体大小为12(像素)的文本将增大或缩小。