I have an application running on AIX which needs to merge form data with another document to generate a PDF, and I'm looking for recommendations from the community as to how they've addressed this requirement.
Free Open Source or Commercial products can be considered.
for PDF generation we produce XML files that we transform into pdf using Apache fop.
We have our own xml format for which we have created an xslt to transform it into xsl-fo .
I used apache FOP, it's most easy for aix. Inclusive it's the only way.
I've seen FOP and looked at it briefly - how do you create templates with fill-in fields?
we use the FREE (open source) PDFtool.p (From PDFInclude 3.3.3) to build PDF documents. It works great!
> how do you create templates with fill-in fields?
we don't . Our PDF documents do not contain fill-in fields.
I don't think for was intented for that, see also stackoverflow.com/.../adding-a-pdf-fillable-form-acrofield-using-apache-fop
Apache-FOP certainly looks interesting for creating reports on the fly and merging the data with an existing report format.
i have used fop in the past.
the main disadvantage for me is, you or whoever will be using it needs to learn another programming language (xsl-fo) and coding design can take days even for small reports or changes which was also my experience with pdfinclude.
on the other hand, everyone knows how to use word even end users, word files are more powerful and have more features than pdf, it's designed to merge data and it's easy to convert them to pdf's or any other file formats.
and you can do all this on AIX?
What a perfect straight line, Tim! :)
Alon is responsible for http://docxfactory.com/
[quote user="Alon Blich"]
i have used fop in the past.
the main disadvantage for me is, you or whoever will be using it needs to learn another programming language (xsl-fo) and coding design can take days even for small reports or changes which was also my experience with pdfinclude.[/quote]
Ditto on the pdfinclude.i work required. I've found some visual designers that may shorten the design / development time for creating FOP capable reports. How did you build your FOP reports?
> and you can do all this on AIX?
sure. i'll be happy to assist if you'd like to give it a try.
I've sent you an email and we'll go from there.
XSLFast was what I used to use, started with v3, then v4, and finally v5. It isn't bad, however I did find it slow to work with (the whole program is built on java).
To use it, you just need and xml file created from either a dataset or temptable and then you drag and drop xml fields, etc...
Then you use ApacheFOP to take the xml file and the xsl-fo file that xslfast creates to generate a pdf file, the biggest issue I had with apache fop though was that it sometimes took up to 20 seconds to generate a pdf.
These days however I do it all in html5 and css (using bootstrap 3), then i point wkhtmltopdf to a webspeed broker/agent to turn that into a pdf file, takes a second or so to generate the pdf :)
20 seconds? How big was the report?
It was an invoice, most of the time Apache FOP would take about 6 secs to generate the invoice, the XML files were pretty small but there was a small amount of logic in the XSL:FO file. Switching to wkhtmltopdf has made things significantly faster and I get access to all the stuff that FOP provides plus more thanks to being able to use javascript in there too.
imho, 20 seconds is not acceptable. a user cannot press enter and wait that amount of time for a report and what happens for batch processes that need to generate and email hundreds of thousands of documents. the time it takes to generate a document should be measured in tens of milliseconds. again imho, html has even less features, like, charts, barcodes, interactive charts and data etc.
disclosure: i wrote a free competing project.
Barcodes are easy in HTML, i've already done that, as for the rest of it, it isn't something we need, I tried doing that other fancy stuff but nobody in the business wanted it.
For PDF files, we only use it for invoices, credit notes, RFCs, and some other simple stuff like that, which wkhtmltopdf works 100% perfectly for me.
And the moment the user presses enter, it doesn't matter if it takes a second for the invoice to come out because there's a minor delay before the printer at the branch receives it and prints it anyway.