Depending on what you need to do....
You could shell down and run FOP from Apache foundation which is xml,
xslt to pdf
Or if you are filling in a form, you can use Adobe LiveCycle to define a
form and use code like below to fill in the form
def getPDFContent(id):
values = getAllValues(id)
code = values['CODE']
completedfdf = getCompletedForm(values)
pdffilename = PDFTemplateMapper.get(code, None)
if pdffilename==None:
raise "No PDF Template defined for %s" % code
pdfpath = os.path.join(ThisDirectory, 'forms')
pdfpath = os.path.join(pdfpath, pdffilename)
pdftk = ["/usr/bin/pdftk" ,'pdftk'][os.name=='nt']
cmd = '%s %s fill_form - output - flatten' % (pdftk, pdfpath)
proc = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
shell=True, bufsize=100000000)
cmdout,cmderr = proc.communicate(completedfdf)
if cmderr != '':
raise cmderr
return cmdout
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jirka Vejrazka
Sent: Thursday, November 18, 2010 4:14 AM
To: [email protected]
Subject: Re: ReportLab and Django - templates? ; FK object has no
attribute split
Hi Victor,
It really depends on complexity of your PDF. I needed to do
something similar some time ago and used ReportLab addon called "pisa"
and used standard Django template language to define the PDF contents.
You might want to take a look, it worked well enough for simple PDF
pages.
Cheers
Jirka
On 18/11/2010, Victor Hooi <[email protected]> wrote:
> Hi,
>
> I'm trying to use ReportLab to produce a PDF output for one of my
> views.
>
> My first question is - at the moment, I'm building up the PDF inside
> my view. Is this really the recommended way of doing it? It's like
> I've got presentation code inside my view (controller). Isn't there a
> cleaner way of doing it, or going from a template to PDF somehow? (I
> know ReportLab offers a commercial package using RML templates,
> however I was hoping for an opensource/free method).
>
> Second question, I have a model with several FK fields. E.g.
>
> class Article(models.Model):
> category = models.ForeignKey(Category)
> subject = models.ForeignKey(Subject)
>
> Both the category and subject classes have fields called "name", and
> __unicode__ methods defined which return name.
>
> I'm trying to refer to these fields in my PDF output. I have a list of
> items in article_list (i.e. queryset):
>
> for item in article_list:
> text = item.category
> category = Paragraph(text, styles['Heading2'])
> story.append(category)
>
> text = '%s' % item.subject
> subject = Paragraph(text, styles['Heading3'])
> story.append(subject)
>
> When I try to run this code, I get:
>
> 'Category' object has no attribute 'split'
>
> and the same error with subject, obviously, once it gets to that bit
> of the code.
>
> Any idea why this might be, or how to fix it? Any help is much
> appreciated.
>
> Cheers,
> Victor
>
> --
> You received this message because you are subscribed to the Google
Groups
> "Django users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.