我使用wkhtmltopdf将网页下载为pdf。
但是css属性字母间距似乎不起作用
font-size:20px; letter-spacing:0px;
font-size:20px; letter-spacing:1px;
1px的间距非常大......
我尝试使用2个不同的font-family
答案 0 :(得分:3)
我有同样的问题,我将dpi设置为96(在wkhtmltopdf选项中)并且工作,但不确定为什么。
答案 1 :(得分:3)
用字母间距发出每一张脸,完美的解决方案就在这里。
import pdfkit
#SnippetBucket.com code for pdfkit
path_wkthmltopdf = r'/var/www/aukcnydom/wkhtmltox/bin/wkhtmltopdf'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
#more better and more accurate code for DPI set
config.default_options = {
'page_size': 'A4',
'print_media_type': True,
'dpi': 96
}
pdfkit.from_string(mark_safe(unicode(self.document)),settings.MEDIA_ROOT +"/"+ path, options=options, css=style, configuration=config)
比在CSS中。添加你的字母间距。
p{letter-spacing: 0.4mm !important; text-align: justify ; font-kerning: normal; text-rendering: optimize-speed;}
/* SNIPPETBUCKET.COM, CSS CODE WITH LETTER SPACING */
这种方式可以简单地解决您的问题并完美地完成字母间距。
注意:我已提供样本,您可以在代码中应用适用的更改。
答案 2 :(得分:2)
这是一个众所周知的问题。 https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1575。没有解决它。只是为了避免使用字母间距
答案 3 :(得分:2)
字母间距在wkhtmltopdf中被打破。
但我找到了其他方法来进行字距调整:
你可以为每个字母设定位置。字距用于标题,因此通常没有太多字母。
2.您可以更改字体文件并设置所需的自定义字距。通常,改变拉丁字母就足够了。我测试过这个并且效果很好。使用FontForge(http://fontforge.github.io/)。但可能有一个更方便的软件。
答案 4 :(得分:1)
我有同样的问题,我已经通过
解决了这个问题sudo wget http://pastebin.com/raw.php?i=AmfYN3er -O /etc/fonts/conf.d/10-wkhtmltopdf.conf
http://www.jeremydaly.com/how-to-install-wkhtmltopdf-on-amazon-linux/
答案 5 :(得分:1)
在Windows上使用wkhtmltopdf 0.12.4或0.12.5,您可以在TokenRequestValidationResult
命令行上使用--dpi 300
,几乎可以解决此问题。如果放大很多,您可能仍会注意到某些字母的间距差异可以忽略不计,但是字母不再重叠。并且使用wkhtmltopdf
使其几乎完美。在我的方案中,渲染的pdf文件大小没有增加。
答案 6 :(得分:1)
我有同样的问题。我必须添加标记--disable-smart-shrinking,然后通过逐渐增大和减小来使用dpi。
wkhtmltopdf --page-size A4 --print-media-type --lowquality --disable-smart-shrinking --encoding UTF-8 --no-outline --image-quality 100 --javascript-delay 3000 --orientation Portrait --dpi 65 --margin-top 0in --margin-right 0in --margin-bottom 0in --margin-left 0in "http://localhost:3000/wa/reports/"
答案 7 :(得分:0)
我们遇到了同样的问题。一种解决方法是将dpi
标志设置为96
。
由于将DPI设置为如此低的值(打印通常使用至少300张)会导致图像模糊,因此我们尝试使用SVG字体文件来达到目的。
答案 8 :(得分:0)
在CSS中为主体添加以下代码
plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
和--dpi 200。 这对我有用。
答案 9 :(得分:0)
wkhtmltopdf 方面关于字母间距的计算有误。我设法将 100+ dpi 结果确定为正好那个倍数,将 dpi 视为“百分比”。换句话说:
您可以使用所有 --dpi 92 选项,但随后您会遇到字距调整不佳和图像模糊的问题,您需要再次解决所有这些问题。
在我的解决方案中,我进行了正则表达式替换,在将 html 字符串交给 wkhtmltopdf 之前,它会重新计算任何此类找到的字母间距。