1

我正在使用 BFO 报告库(嵌入在 NetSuite ERP 中)创建文档。我有一个文本块,我想将其限制为两行,如果超过则截断,但我似乎无法overflow:hidden真正做任何事情。设置height限制了最小高度,但如果文本较长,它会扩展包含而不是被切断。

这是我正在渲染的文档:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pdf PUBLIC '-//big.faceless.org//report' 'report-1.1.dtd'>
<pdf>
    <body width="3in" height="1.25in" padding="0">
        <div font-family="sans-serif" font-size="14pt" width="3in" height="2em" border="1px solid green" overflow="hidden">
            <p margin="0">Short Name</p>
        </div>
        <pbr/>
        <div font-family="sans-serif" font-size="14pt" width="3in" height="2em" border="1px solid green" overflow="hidden">
            <p margin="0">This Is An Item With A Really Extremely Long Name That Doesn't Fit</p>
        </div>
    </body>
</pdf>

以及生成的 PDF:

4

1 回答 1

3

BFOoverflow属性标签仅适用于绝对定位的元素,根据他们的文档

如果一个块是绝对定位的并且大于它的父元素,如何处理“溢出”父元素块的内容。

看起来包含您要控制的内容的元素必须绝对定位,但该overflow属性可以应用于父元素。因此,您可以添加position="absolute"到您的<p>元素以获得您想要的效果:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pdf PUBLIC '-//big.faceless.org//report' 'report-1.1.dtd'>
<pdf>
    <body width="3in" height="1.25in" padding="0">
        <div font-family="sans-serif" font-size="14pt" width="3in" height="2em" 
border="1px solid green" overflow="hidden">
            <p margin="0">Short Name</p>
        </div>
        <pbr/>
        <div font-family="sans-serif" font-size="14pt" width="3in" height="2em" border="1px solid green" overflow="hidden">
            <p position="absolute" margin="0">This Is An Item With A Really Extremely Long Name That Doesn't Fit</p>
        </div>
    </body>
</pdf>

在此处输入图像描述

于 2019-04-25T18:05:15.953 回答