Crystal reports birt能否支持从数据库读取html表并将其动态显示为pdf报告文件?

Crystal reports birt能否支持从数据库读取html表并将其动态显示为pdf报告文件?,crystal-reports,jasper-reports,birt,Crystal Reports,Jasper Reports,Birt,我遇到了一个场景,我必须从数据库中读取html数据,并将其显示在pdf报告中。此html数据还包含表结构标记和其中的其他html元素。以前我们使用jasper reports来满足我们的报告需求,但最近我们知道jasper不支持上述功能,我想知道可以使用哪种报告工具,以便将其与servoy结合。birt是否提供此功能?是的,birt有一个文本元素,我们可以在其中将显示类型设置为HTML。如果html表位于数据集字段中,则只需使用“value of”标记将其包含在文本表达式中,如下所示: <

我遇到了一个场景,我必须从数据库中读取html数据,并将其显示在pdf报告中。此html数据还包含表结构
标记和其中的其他html元素。以前我们使用jasper reports来满足我们的报告需求,但最近我们知道jasper不支持上述功能,我想知道可以使用哪种报告工具,以便将其与servoy结合。birt是否提供此功能?

是的,birt有一个文本元素,我们可以在其中将显示类型设置为HTML。如果html表位于数据集字段中,则只需使用“value of”标记将其包含在文本表达式中,如下所示:

<VALUE-OF format="HTML">row["htmlTableField"]</VALUE-OF>
行[“htmlTableField”]
PDF格式考虑了这些html元素,包括大多数简单的样式设置,如背景颜色、文本对齐、边框等


AFAIK没有一个著名的报告工具支持这一点,尽管在BIRT中它“以某种方式”工作,但还不够好,无法使用。
原因很简单,我认为:报告工具必须包含完整的浏览器引擎(如WebKit或其他)才能实现这一点,因为它必须“理解”其分页符算法的结构。

通常报告使用html呈现得很好

在BIRT中正确显示html有一些技巧

您可以使用元素并将其设置为html或auto

下面是一些处理自由格式文本的技巧

确保您的xml有效,我建议您替换换行符,否则您可能会遇到无法导出RPT文档的情况


此外,如果可能的话,在使用run+render时,请将它们保留在自动布局中。分页符实际上可以在运行时计算一次,在渲染时计算一次。您可能会遇到使用“已修复”解决问题的问题。在web viewer或RPT文档中使用RUN()阶段时,页面可能会尝试在断开页面之前显示所有html。然后,在渲染到pdf时,将以不同的方式应用打断,并使用固定的布局

jasper report(创建图像)中有一个html组件,因此理论上可以呈现htmlcontent@PetterFriberg:我们尝试了这个选项。它根据输入呈现html表。但它不会根据正在读取的表调整其大小。现在,我们正在寻找其他合适的报告工具,可以很好地执行此操作。这就是为什么添加。。创建一个图像,但我使用jsoup(解析html)和dynamic jasper(生成要包含的报告部分)执行了类似的操作(可能比您的操作简单,html结构在呈现之前就知道了),因此dynamic jasper为jsoup解析的表生成了不同的jasper元素,而没有任何类型的BIRT表的“官方支持”HTML元素列表(问题中明确提到)没有得到真正的支持。它们只在底层的iText PDF引擎内置了一些基本支持的情况下才起作用,但这几乎不可用。我自己也尝试过,但很失望。虽然它对我的测试数据有效,但我会记住你上面所说的。@Dominique:是什么让它几乎不可用?你能告诉我什么是c如果我开始将其用于更大的数据集,会发生什么情况?感谢您的澄清。如果可能的话,我需要一些重定向来完成上述任务。可能正在寻找一个完全不同的平台?这是我个人将放弃的一点,并说这是不可能做到的-至少对于生产质量代码来说。您可以尝试跳过所有但是,可以使用您喜欢的任何工具(这是最简单的部分),使用纯HTML动态创建整个报告布局然后远程控制一个实际的浏览器程序,如Chrome或Firefox,以进行渲染、页面分离和PDF创建。这是更复杂的部分,我不知道如何实现这一点。因为现在的浏览器是开源的,至少在理论上是可能的……我意识到你的业务很重要,但不幸的是伊利,这不是推广你的服务的合适的地方。如果你愿意,考虑编辑你的用户简介来添加这些信息。请参阅更多信息。@ CulrBand不必感到不安;我只是向你推荐我们的一条规则。具体来说,请参阅“不要使用签名、标语或问候语”一节。“我们不允许在这里使用标语。如果你想对这项政策提出异议,请询问meta。