1

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

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

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

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

  1. 有没有更好的方法让整个表格适合页面?
  2. 如果缩小/缩放是最好/唯一的方法,那么确保所有内容都适合而不会使文档看起来很奇怪的最有效方法是什么(即理想情况下,表格应该在页面上伸展,而不是堆积在左边手边,因为一些随机缩放算法)。

编辑 我刚刚做了一些更多的挖掘,我发现“inputXRes”和“inputYRes”属性会改变文档中画布的比例,这看起来很有希望,但我无法让它在片刻。任何人都可以阐明如何使用这些属性吗?文本本身是缩放的,但表格的大小保持不变,这意味着我现在在一个巨大的表格单元格中间有一小段文本,表格仍然只显示报告中的 7 列。

4

1 回答 1

3

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

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

获得最适合客户需求的字体大小,并扩展页面大小以适应表格大小。

使用 PDF Reader,您的客户可以选择查看和打印(缩小以适合)他们喜欢的内容以及他们的打印可以处理的纸张尺寸。

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

于 2012-11-13T16:40:02.060 回答