jsPDF中是否有设置字体下划线的setFontType函数?

12

我知道在jsPDF中有四种“setFontType”类型:

doc.setFontType("normal");
doc.setFontType("italic");
doc.setFontType("bold");
doc.setFontType("bolditalic");

我尝试了一些东西,但找不到它,那么在jsPDF中是否有下划线setFontType的设置?


1
很可能不是setFontType,因为下划线并不是真正的字体变化。它只是在字体基线上方或下方绘制一条线。话虽如此,我不了解jsPDF,所以我不知道是否可能实现。 - GolezTrol
确实,我还在寻找解决方案。 - Carlos Salles
3个回答

10

我的情况是在Nativescript中使用jsPDF,因此无法使用“addHTML”。

在A Biswas的第一个选项上进行一些补充后,我能够使其适用于动态文本大小,如下所示:

const textWidth = doc.getTextWidth(text);
doc.line(x, y, x + textWidth, y)

如何从创建文本元素中获取“text”变量以用作“getTextWidth”的参数? - David
啊,抱歉刚看到这个。不确定你在问什么。我将其封装在一个以文本为参数的函数中。我们所有的文本都来自于我们存储的数据。如果你有HTML,则可以使用.addHtml - Felipe Centeno
我在问,当我在jspdf中创建一个文本元素时,返回的是一个数字而不是一个对象。所以当我使用getTextWidth时,它会出错。 - David
2
const textWidth = doc.getTextWidth("copy your actual text here") - KuN

9

我知道有点晚了,但我有一个解决方案,你可以用以下两种方法之一实现:

首先,你可以使用内置的“line”选项在文本下面画一条线:

doc.line(x-from,y-from,x-to,y-to);

其次,您可以在HTML中显示文本,然后在您的jspdf配置中使用打印HTML选项,例如:

<div id="disptext">
    <div class="underText">Hello</div>
</div>
<br/>
<input type='button' value='download' id='downP' />

<style>
.underText { text-decoration: underline;}
</style>

<script>
$(document).ready(function() {
    $('#downP').on('click', function() {
        var pdf = new jsPDF('p', 'pt', 'a4');

        pdf.addHTML($('#disptext')[0], function() {
            pdf.save('text.pdf');
        });
    });
});
</script> 

-3

doc.setFont("serif", "italic")

doc.setFont("宋体", "斜体")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接