2011-04-18 74 views
5

我使用这些设置wicked_pdf和wkhtmltopdf页面大小问题

WickedPdf::config = { 
    :layout   => 'application.pdf.html', # use 'pdf.html' for a pfd.html.erb file 
    :wkhtmltopdf  => '/bin/wkhtmltopdf', # path to binary 
    :orientation  => 'Portrait', # default , Landscape 
    :page_size  => 'A4', 
    :dpi    => '300', 
    :print_media_type => true, 
    :no_background => true, 
    :margin   => {:top => 0, # default 10 (mm) 
          :bottom => 0, 
          :left => 0, 
          :right => 0}, 

} 

和定身风格

body { 
    margin: 0; 
    padding: 0; 
    background-color: #FFF; 
    width: 210mm; 
    height: 297mm; 
} 

和类的一个div。第

.page { 
    display: inline-block; 
    clear: both; 
    border: 2px solid #FF0000; 
    width: 210mm; 
    height: 297mm; 
    page-break-after: auto; 
} 

但当pdf已创建,.page div几乎是pdf页面的一半。

+0

我想你可能会更好的指定毫米以外的单位。我认为这个秤不能可靠地工作。该页面的大小是固定的,因此您应该可以使用像素或百分比将其调整到所需的位置。 – Unixmonkey 2011-04-21 22:38:13

+2

我也尝试过px,in,%,但没有解决问题。 – 2011-04-22 09:16:46

回答

1

尝试把在你的CSS

@media print 
    { .page { 
    display: inline-block; 
    clear: both; 
    border: 2px solid #FF0000; 
    width: 210mm; 
    height: 297mm; 
    page-break-after: auto; 
} 
} 

另外,还要确保你添加media="all"如果您引用外部样式表:

<link href="/stylesheets/scaffold.css?1304060088" 
     media="all" rel="stylesheet" type="text/css"> 
3

如果你是浮动你的页面的容器,那么它将无法工作。我有完全相同的问题,一旦我删除了浮动专业版。

所以,你的页面的容器应该是:

.page { 
display: block; 
clear: both; 
border: 2px solid #FF0000; 
page-break-after: auto;} 

因为inline-block就像漂浮它离开。

+0

'因为内嵌块就像它漂浮了一样。'这节省了我很多时间:D,谢谢你。 – Thanh 2013-09-23 09:00:32

+0

在这里,从未来的谈话=),非常感谢这只适用于肖像时,你可以使用景观吗?我需要添加什么? – 2014-03-20 22:01:13