2017-01-31 5 views
1

一部のデータをPDFファイルにエクスポートしようとしています。 0.1.0 Django-easy-pdf、ドキュメントの各ページのヘッダー

  • Pythonは2.7
  • エクスポートが正常に動作しないと、すべての(私の見解では問題)

    • ジャンゴ1.9.12
    • ジャンゴ・簡単PDFしかし:私は使用しています私はドキュメントのすべてのページにページヘッダを追加することに苦労しています。

      この時点では、最初のページにしかレンダリングできません。私はフッタにこのような問題はなく、すべてのページに正しくレンダリングします。

      {% extends "easy_pdf/base.html" %} 
      
      {% block extra_style %} 
      <style type="text/css"> 
      
          @page { 
           size: landscape; 
           margin-left: 1cm; 
           margin-right: 1cm; 
           margin-top: 1.5cm; 
           margin-bottom: 2cm; 
      
           @frame footer { 
            -pdf-frame-content: page-footer; 
            bottom: 0cm; 
            margin-left: 1cm; 
            margin-right: 1cm; 
            height: 2cm; 
           } 
          } 
      
      </style> 
      {% endblock %} 
      
      {% block page_header %} 
          {% include "document_head.html" %} 
      {% endblock %} 
      
      {% block content %} 
          {% include "main_table.html" %} 
      {% endblock %} 
      
      {% block page_foot %} 
          {% include "document_foot.html" %} 
      {% endblock %} 
      

      ブロックを行うは違いはありません含まれずに、次のよう

      マイテンプレートです。

      私のニーズ(ページとフッター)に応じて、のbase.htmlからいくつかのベーススタイリングを書き直しました。

      ヘッダーの機能を正しく理解しているかどうかはわかりませんが、私の意見では、ヘッダーはタイトルと等しくないため、すべてのページ(MS Wordヘッダーに似ています)に表示する必要があります。もし私の間違いが間違っているなら、すべてのページにヘッダーをレンダリングする別の方法がなければなりません。

      私のPDFの内容は動的で、長さは予測できません。

      私はdocumentationを読みましたが、私の問題の解決策を見つけることに失敗しました。私はここで解決策を見つけることもできませんでした。

      私のPDFはランドスケープにレンダリングしています。

      ご協力いただきありがとうございます。

    答えて

    1

    解決策が見つかりました。他の誰かがそれを見つけた場合は、ここに投稿します。

    私は完全にbase.htmlを書き直し、そこから拡張する必要があることが判明しました。次のようにだから私のnew_base.htmlは次のとおりです。

    <!DOCTYPE html> 
    <html> 
    <head> 
    
        {% block style_base %} 
         {% block layout_style %} 
          <style type="text/css"> 
    
          </style> 
         {%endblock%} 
         {% block extra_style %}{% endblock %} 
        {% endblock %} 
    
    </head> 
    <body> 
    
        <div id="page-header"> 
         {%block page_header%} 
         {%endblock%} 
        </div> 
    
        <div> 
         {%block content%} 
         {%endblock%} 
        </div> 
    
        <div id="page-footer"> 
         {%block page_foot%} 
         {%endblock%} 
        </div> 
    </body> 
    

    そして、私は次の行を追加しているnew_base.html拡張し、私のテンプレートで:これは今、すべてのページのヘッダーをレンダリング

    @frame header { 
        -pdf-frame-content: page-header; 
        top: 0cm; 
        margin-top: 0.5cm; 
        margin-bottom: 0.5cm; 
        margin-left: 1cm; 
        margin-right: 1cm; 
        height: 5cm; 
    } 
    

    をドキュメントのページ。

    0

    私は最近同じ問題を抱えていて、@ user3745794によって与えられた答えは私を大きく助けました。

    テンプレートは少し異なりますが、ここでは同じ問題のある人を助ける場合があります。

    テンプレート/ easy_pdf/base。

    <!DOCTYPE html> 
    <html> 
        <head> 
         <title>{% block page_title %}{% endblock %}</title> 
    
         {% block style_base %} 
          {% block layout_style %} 
           <style type="text/css"> 
            @page { 
             size: {{ pagesize|default:"A4" }}; 
             margin-left: 1cm; 
             margin-right: 1cm; 
    
             @frame header { 
              -pdf-frame-content: page-header; 
              margin-top: 1.0cm; 
              margin-left: 1cm; 
              margin-right: 0.5cm; 
              margin-bottom: 0.5cm; 
              height: 3cm; 
             } 
    
             @frame content { 
              top: 0.5cm; 
              margin-top: 3.5cm; 
              margin-bottom: 0.5cm; 
              margin-left: 1.75cm; 
              margin-right: 1.5cm; 
             } 
    
             @frame footer { 
              -pdf-frame-content: page-footer; 
              bottom: 0cm; 
              margin-left: 1cm; 
              margin-right: 1.5cm; 
              height: 2cm; 
             } 
            } 
           </style> 
          {%endblock%} 
          {% block extra_style %}{% endblock %} 
         {% endblock %} 
    
        </head> 
    
        <body> 
         <div id="page-header"> 
          {%block page_header%} 
          {%endblock%} 
         </div> 
    
         <div id="page-content"> 
          {%block page_content%} 
          {%endblock%} 
         </div> 
    
         <div id="page-footer"> 
          {%block page_foot%} 
          {%endblock%} 
         </div> 
    
        </body> 
    </html> 
    

    そして、私のテンプレートテンプレート内のHTML/report.htmlを

    {% extends "easy_pdf/base.html" %} 
    
    {% load static %} 
    
    {% block page_title %} 
        {# Page title here #} 
    {% endblock %} 
    
    {% block extra_style %} 
        <style type="text/css"> 
         {# Extra CSS styles here #} 
        </style> 
    {% endblock %} 
    
    {% block page_header %} 
        {% include "header.html" %} 
    {% endblock %} 
    
    {% block page_content %} 
    
        {# Page 1 #} 
    
        <pdf:nextpage /> 
    
        {# Page 2 #} 
    
        <pdf:nextpage /> 
    
        {# Page 3 #} 
    
    {% endblock %} 
    
    {% block page_foot %} 
        {% include "footer.html" %} 
    {% endblock %} 
    

    テンプレート/ header.html

    <h1>Hello World!!!</h1> 
    

    テンプレート/ footer.html

    <h1>Goodbye World!!!</h1> 
    

    希望する;)。

    関連する問題