Skip to content

whosaysni/template2pdf

Repository files navigation

==============================================
template2pdf: Converts tRML template to PDF
==============================================

**IMPORTANT: Kay support will be dropped.**

Great thanks to:
* The !ReportLab Project, for providing handy PDF interface to Python: http://www.reportlab.com/
* Favien Pinckaers of OpenERP, the original author of trml2pdf code.
* Rohit Sankaran, owner of !GitHub trml2pdf master: http://github.com/roadhead/trml2pdf/
* Taniguchi Takaki, for early mention of trml2pdf in Japan: http://takaki-web.media-as.org/blog/ 

Usage
======

Writing tRML with template markups
-------------------------------------

::
  <!DOCTYPE document SYSTEM "rml.dtd">
  {% load pdf_tags %}
  <document filename="{{ pdf_name }}">
    {% block template %}
    <template pagesize="({% block pagesize %}595, 841{% endblock %})" 
          showBoundary="0">
      {% block template_content %}
      <pageTemplate id="main">
        {% block page_graphics %}
        <pageGraphics>
      {% block header %}
      {% endblock header %}
      {% block footer %}
      {% endblock footer %}
        </pageGraphics>
        {% endblock page_graphics %}
        {% block frame %}
        <frame id="content"
           x1="{{ content_x1|default:"40" }}"
           y1="{{ content_y1|default:"60" }}"
           width="{{ content_width|default:"515" }}"
           height="{{ content_height|default:"710" }}"/>
        {% endblock frame %}
        {% block extra_frames %}
        {% endblock extra_frames %}
      </pageTemplate>
      {% endblock template_content %}
    </template>
    {% endblock template %}
    {% block stylesheet %}
    <stylesheet>
      {% block styles %}
      <paraStyle name="Normal"
             fontName="{% firstof normal_font_name font_name "Serif" %}"
             fontSize="{% firstof normal_font_size font_size|default:"9" %}"
             textColor="{% firstof normal_text_color text_color "black" %}"
             wordWrap="CJK"
             />
      {% endblock styles %}
      {% block extra_styles %}
      {% endblock extra_styles %}
    </stylesheet>
    {% endblock stylesheet %}
    {% block story %}
    <story>
      {% block story_content %}
      {% block content %}
      <para style="Normal">
        This is main content
      </para>
      {% endblock content %}
      {% endblock story_content %}
    </story>
    {% endblock story %}
  </document>


Note:
* As normal Django templates, inheritance, filters, tags are available.
* Unfortunately tRML does not support cross references.

Rendering in a view
----------------------

::
  # coding: utf-8

  from template2pdf.dj import direct_to_pdf

  def myview(request, template_name='somewhere/yourtemplate.rml'):
      params = {}
      # ... populate params in your order.
      return direct_to_pdf(request, template_name, params)

Hints:
* Content-Disposition can be set to tell your browser downloading content as a file, instead of opening in it.

About

Converts tRML template to PDF

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages