首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用禁用智能收缩的wkhtmltopdf不会影响页眉字体大小。

使用禁用智能收缩的wkhtmltopdf不会影响页眉字体大小。
EN

Stack Overflow用户
提问于 2012-05-08 08:52:28
回答 1查看 22.5K关注 0票数 2

当我使用-禁用-智能收缩时,wkhtmltopdf的字体大小问题。

我不知道这面旗帜究竟是扩大了内容,还是缩小了内容。但是,很明显的是,它并没有对标题做同样的事情。

当我们让我们的用户设计他们自己的表单时,重要的是一定的字体大小是相同的,无论是在标题中还是在正文中。我们还发现使用禁用智能收缩非常重要,因为这会使我们的内容很好地填充整个页面。

我用下面的代码生成了一个简单的samle

代码语言:javascript
复制
<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,使用整个页面的宽度,这-禁用-智能-收缩让我们。但我们希望我们的字体上的相同大小被应用于标题。有人有办法解决这个问题吗?我们做错什么了吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-29 23:28:23

此修补程序将禁用对页眉/页脚的智能智能收缩:

代码语言:javascript
复制
    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。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10495462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档