2011-04-18 107 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