2015-05-04 74 views
1

我想用不同方向的wkhtmltopdf創建一個pdf(例如:一個頁面是肖像,另一個頁面是風景和再次像這樣的肖像),我嘗試在CSS中,但它不工作。請幫助,在此先感謝。django wkhtmltopdf - 在單個pdf中的不同頁面方向

我views.py

from django.views.generic.base import View 
from wkhtmltopdf.views import PDFTemplateResponse 

class pdf_view(View): 
    template = 'temp1.html' 
    filename = 'file1.pdf' 
    header_template='header_temp.html' 
    footer_template='footer_temp.html' 
    context= {'title': 'PDF GENERATION'} 

    def get(self, request): 
     response = PDFTemplateResponse(request=request, 
            template=self.template, 
            filename = self.filename, 
            header_template=self.header_template, 
            footer_template=self.footer_template, 
            context= self.context, 
            ) 
     return response 

我template.html同時打印PDF

<html> 
<head> 
    <meta charset="utf-8"> 
     <title>{{ title }}</title> 
     <style type="text/css"> 
       #landimg img{ 
        margin-top:20px; 
        height:auto; 
        width:auto; 
        } 
       #portimg img{ 
        height:auto; 
        width:auto; 
        margin-top:50px; 
        } 
       @page #port{ 
        size:letter; 
        } 
       @page #land{ 
        size:landscape; 
        } 
      </style> 
     </head> 
     <body> 
     <div id='port'> 
      <img src="/static/images/2_180_3.jpg" alt="" /> 
     </div> 
     <div id='land'> 
      <img src="/static/images/land.JPG" alt="" /> 
     </div> 
     </body> 
    </html> 

@page CSS不能正常工作,它是在肖像爲默認值。

回答

0

這應該爲你工作

@page{ 
     size:letter; 
} 
@page land{ 
     size:landscape; 
} 

在wkhtmltopdf只有少數的CSS屬性都可以與UI設計工作。

<div> 
    <img src="/static/images/2_180_3.jpg" alt="" /> 
</div> 
<div> 
    <pdf:nexttemplate name="land"/> 
    <pdf:nextpage/> 
</div> 
<div> 
    <img src="/static/images/land.JPG" alt="" /> 
</div> 
+0

謝謝@Amar Kamthe,我試過了你的css代碼,但所有的頁面仍然只有肖像,景觀不工作。 – sansiva

+0

我想知道是否有任何可能性使用wkhtmltopdf在單個文檔中使用縱向和橫向,文檔說cmd_options方向是全局的,所以我把cmd_options = {'orientation':'landscape/portrait'}它工作正常對於單一的方向,但我需要兩個。 – sansiva

+0

@Sansiva:我試過使用比薩模塊。它的html 2 pdf轉換器。在我的情況下,單個pdf有縱向和橫向頁面。請參閱http://stackoverflow.com/questions/1377446/render-html-to-pdf-in-django-site上的第一個答案。這是如何使用比薩的例子,然後你可以爲橫向和縱向視圖添加上述代碼。 –

相關問題