提问者:小点点

错误的渲染,而从html生成pdf在Java


我正在尝试将简单的html转换为pdf,但是我浏览器中的样式与pdf中的样式不同。我正在使用飞碟-pdf v9.1.18。你知道为什么吗?

以下是它在Web浏览器上的外观以及在生成的pdf中的外观:https://i.stack.imgur.com/MB7DB.jpg

这是我简单的html模板:

<html>

<head>
    <style>
        .aligned {
            vertical-align: bottom;
        }
        
        .colored {
            color: red;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <table border="1" width="300px" height="300px">
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td class="colored">4</td>
        </tr>
        <tr>
            <td>5</td>
            <td class="aligned">6</td>
        </tr>
    </table>
</body>

</html>

共1个答案

匿名用户

从文档:

不支持传统或“街头”超文本标记语言,尽管有几种不同质量的开源Java超文本标记语言清洁器可用。我们呈现格式良好的XML;XHTML是一个格式良好的XML文档,它使用一组特殊的标签。我们不能“在野外”呈现大多数超文本标记语言。充其量,你可以用TagSoup或JTidy或类似的库“清理”旧的超文本标记语言,并抱有最好的希望。但如果没有一堆工作,你将无法将飞碟用于真正的网络浏览器组件。然而,请注意,这不是技术限制,只是缺乏时间和资源。

TABLE标签的“高度”属性根本是标准的,我猜飞碟忽略了它。

请参见例如在超文本标记语言中设置表格的高度没有效果

相关问题