If you use PDF::Writer, read this post!

Hi Greg,

I'm replying to this off-list, simply because I don't really feel this is an
issue that needs to be debated in public. If you feel it should be public,
please feel free to reply on-list.

Okay, I have done that, to help encourage discussion on the topic and
because you have good points.

I hope my words don't come across as negative. My intention is to let you
know how things are in our business. A business that's led by real world
constraints such as budgets and time. I personally wish for unlimited
resources, but that's just dreaming. :wink:

I didn't find anything you said in this message to be negative or
insulting, and I'm glad you shared your thoughts. Of course... there
are things worth discussing here.

= Are you happy with Prawn as it is and have already migrated your new
projects to it?

I haven't even tried Prawn. Why? Because PDF::Write works and I frankly
don't have time to "play around" with stuff that's not a priority. I suspect
that one day I need to try out Prawn, and I have 100% faith in that it'll be
just fine for our needs.

Do you mean it works in projects you already have built, or that you
are using PDF::Writer for new projects? In the former case, I've got
a lot of projects that are that way. We built them in PDF::Writer,
they 'work', and they'll probably never get translated. But 90% of
the time, it'd be crazy for me to use it for new projects because
Prawn is such a time saver and will be a major benefit down the line
since it is actively developed. There are those 10% cases from time
to time, but those get smaller each day (For me, others might have a
different experience)

With this in mind, I'd like to have clear migration instructions from
PDF::Writer to, then, PDF::Document.

This is a great idea, and you can be sure that this will exist by the
time PDF::Document 1.0 is out. I might even put something together
for Prawn in the interim. Or even better, any volunteers? :slight_smile:

= Are there features you need that have not yet been implemented in
Prawn?

As I haven't investigated Prawn, I might have missed something, but what is
vital to us, and what took a long time for me to "hack" was something that
could be called "PDF::Paper". What I mean by that is something similar to
stationery in real life. I have a system that generates certain documents.
These documents will be sent to my client's clients. Therefore they need to
have headed paper, etc. I hacked this in PDF::Writer (as you can see if you
search the archives) in a not very elegant way.
The requirement is simply that I need a template that will be applied to all
pages of the "print-out". Such as headers, footers, and a good bonus would
be to define default fonts/sizes/colours etc.

This requirement could also be defined as a one-page-document that can be
read into PDF::Document and used as a template. This would obviously provide
for a greater level of customisation for non-programmers (read: graphic
designers etc).

Just for the record, I think this is an interesting feature. It's not
present in PDF::Writer, so it's not at the top of the queue in terms
of my personal goals, but I like the idea a lot and would welcome a
prawn-paper extension, possibly even as part of the 'official'
project. Those interested in working on such a thing should contact
me on the Prawn mailing list[0].

= Do you plan to keep on using PDF::Writer even though it's slated for
deprecation?

Totally honest; yes. I won't switch to PDF::Document unless PDF::Writer is
broken. It's a sad, but realistic, fact. I simply don't have the resources
to halt other development to switch, for the sake of switching. I would
_like_ to do the switch "out of panic" but I'm afraid that the reality of
"the real world" won't allow for it. Sure there's a chance it will happen,
but I have to stay realistic and let you know the facts. And in the same
breath I'll state that our system will, in time, switch to PDF::Document. :slight_smile:

I think there may have been a misunderstanding. I didn't mean people
should go eradicate existing PDF::Writer projects and replace them
with Prawn, because I'm not even doing that (well, not everywhere,
anyway). What I'm suggesting is that people should use Prawn for
their new projects once it becomes PDF::Document because my current
plans are to drop all support for PDF::Writer.

Now you've been lucky and not run into issues (with either
performance, bugs, etc) in PDF::Writer, but many others are not so
lucky, and without a maintainer, PDF::Writer will continue to rot in
the face of these issues. Sure, we can get it up on github and hope
for the best, but I don't think that's any real solution. I plan to
do one or two more release of PDF::Writer before I retire it, just to
clear the patch pool, but after that, the 'official' development will
completely stop unless someone stands up and takes up the role of
maintaining it.

This is why the best solution I can see is for PDF::Writer users to
spend an hour or two learning Prawn to see how close it fits their
needs. If a huge group feels like it's way off and will continue to
be way off after 1.0, the they should elect a maintainer and get in
touch with me for a smooth transition.

I also want to thank you for your continued work and support. Both on Prawn
and PDF::Writer.

Thanks for the kind words,

-greg

[0] http://groups.google.com/group/prawn-ruby

···

On Sun, Jan 18, 2009 at 6:53 AM, Jocke Selin <the.joxor@gmail.com> wrote:

On 18 Jan 2009, at 01:35, Gregory Brown wrote:

--
Technical Blaag at: http://blog.majesticseacreature.com
Non-tech stuff at: http://metametta.blogspot.com
"Ruby Best Practices" Book now in O'Reilly Roughcuts:
http://rubybestpractices.com

= Are you happy with Prawn as it is and have already migrated your new
projects to it?

I haven't even tried Prawn. Why? Because PDF::Write works and I frankly
don't have time to "play around" with stuff that's not a priority. I
suspect
that one day I need to try out Prawn, and I have 100% faith in that it'll
be
just fine for our needs.

Do you mean it works in projects you already have built, or that you
are using PDF::Writer for new projects? In the former case, I've got
a lot of projects that are that way. We built them in PDF::Writer,
they 'work', and they'll probably never get translated. But 90% of
the time, it'd be crazy for me to use it for new projects because
Prawn is such a time saver and will be a major benefit down the line
since it is actively developed. There are those 10% cases from time
to time, but those get smaller each day (For me, others might have a
different experience)

I read your question as "are you going to migrate existing projects to
Prawn?". And that was the question I was trying to answer. For new projects
the answer is simple; We'll definitely use the latest products available. In
PDF's case, Prawn, to be PDF::Document would be the weapon of choice. Even
if it's in late Beta. Reason for accepting late Betas is that once our
product is ready, the other product will be out of Beta too. :slight_smile:

Ah, that's completely understandable. Glad we cleared this up.

Just for the record, I think this is an interesting feature. It's not
present in PDF::Writer, so it's not at the top of the queue in terms
of my personal goals, but I like the idea a lot and would welcome a
prawn-paper extension, possibly even as part of the 'official'
project. Those interested in working on such a thing should contact
me on the Prawn mailing list[0].

Excellent. I will do my best to provide "specifications" if required, but
that's sadly as far as I can reasonably go with my promises.

Sure, why don't you put something together and post it to the Prawn
list. Who knows, someone might have a similar need and decide to
implement it...

-greg

···

On Mon, Jan 19, 2009 at 3:54 AM, Jocke Selin <the.joxor@gmail.com> wrote:

On 18 Jan 2009, at 17:40, Gregory Brown wrote:

On Sun, Jan 18, 2009 at 6:53 AM, Jocke Selin <the.joxor@gmail.com> wrote:

On 18 Jan 2009, at 01:35, Gregory Brown wrote:

--
Technical Blaag at: http://blog.majesticseacreature.com
Non-tech stuff at: http://metametta.blogspot.com
"Ruby Best Practices" Book now in O'Reilly Roughcuts:
http://rubybestpractices.com