如何将宽表格水平跨多个页面?

2023-12-04

我正在寻找一种方法来分割宽表,以便它们跨越多个页面。目标是使具有大量列的表可读。我找到了一个涵盖该主题的讨论线程;但是,其中引用的示例不可用。 Manning 的“iText in Action”(2006)没有涵盖这个主题。

1.4.8 版本可以这样做吗?如果不能,我应该升级到哪个版本的 iText?


请看一下以下示例我的书的第四章,更具体地说是在Zhang例子。在此示例中,我有一个包含四列的表:(1) 年份、(2) 英文电影标题、(3) 中文电影标题和 (4) 片长。如果您查看生成的 PDF,您会发现该表是垂直分割的。

实现这一点需要更多的工作,而不是简单地添加一个表并允许 iText 决定如何在行之间拆分它。当您想要在列之间拆分时,您需要在代码中组织布局。这是使用以下方法完成的writeSelectedRows()) 方法。

在我的简单书籍示例中,我使用了以下几行:

// draw the first two columns on one page
table.writeSelectedRows(0, 2, 0, -1, 236, 806, canvas);
document.newPage();
// draw the remaining two columns on the next page
table.writeSelectedRows(2, -1, 0, -1, 36, 806, canvas);

首先,我绘制从索引 0 到索引 2 的列。索引 0 的列是第一列,索引 2 的列是不包括的第一列,即第三列。我绘制从索引 0(第一行)到 -1 的行。减一意味着:绘制所有剩余的行。

您还会在下一页上看到负一,其中我绘制索引为 2 的列(第三列),直到索引为 -1 的列(意思是:其余列)。

值 (236, 806) 和 (36, 806) 是坐标:这就是您希望表格开始的位置。您无法定义“结束坐标”。如果表格不适合页面,iText 将继续绘制表格,即使这意味着某些内容超出了页面的可见区域。这意味着使用此方法时必须非常小心:在添加表格之前需要计算行和列的宽度和高度,否则最终可能会出现表格的某些部分不可见的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将宽表格水平跨多个页面? 的相关文章

随机推荐

  • 使用 php 客户端使用 Web 服务(Soap)

    我正在尝试为此编写一个客户端网络服务 它使用两层身份验证 一层位于请求标头中 一层用于服务器中的数据访问 这意味着我需要在标头中传递它 这就是我试图做的 class ChannelAdvisorAuth public DeveloperKe
  • 从Python中的单元素字典中提取键名

    如果我知道我的字典总是有一个元素 有没有办法在不通过列表的情况下提取键名称 我目前正在这样做 data foo 1 2 3 key name data keys 0 有没有更有效的技术 迭代字典产生键 Using next iter gt
  • 插件未加载

    这让我抓狂 我检查并重写了很多次代码 仍然不起作用 这里是 http codepen io cwf pen zGBmgm 虽然tablesorter js已加载 tablesorter is undefined 我读了这里所有的问题 但找不
  • lua中通过url下载文件

    Lua初学者在这里 我正在尝试通过 url 加载文件 但不知何故 我太愚蠢了 无法获取此处的所有代码示例来为我工作 如何在 Lua 中下载文件 但在运行时写入本地文件 从给定的url下载文件并将其存储到lua中的给定路径 socket re
  • 如何更改可选函数参数的默认值

    我需要更改全局变量S at a py from b py 但它被用作函数中的默认值a py a py S string def f s S print s print S b py import a def main a S another
  • Karate 支持是否在 html 报告中显示传入模拟服务器 API 请求的服务器端场景的断言或失败? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 这可能是一个愚蠢的问题 或者可能已经得到回答 但我无法找到任何答案 我需要测试向特定端点或消费者发送 API 请求的微服务 我能够使用空手道成功编写模拟 并根据 服务器端 场景中发生的
  • Facebook 应用程序的 Facebook 集成配置错误

    我正在开发在社交网络上共享照片的 iPhone 应用程序 对于照片共享 我使用 Sharekit 我创建了 Facebook 应用程序并使用其 api 密钥和秘密 使用了正确的 api 密钥和秘密 当我尝试与此应用程序共享图像 甚至是简单的
  • Promise 被拒绝后抛出错误 - Q

    以下是使用 Q 的 Promise 的简短示例 这是 test1 js function testDefer var deferred Q defer fs readFile foo txt utf 8 function error tex
  • 如何重定向到servlet中的错误页面?

    我正在编写 servlet 如果出现异常 我将重定向到我的自定义错误页面 因为我已经这样做了 在 web xml 中
  • TCP服务器haskell字符串比较

    我有一个用 Haskell 编写的小型服务器 当我向它发送内容时 它应该评估发送的内容是否与 auth 函数中的密码 password 匹配 但它永远不是 True 我可以看到发送的消息已通过 因为它打印在 putStrLn msg 处 我
  • JavaScript 的“with”语句有合法用途吗?

    艾伦 斯托姆的评论回应我关于with陈述让我思考 我很少找到使用这种特定语言功能的理由 也从未考虑过它可能会带来什么麻烦 现在 我很好奇如何有效地利用with 同时避免其陷阱 你在哪里找到的with声明有用吗 今天我想到了另一个用途 所以我
  • 单一决策和行动陈述的首选风格是什么?

    对于支持不带括号的单一决策和操作的语言 例如以下示例 if var true doSomething 写这个的首选方式是什么 是否应该始终使用括号 还是应该将其使用保留为各个开发人员的偏好 此外 这种做法是否取决于代码块的大小 例如以下示例
  • 在 Spring/J2EE 应用程序中分离只读和读写

    我们在项目中使用 Spring Spring Data 和 JPA 对于生产服务器 我们希望设置数据库集群 以便所有读取查询都定向到一台服务器 所有写入查询都定向到另一台服务器 这显然需要对 DAO 的构建方式进行一些改变 如果到目前为止
  • UIWebview启用cookie

    我正在尝试访问需要 cookie 的特定 URLUIWebView但我无法访问它 因为 cookie 被禁用 所以我做了以下事情 启用cookie NSHTTPCookieStorage cookieStorage NSHTTPCookie
  • 无法确定条件表达式的类型? [复制]

    这个问题在这里已经有答案了 我刚刚遇到了这个 编写代码来演示 问题 public ICollection
  • jQuery:在提交表单之前执行一些操作

    我有一个页面 上面有一个表单 该表单包含一个文本框和一个提交按钮 提交表单时 通过单击按钮或在文本框中按 Enter 键 我想要进行查找 在本例中 使用 Bing 地图对邮政编码进行地理编码 然后像往常一样将表单提交到服务器 我当前的方法是
  • TkInter:在错误的位置上绘图

    我在画布上加载一张图片 这是一张很大的图片 所以我需要垂直和水平滚动才能看到它 我还让用户使用图像上的鼠标指针绘制随机曲线 线条 一切都很好 除了当我水平或垂直滚动 然后尝试绘制时 我看到曲线不是在鼠标指向的地方绘制的 而是在其他地方绘制的
  • 为什么 Internet Explorer 6 仍然受到一些组织的青睐? [关闭]

    Closed 这个问题是无关 目前不接受答案 or 如何说服我的组织放弃 Internet Explorer 6 在开发 Web 应用程序时必须保持 Internet Explorer 6 兼容性是一场噩梦 但直到我的客户决定放弃它作为官方
  • 如何在 Wolfram Mathematica 中创建 2D (3D) 动画并让相机跟随物体?

    我有一个沿着轨迹移动的图形对象 如何让相机跟随物体移动 让我们画一颗行星及其卫星 相机从指向地球的视角跟随月球 例如 a 3 5 3 5 Animate Show Graphics3D Sphere 3 Cos t Sin t 0 5 Vi
  • 如何将宽表格水平跨多个页面?

    我正在寻找一种方法来分割宽表 以便它们跨越多个页面 目标是使具有大量列的表可读 我找到了一个涵盖该主题的讨论线程 但是 其中引用的示例不可用 Manning 的 iText in Action 2006 没有涵盖这个主题 1 4 8 版本可