Good base module.
I used PDF:TextBlock to handle paragraphs.
For memory performance, I produce one page at a time with API2 and Textblock, then join them at the end with PDF Reuse (reduced max RAM to about 23.5 MB, reduced final file size by a third). I also print my footer with PDF Reuse, because it is includes # of pages (page x/y). API2 methods 'new (-file)' and 'finishobjects' don't actually help with RAM, so mine was running out of control (362 MB on 106 page doc).
Would love an example of using the shade shading object.
This is an incredible module, limited only by documentation so far.
The documentation is far from complete.
I want to add a dashed line for instance.
So, that must be a gfx according to the page module. But there is no gfx module, the line feature is hidden in Content.
Content gives me this information about a dashed line:
So, what is the array supposed to be filled with?
And so I can make a very long list with examples.
This is a sad, very sad, because the module looks like it has a million features and is a ideal solution to write a PDF.
Please stop the development and invest time in documentation.
Looks really useful but the documentation is incomplete and the test coverage negligible. Even if it's a fantastic bit of code I don't feel at all confident about using it.
That's a shame because it clearly represents a lot of work and is potentially very useful.
If you want to produce PDFs, and have to use Perl, use this module. Sine it's initial release, I have found it to be easy to use to produce simple documents, over every aspect of my PDF creation, from image contact sheets, to relatively complex tabulated data. Top notch!
I should add, though, that using this moudle is not a two-minute job. The documentation is extremely sparse, and assumes you know not only PDF but also PDF::API2, and will take some time to penetrate. If you are not familliar with printing/print-layout and PDF terminology, you will probably need a glossary, since the object-orientation closely mirrors these two fields.
My big problems with this module begin with text flow. The latest version of the module suddenly required Perl 5.8.*, and unexpectedly replaces the old text-rendering without warning, leaving piles of code in need of updates. The replacement methods do a quite poor job at rendering blocks of text, and are almost undocumented. There is no way to render a block of text with inline font/style changes. There is no way to render columns. All of those things you'll have to do yourself.
Finally, the mailing list is actually a Yahoo! group, and has all the associated accessibility problems.
But if you are patient, this module can produce very pleasing results that are usable on an increasingly-wide number of platforms.
It's a great module because you can do with it what you should be able to. It's just terrible trying to figure it out.
This module is AWESOME. I've used it in production and for some personal projects. It can do just about anything. Admittedly, the documentation is anemic, but there is a grass roots effort to create some formal documentation. Also, there is a Yahoo Group that is moderated by Alfred Reibenschuh where specific questions do get answered in a timely manner.
If you want to use Perl to create PDF files, I highly recommend this module. PDF is daunting at first, but once you get your arms around the basics of PDF building, this module is indespensible. It creates crisp, clean PDFs. I've compared the raw PDF output from PDF::API2 with that generated by Acrobat 6.0 Professional. In most cases, the PDFs from PDF::API2 are at least as good as the Abode versions, and they are almost always smaller, making them good for document storage and for web-served PDFs.
Two thumbs up!
Funcionality and stability is great
It solved my PDF generation problems in two projects. Excellent.
A fantastically powerful and much-needed set of modules, which I look forward to watching (or helping) flourish into as healthy a part of the psuedo-core as ImageMagick and GD.
Limited error handling is not a practicle problem, just a nice-to-have, and the few problems handling certian JPEGs are sure to be ironed out. The only weakness is the lack of documentation, though even than is not a problem when you locate the demo files on the internet.
Great stuff, Alfred: keep it up!
3 hidden unhelpful reviews