gpt4 book ai didi

javascript - 使用 wkhtmltoimage 渲染时字体太小

转载 作者:行者123 更新时间:2023-11-28 02:28:00 27 4
gpt4 key购买 nike

我的目标是将文本渲染成图像。我希望布局和大小是静态的,字体大小可以根据要呈现的文本量进行调整。我选择的工具是 wkhtmltoimage 0.12.5,我的想法是这样我可以利用许多 css 样式选项。顺便说一句,我在 Mac 上。

这是我的 Test.html

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="flowtype.js"></script>
</head>
<body>
<div>Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test </div>
<script type="text/javascript">
$('body').flowtype();
</script>
</body>
</html>

流程类型:http://simplefocus.com/flowtype/

这在浏览器中有效,但在通过 wkhtmltoimage 呈现时无效。

我的命令行调用是

wkhtmltoimage --width 300 --height 100 Test.html Test.png

文字显得小得离谱。窗口大小有问题吗?

我也很乐意使用 wkhtmltopdf 并呈现为 pdf,但我也无法让它在那里工作。

想法?

最佳答案

在这种情况下,wkhtmltoimage 工作正常,您只需要调整其fontRatio 设置,使文本变大。或者,您可以增加渲染的 --width ,使其更符合标准浏览器窗口,例如1200 像素。

问题在于 300px 的宽度非常小,FlowType 的目标是每行 45-75 个字符。例如,如果我们假设每行有 60 个字符长,这意味着每个字符只有 5 像素宽,这就是文本看起来太小的原因。如果将浏览器窗口的大小缩小到 300 像素,您会看到文本的大小与它在 wkhtmltoimage 中呈现的大小相同。

要增加 FlowType 的字体大小基础,请像这样使用 fontRatio 参数。较小的值产生较大的文本:

$('body').flowtype({
fontRatio: 15
});

默认的 fontRatio 是 30,所以尝试使用更小的值(例如 15)来增加文本大小。

这是一个可运行的示例,它显示了宽度为 300px 的元素的不同 fontRatio 值之间的差异。

截图:

Font size comparison

代码片段:

$('.c1').flowtype(); // Default, fontRatio = 30

$('.c2').flowtype({fontRatio: 15});
.c1, .c2 {
width: 300px;
border: solid red 2px;
margin: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://fastcdn.org/FlowType.JS/1.1/flowtype.js"></script>

<div class="c1">Text Text Text Text Text Text Text Text Text Text Text Text Text Text</div>
<div class="c2">Text Text Text Text Text Text Text Text Text Text Text Text Text Text</div>

关于javascript - 使用 wkhtmltoimage 渲染时字体太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52730078/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com