我正在使用TCPDF来显示一些表数据。为此,我使用HTML + CSS,然后将其转换为PDF格式。我希望在我的表格中加下划线,人们可以在其中写入笔记。我目前使用下划线字符_
来绘制这些线条。我似乎遇到的问题是它们在右侧是锯齿状的(参见下面的夸张图片)。
我正在寻找一种不让线条锯齿的方法。实际上我可以让它们更少锯齿,但是由于非固定宽度的字体,它们仍然看起来有点锯齿,即使我添加/删除下划线字符以尝试排列它们。
我正在寻找任何合理的解决方案,其中下划线与table / div / container的右边界对齐。这可以通过任何方式完成(使用字符或CSS,甚至可能是图像),只要事情正确排列即可。就我而言,容器是<td>words words _____</td>
这样的事情:
注意/更新:
不幸的是,在尝试了下面的答案之后,我发现TCPDF不是非常强大或宽容,当CSS标记比基本更多时。在浏览器上工作时,下面的解决方案似乎没有在HTML + CSS到{PDF到TCPDF}转换器中存活。我不确定在TCPDF开发状态下是否可以提供解决方案,至少对于免费版本而言。我现在可能不得不坚持使用不均匀的下划线字符。
答案 0 :(得分:1)
如果没有看到现有的标记,很难给你很好的建议,但希望这会指出你正确的方向:JSFiddle。基本上,我们有一个全宽线来伪造下划线,然后我们的文本有一个白色背景来掩盖它下面的线。
示例HTML:
<p><span>Text</span></p>
<p><span>Longer text</span></p>
<p><span>Even longer text</span></p>
CSS:
p {
position: relative;
}
p:after {
background: #000;
content: "";
display: block;
height: 1px;
position: absolute; bottom: 1px;
width: 100%;
}
span {
background: #fff;
padding-right: 5px;
position: relative;
z-index: 1;
}
答案 1 :(得分:1)
这是一个使用bottom-border
来实现下划线的解决方案。
.container {
width: 400px;
background-color: purple;
color: white;
padding: 1rem;
}
p {
border-bottom: solid white 1px;
}
span {
border-bottom: solid purple 3px;
padding-right: 1rem;
}
和
<div class="container">
<p><span>Question thingy</span></p>
<p><span>Question thingy asdf </span></p>
<p><span>Question thingy asdf asdf asdf </span></p>
</div>
它产生这个输出:
答案 2 :(得分:0)
我想到了一个念头......
或许不是专注于使线条保持一致,我可以改变我的设计。即使用类似于Excel表格的表格。
_________________
|_words__|________| <-- empty cells instead
|_words2_|________| of underlines
TCPDF似乎可以解决这些问题。