Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.2 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Libraries

    pyJasper 0.41b

    Download button

    No screenshots available
    Downloads: 413  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Maximillian Dornseif | More programs
    BSD License / FREE
    July 11th, 2010, 12:10 GMT
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    pyJasper description

    A toolkit to access JasperReports from Python

    pyJasper is a set of Python-based utilities to handle JasperReports. Since jasper reports is a Java application you need Java installed.

    Jython (bundled with pyJasper) is used to access the JasperReports library via HTTP. Your pure Python clients can transparently generate JasperReport Documents.

    See "StackOverflow":http://stackoverflow.com/questions/458340/is-there-a-better-layout-language-than-html-for printing/459352#459352 and "this Blogposting":http://blogs.23.nu/c0re/2008/07/antville-18473/ to understand what problem pyJasper is trying to solve.

    Usage:

    Servlet Interface

    The servlet keeps no state at all. You have to supply it with an XML datasource, an XPath expression for that datasource and the JRXML report design. You get back the generated PDF or an plain text error message. The respective data has to be submitted via the form variables 'xpath', 'design' and 'xmldata'.

    To try it out you can use curl. E.g. do to pyjasper/backend and start the jetty servlet container (sh pyJasper-httpd.sh). Then use  curl in another window to request rendering of a PDF.

        curl -X POST --form xpath=//lieferscheine/lieferschein
                     --form design=@reports/Lieferschein.jrxml
                     --form xmldata=@sample-xml/Lieferschein.xml
                     http://localhost:8080/pyJasper/jasper.py > test.pdf


    test.pdf should now contain a rendered PDF document.

    Python interface

    You are expected to subclass @pyjasper.JasperGenerator@ and call it's @generate_pdf()@ function. Usually you only have to overwrite the @__init__()@ and @generate_xml(self, ...)@ functions and use the the Python "ElementTree":http:/ docs.python.org/lib/module-xml.etree.ElementTree.html API to generate an xml-tree. E.g.

        class MyPDFGenerator(JasperGenerator):
            """Jasper-Generator for Greetingcards"""
            def __init__(self):
                super(MovementGenerator, self).__init__()
                self.reportname = 'reports/Greeting.jrxml'
                self.xpath = '/greetings/greeting'
                self.root = ET.Element('gretings')

            def generate_xml(self, tobegreeted):
                """Generates the XML File used by Jasperreports"""

                ET.SubElement(self.root, 'generator').text = __revision__
                for name in tobegreeted:
                    xml_greeting  =  ET.SubElement(self.root, 'greeting')
                    ET.SubElement(xml_greeting, "greeting_to").text = unicode(name)
                    ET.SubElement(xml_greeting, "greeting_from").text = u"Max"
                return xmlroot


    Now you can use @MyPDFGenerator@ like this:

        generator = MyPDFGenerator()
        pdf = generator.generate(['nik', 'tobias', 'chris', 'daniel'])
        open('/tmp/greetingcard.pdf', 'w').write(pdf)


    The Python client finds the URL of the Jasper Servlet by checking the @PYJASPER_SERVLET_URL@ environment variable. It this Variable is not set, a default value of @http://localhost:8080/pyJasper/jasper.py@ is used.

    Installation:

    Get it at the "Python Cheeseshop":http://pypi.python.org/pypi/pyJasper or at "GitHub":http://github.com/hudora/pyJasper To install the Python client interface just execute @python setup.py install@ as administrator. This should install the requred dependency ([http://code.google.com/p/httplib2/ httplib2]) automatically. For the Server part there exist no automatic setup script. Just copy @pyjasper/backend/@ to a suitable location and start @pyJasper-httpd.sh@ I use Dan Bernsteins [http://cr.yp.to/daemontools/supervise.html supervise] tool for running the Jetty server.


    Product's homepage

    Requirements:

    · Python

      


    TAGS:

    access JasperReports | JasperReports handler | Python library | Python | JasperReports | handler

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM