2012-01-19 131 views
3

我试过PDFKit和wicked_pdf。HTML to PDF Rails

PDFKit几乎得到了我在哪里,我想,但这样我就可以得到页脚固定在底部,它没有一个CSS规则支持:

position: fixed; 
bottom: 0; 

任何变通办法解决这一问题?

使用Google搜索这个主题并没有给出很多,除了像虾和其他没有HTML支持的人。

对于那些想知道的人。 wkhtmltopdf是安装并运行,因此PDFKit的作品。

respond_to do |format| 
    format.html {render :layout => nil} 
    format.pdf do 
    render :pdf => "file_name.pdf", 

    :save_to_file => Rails.root.join('public/uploadedfiles', "filename") 
    end 
end 

回答

0

我还没有尝试过PDFKit和wicked_pdf,所以我只是想知道。但也许这可以做到这一点。您是否尝试过使用粘滞页脚黑客?

http://ryanfait.com/sticky-footer/

+0

谢谢。我会检查出来的。 – MattiasB

+0

不幸的是它没有工作。回到原点。 :( – MattiasB

0

我真的不知道你为什么会想一个元素被固定在PDF文档中,真的是你想要的吗?此外,这两个宝石都使用wkhtmltopdf,这是一个实用程序,它使用webkit来呈现其html,并最终将其转换为pdf。一旦在webkit上看起来很棒,它应该看起来像pdf。但我不认为pdf支持元素“固定”在CSS中。

+0

更具体地说,我的问题是,在每个生成的页面上,我想要一个特殊的页脚,它是完全相同的,并且坚持每一个新页面,并且固定它的位置就像html一样工作,然后打印出来,但不能用pdf格式。 – MattiasB

+0

这是有道理的,请张贴你用来生成PDF的代码.. –

0

我建议看看DocRaptor。从我的经验来看,它比同类软件有更好的CSS支持。

DocRaptor

下面是对代码的链接使用DocRaptor使用Rails:

DocRaptor Rails example

+0

DocRaptor有一个问题,它不是开源的,所以我的老板可能不想花这种钱,所以没有我的电话在那里。:( – MattiasB

+0

)你的老板对你的时间有多重视?在浪费更多资金之前需要多少时间才能比使用像DocRaptor这样的托管解决方案浪费更多的时间? – Gareth

2

CSS3中,你可以使用一个@page规则包括这样页脚:

@page { 
    @bottom-center { 
    content: "foo"; 
    } 
} 

这在许多付费PDF解决方案中得到支持,例如PDFReactor和我认为王子。

但是Webkit(其wkhtmltopdf基于)doesn't support the CSS3 paged media rules所以你需要一个回退。

Wicked PDF documentation列出了一个:footer选项,您可以使用该选项传递HTML块以在特定页面中呈现。这看起来像是您的最佳选择。