RFC 1942 中提到了一个标准的两遍算法:http ://www.ietf.org/rfc/rfc1942.txt但是我还没有看到任何好的实际实现。有人知道吗?我无法在 Mozilla 或 WebKit 代码库中找到任何有用的东西,但我不完全确定该去哪里找。
我想这实际上可能是一个更深层次的问题,必须实际呈现 HTML(表格单元格的内容),但只是为了保持简单 - 将纯文本 HTML 表格作为图像。即使是忽略“作为图像”部分的 HTML 表格渲染算法......
RFC 1942 中提到了一个标准的两遍算法:http ://www.ietf.org/rfc/rfc1942.txt但是我还没有看到任何好的实际实现。有人知道吗?我无法在 Mozilla 或 WebKit 代码库中找到任何有用的东西,但我不完全确定该去哪里找。
我想这实际上可能是一个更深层次的问题,必须实际呈现 HTML(表格单元格的内容),但只是为了保持简单 - 将纯文本 HTML 表格作为图像。即使是忽略“作为图像”部分的 HTML 表格渲染算法......
如果可以选择商业工具,请查看:
他们声称的一些功能:
由于可以指定单元格大小的各种方式、嵌套在表格中的表格等,html 表格呈现并非微不足道。
如果你想要的只是图像,一个简单的解决方案是 .NET 浏览器控件(基本上是 IE 的 COM 组件)和屏幕捕获功能
如果你想获得一些源来操作,Mozilla 源应该仍然可用
我不确定这是否符合您的限制,但您可以尝试使用 IE 或带有 MSHTML 的 IE 控件和IHTMLElementRender接口将表格呈现到设备上下文。
如果您有 XHTML,而不是纯 HTML,您应该能够检索这些单元格的内容以及有关表格结构的信息:colspan、rowspan 等。使用这些信息,您可以使用自己的边框、填充和边距值。
当您还想呈现用户定义的维度时,事情会变得复杂。但是为了检索表数据并绘制它,您可以使用 XML 解析器。PHP的解析器在这里:http ://ca3.php.net/xml
一种接近的工具是:http ://www.terrainformatica.com/htmlayout/main.whtm
这个库提供了一种将渲染的 HTML 捕获到图像的方法,但是它不是开源的(但是免费的!)。希望对一些人有用!
不幸的是,我的应用程序是跨平台的 C/C++,没有 MFC 或平台依赖项(噩梦!)。我希望找到一种用于表格渲染的通用算法。我认为 RFC 中的 2-pass 选项非常接近,所以我可能会深入研究并反对它。如果可以的话,我一定会在博客上发布我的最终解决方案!
看看Prince XML - 它是一种将 CSS 样式的 XML(包括 XHTML)文档呈现为 PDF 的商业工具。该工具符合主要的 W3C 标准,如 XHTML 和 CSS2.1。您可以从他们的主页尝试免费的演示版!
由于您想要图像:以编程方式将生成的 PDF 转换为图像应该不是什么大问题。