当我使用-禁用-智能收缩时,wkhtmltopdf的字体大小问题。
我不知道这面旗帜究竟是扩大了内容,还是缩小了内容。但是,很明显的是,它并没有对标题做同样的事情。
当我们让我们的用户设计他们自己的表单时,重要的是一定的字体大小是相同的,无论是在标题中还是在正文中。我们还发现使用禁用智能收缩非常重要,因为这会使我们的内容很好地填充整个页面。
我用下面的代码生成了一个简单的samle
<html>
<head>
</head>
<body style='margin: 0; border: 0'>
<h3>My H3 text</h3>
</body>
</html>将其保存为test.html,并使用禁用智能收缩标志运行wkhtmltopdf。
wkhtmltopdf.exe -禁用-智能-收缩-无轮廓-头-间距10 -T 20 -头-html test.html test.html c:\temp\disable_smart_shrinking.pdf
结果(禁用-智能-收缩):
禁用-智能收缩http://img138.imageshack.us/img138/5143/disablesmartshrinking.th.png
注意,正文中的H3比标题中的H3大很多。
wkhtmltopdf.exe -启用智能收缩-无轮廓-头-间距10 -T 20 -头-html test.html test.html c:\temp\disable_smart_shrinking.pdf
结果(启用智能收缩):

H3-元素的字体大小在标题和正文之间保持不变。
问:我们想要创建一个pdf,使用整个页面的宽度,这-禁用-智能-收缩让我们。但我们希望我们的字体上的相同大小被应用于标题。有人有办法解决这个问题吗?我们做错什么了吗?
发布于 2013-12-29 23:28:23
此修补程序将禁用对页眉/页脚的智能智能收缩:
diff --git a/src/lib/pdfconverter.cc b/src/lib/pdfconverter.cc
index e815758..1504a14 100644
--- a/src/lib/pdfconverter.cc
+++ b/src/lib/pdfconverter.cc
@@ -482,6 +482,7 @@ void PdfConverterPrivate::endPage(PageObject & object, bool hasHeaderFooter, int
if (!object.headers.empty()) {
QWebPage * header = object.headers[objectPage];
+ updateWebSettings(header->settings(), object.settings.web);
painter->save();
painter->resetTransform();
double spacing = s.header.spacing * printer->height() / printer->heightMM();
@@ -506,6 +507,7 @@ void PdfConverterPrivate::endPage(PageObject & object, bool hasHeaderFooter, int
if (!object.footers.empty()) {
QWebPage * footer = object.footers[objectPage];
+ updateWebSettings(footer->settings(), object.settings.web);
painter->save();
painter->resetTransform();
double spacing = s.footer.spacing * printer->height() / printer->heightMM();
}
/*!应用补丁:修补程序../wkhtmltopdf_smart_shrinking_header_footer_disable_fix.patch -l -p1 <
此解决方案可在windows/linux上使用。要精确地呈现( html中的1mm等于pdf上的1mm),您需要运行wkhtmltopdf选项“禁用智能收缩-dpi 96”。
在Mac上,可以使用“启用智能收缩”和html主体上的css样式"body { width: 210 Mac }“实现精确的呈现。此解决方案仅适用于mac os x。
https://stackoverflow.com/questions/10495462
复制相似问题