ITextRenderer - 生成的 Pdf 媒体框之外的文本框

问题描述

我正在尝试使用此版本的库使用 ITextRenderer 将 html 内容文档转换为 pdf:

implementation group: 'org.xhtmlrenderer',name: 'flying-saucer-pdf-itext5',version: '9.1.22'

这就是我将 html 转换为 pdf 的方法

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(getXHTMLFromHTML(out.toString()));
renderer.layout();
renderer.createPDF(byteArrayOutputStream);

但是,我的 html 的特定部分出现了问题,一个应该是列表的表格。这是在 adobe acrobat 中的结果:

enter image description here

如您所见,文本框在 pdf 的媒体框之外,没有裁剪框,​​结果是文本不完全可见。

这是导致此问题的 html:

<div id="4a9dc6ae-3d2e-448b-8e70-3422659f87bd" class="alinea">
    <p>Ne sont pas déductibles les dépenses suivantes:</p>
    <table id="9c582e44-1932-4bee-b93e-6fb75b725f4b" style="width: 1127px;" class="custom-list">
        <tbody class="body number-style dot-separator">
        <tr class="row">
            <td class="cell">1.</td>
            <td class="cell">les dépenses faites en vue de remplir des obligations imposées �&nbsp; la collectivité par ses statuts ou son pacte social;</td>
        </tr>
        <tr class="row">
            <td class="cell">2.</td>
            <td class="cell">l'impôt sur le revenu des collectivités,l'impôt sur la fortune et l'impôt commercial communal;</td>
        </tr>
        <tr class="row">
            <td class="cell">3.</td>
            <td class="cell">les rémunérations imposables en vertu du premier alinéa,numéro 2 de l'<a id="e48d16e9-3eeb-4d99-91c3-f97b8d206a5e" href="https://00f74ba44b4a6fc879f193e8a262c50fb07e0f7d81-apidata.googleusercontent.com/#/o/link/1/a0ea877e-3736-4ce9-b09f-fc1be79b787a" class="tech_content LINK_INTERN">article 91</a>;</td>
        </tr>
        <tr class="row">
            <td class="cell">4.</td>
            <td class="cell">les dépenses faites dans un but cultuel,charitable ou d'intérêt général sans préjudice de la disposition prévue au premier alinéa,numéro 3 de l'<a id="3e74194c-2ae3-4b41-9efc-c6a1c23102cb" href="https://00f74ba44b4a6fc879f193e8a262c50fb07e0f7d81-apidata.googleusercontent.com/#/o/link/1/a0eb1cc1-3e9c-4175-9a52-be2d0b6cc455" class="tech_content LINK_INTERN">article 109;</a></td>
        </tr>
        <tr>
            <td>5.</td>
            <td>les intérêts ou redevances dus lorsque les conditions suivantes sont simultanément remplies :
                <table class="custom-list" id="02812a11-d2d0-92cb-9c78-e9fa30f8fa1d" style="width: 955px;">
                    <tbody class="body lower-alpha-style one-bracket-separator">
                    <tr class="row">
                        <td class="cell">a)</td>
                        <td class="cell">le bénéficiaire des intérêts ou redevances est un organisme �&nbsp; caractère collectif au sens de l’article 159. Si le bénéficiaire n’est pas le bénéficiaire effectif,il y a lieu de prendre en considération le bénéficiaire effectif ;</td>
                    </tr>
                    <tr class="row">
                        <td class="cell">b)</td>
                        <td class="cell">l’organisme �&nbsp; caractère collectif qui est le bénéficiaire des intérêts ou redevances est une entreprise liée au sens de l’article 56 ;</td>
                    </tr>
                    <tr class="row">
                        <td class="cell">c)</td>
                        <td class="cell">l’organisme �&nbsp; caractère collectif qui est le bénéficiaire des intérêts ou redevances est établi dans un pays ou territoire figurant �&nbsp; l’annexe I des conclusions du Conseil de l’Union européenne relatives �&nbsp; la liste révisée de l’Union européenne des pays et territoires non coopératifs �&nbsp; des fins fiscales (ci-après «&nbsp;annexe I&nbsp;»),dans les conditions spécifiées ci-après.</td>
                    </tr>
                    </tbody>
                </table><p></p><p>Toutefois,la disposition du présent numéro n’est pas applicable si le contribuable apporte la preuve que l’opération �&nbsp; laquelle correspondent les intérêts ou redevances dus est utilisée pour des motifs commerciaux valables qui reflètent la réalité économique.</p><p></p><p>Le terme « intérêts » employé dans le présent numéro désigne les intérêts et arrérages dus qui se rapportent �&nbsp; des créances de toute nature,assorties ou non de garanties hypothécaires ou d’une clause de participation aux bénéfices du débiteur,et notamment les intérêts et arrérages d’obligations d’emprunts,y compris les primes et lots attachés �&nbsp; ces titres. Les pénalisations pour paiement tardif ne sont pas considérées comme des intérêts au sens du présent numéro.</p><p></p><p>Le terme « redevances » employé dans le présent numéro désigne les rémunérations de toute nature dues pour l’usage ou la concession de l’usage d’un droit d’auteur sur une œuvre littéraire,artistique ou scientifique,y compris les films cinématographiques,d’un brevet,d’une marque de fabrique ou de commerce,d’un dessin ou d’un modèle,d’un plan,d’une formule ou d’un procédé secrets et pourdes informations ayant trait �&nbsp; une expérience acquise dans le domaine industriel,commercial ou scientifique.</p><p></p><p>À partir du 1er mars 2021,la disposition du présent numéro s’applique concernant les pays et territoires qui figurent �&nbsp; l’annexe I,dans sa dernière version,telle que publiée au Journal officiel de l’Union européenne �&nbsp; cette date. À partir du 1er janvier de chaque année qui suit,elle s’applique concernant les pays et territoires qui figurent �&nbsp; l’annexe I,dans sa dernière version au 1er janvier de l’année subséquente en question,telle que publiée au Journal officiel de l’Union européenne �&nbsp; cette date.</p><p></p><p>Toutefois,lorsque des pays et territoires ne figurent plus �&nbsp; l’annexe I,dans sa dernière version au 1er janvier d’une année subséquente,telle que publiée au Journal officiel de l’Union européenne �&nbsp; cette date,la disposition du présent numéro cesse de s’appliquer concernant ces pays et territoires dès la date de publication au Journal officiel de l’Union européenne de l’annexe I dans sa dernière version mentionnée ci-avant. En cas de version antérieure de l’annexe I au cours de la même année opérant pour la première fois le retrait du pays ou territoire en question,la disposition du présent numéro cesse de s’appliquer déj�&nbsp; dès la date de publication au Journal officiel de l’Union européenne de l’annexe I,dans une telle version antérieure opérant le retrait du pays ou territoire en question.</p></td>
        </tr>
        </tbody>
    </table>
</div>

非常感谢您的帮助,我到处找,但我没有看到有人遇到这个问题。

解决方法

事实证明,只有当表格(或任何元素)不提供固定的宽度或高度时,itext 才会将表格的内容包装在 pdf 的边距内。所以在这种情况下,我的解决方案是从我的 html 表中删除宽度和高度。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...