带有水平分页符的PDF表格

jar*_*bjo 23 java pdf-generation layout-engine

有人知道Java的(最好是开源的)PDF布局引擎,能够呈现具有水平分页符的表吗?"水平分页"至少是在BIRT中如何命名该功能,但澄清一下:如果一个表有太多的列以适应可用的页面宽度,我希望该表在多个页面上水平分割,例如10列表,第1-4页输出第1-4页,第2页输出第5-10列.如果表格中有太多不能垂直放在一页上,那么当然也应该在下面的页面上重复这一点.

到目前为止,搜索产品一直很困难.我认为这样的功能在其他产品中可能会有不同的名称,因此很难使用谷歌阿姨找到合适的解决方案.

到目前为止,我已经尝试过:

  • BIRT声称支持这一点,但实际的实施是如此错误,它不能使用.我虽然对于这样的功能是不言而喻的,但是行高在所有页面上保持一致,使得在将页面彼此相邻放置时可以对齐行.但是,BIRT会为每个页面分别计算所需的行高.

  • 贾斯帕没有支持.

  • 我也考虑过Apache FOP,但我在XSL-FO规范中找不到任何合适的语法.

  • 对于这项任务,iText通常有点过于"低级别"(使得难以布局预期的PDF文档的其他部分),但似乎不提供支持.

由于似乎有一些其他的报告或布局引擎,可能适合或可能不合适,我发现有点难以猜测究竟要寻找什么,我希望有人可能已经有类似的要求并且至少可以提供一个正确方向的建议.将产品轻松集成到Java服务器应用程序中相对重要,本机Java库是理想的选择.

预期布局

现在,为了使行在所有页面上保持对齐,行高必须按如下方式计算:

Row1.height = max(A1.height, B1.height, C1.height, D1.height)
Row2.height = max(A2.height, B2.height, C2.height, D2.height)
Run Code Online (Sandbox Code Playgroud)

虽然BIRT目前似乎做了类似的事情:

Page1.Row1.height = max(A1.height, B1.height)
Page2.Row1.height = max(C1.height, D1.height)
Page1.Row2.height = max(A2.height, B2.height)
Page2.Row2.height = max(C2.height, D2.height)
Run Code Online (Sandbox Code Playgroud)

第二版

Dev*_*ked 0

您尝试过http://code.google.com/p/flying-saucer/吗?它应该将 HTML 转换为 PDF。