Rudy,
Good point -I'm using the Pro version. Further, as I just checked Rob's
website, I'm using beta version 2. Rob shipped it to me in response to some
specific things I asked about doing and I don't recall what those were
specifically. Looking at the page for QPDF it appears he's preparing to
release v2 but I don't know when. Probably best to drop him an email.

On Fri, Jun 15, 2018 at 3:45 AM Two Way Communications via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> Hi Kirk,
>
> Are you using the QPDF plugin from pluggers? If so, which version, QPDF
> plugin light or Pro?
>
>
> Regards,
>
> Rudy Mortier
> Two Way Communications bvba
>
>
>
> > On 14 Jun 2018, at 22:48, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
> >
> > John,
> > Using QPDF is much like using PRINT FORM. The plugin commands allow you
> to
> > precisely control where on the page something (text, line, image) will
> > appear. Unlike PRINT FORM you can add to existing pages. This greatly
> > simplifies, for instance, adding page numbers in the form of "Page x of
> y".
> > You can traverse back and forth through your pages if necessary.
> >
> > QPDF allows me to use templates. These can be pre-formatted PDFs or I can
> > build one on the fly. My usual workflow in a method is to create the
> > document and set the meta data (author, date, subject, etc. - stuff I
> don't
> > think you can do at all when creating PDFs via print engines). Then I'll
> > make the page template with things like the report header and footer
> info.
> > Then I basically run down the page adding material just like I would with
> > PRINT FORM. I like to make my methods that add material to the page
> > functions that return the last y value. Coupled with a method to check
> for
> > available space and handle page breaks it works well.
> >
> > I may get around to locating these methods in a component for ease of
> reuse
> > as I think about.
> >
> > A few other things I can do with the plugin are include existing PDFs.
> This
> > didn't seem like an incredibly useful feature at first but it is. In the
> > case of sales quotes some salesmen like to include cut sheets, drawings
> or
> > brochures from the vendor with their bid. Another use is creating or
> > reading PDF forms. If you have a PDF form you must populate but the form
> is
> > really just a scan of something you can still place text in the
> appropriate
> > locations on the page. It's a pain but you only have to do it once.
> >
> > Another benefit I don't believe is available any other way is adding
> > bookmarks and internal references. Bookmarks are what you see in the
> > sidebar and allow you to navigate large documents. Internal references
> are
> > like anchors on a web page and work the same way.
> >
> > Don't get me wrong, I have not abandoned traditional print forms by any
> > means. It takes some effort to build a PDF form in code for anything
> beyond
> > very simple needs. It's not the right solution for everything. But for
> > certain types of documents I'm finding working with it a very deep breath
> > of fresh air.
> >
> > On Thu, Jun 14, 2018 at 11:07 AM JOHN BAUGHMAN via 4D_Tech <
> > 4d_tech@lists.4d.com> wrote:
> >
> >> Interesting. I have never had a situation where I did not have a
> >> relatively  good idea of what a document will look like such that I
> >> couldn't create 1 or more variable populated forms to cover all the
> >> possibilities.
> >>
> >>
> >> John Baughman
> >> 1331 Auwaiku Street
> >> Kailua, Hawaii  96734
> >> (808) 262-0328
> >> john...@hawaii.rr.com
> >>
> >>> On Jun 14, 2018, at 7:14 AM, Kirk Brooks via 4D_Tech <
> >> 4d_tech@lists.4d.com> wrote:
> >>>
> >>> John,
> >>> Yes. No 4D form printing at all.
> >>>
> >>> On Thu, Jun 14, 2018 at 10:14 AM JOHN BAUGHMAN via 4D_Tech <
> >>> 4d_tech@lists.4d.com> wrote:
> >>>
> >>>> Kirk, are you talking about creating the pdf strictly in code?
> >>>>
> >>>> Otherwise, as Pat pointed out 4D Write Pro can be used, as can 4D
> forms…
> >>>>
> >>>> SET PRINT OPTION(Destination option;3;$FolderPath+"MyTest.pdf")
> >>>> OPEN PRINTING JOB
> >>>> Print form("MyTest4DForm";Form header)
> >>>> CLOSE PRINTING JOB
> >>>>
> >>>> PDFs from 4D forms using this methodology works both on the client and
> >> on
> >>>> the server.
> >>>>
> >>>>
> >>>> John Baughman
> >>>> 1331 Auwaiku Street
> >>>> Kailua, Hawaii  96734
> >>>> (808) 262-0328
> >>>> john...@hawaii.rr.com
> >>>>
> >>>>> On Jun 14, 2018, at 5:37 AM, Pat Bensky via 4D_Tech <
> >>>> 4d_tech@lists.4d.com> wrote:
> >>>>>
> >>>>> Another option, which may or may not be suitable depending on the
> >>>> project,
> >>>>> is to build the document with 4DWrite Pro and then simply set the
> print
> >>>>> option and print it:
> >>>>>
> >>>>> *SET PRINT OPTION*(Orientation option;iPrintOption) // landscape or
> >>>> portrait
> >>>>>
> >>>>> *SET PRINT OPTION*(Destination option;3;$pathname)  // PDF
> >>>>>
> >>>>> *WP USE PAGE SETUP*(oWPdoc)
> >>>>>
> >>>>> *WP PRINT*(oWPdoc)
> >>>>>
> >>>>> *SHOW ON DISK*($pathname)
> >>>>>
> >>>>> This will require you to learn how to program Write Pro, but I think
> >> that
> >>>>> will be a bit simpler than learning how to create PDFs, it won't cost
> >> you
> >>>>> any extra, and those skills might come in handy for other 4D projects
> >> :)
> >>>>>
> >>>>> Pat
> >>>>>
> >>>>> On Thu, 14 Jun 2018 at 16:22, Kirk Brooks via 4D_Tech <
> >>>> 4d_tech@lists.4d.com>
> >>>>> wrote:
> >>>>>
> >>>>>> I just chimed in on a conversation on the forums about using PDF
> >> Creator
> >>>>>> <http://forums.4d.com/Post/FR/24699370/1/24714745#24714745>. In
> this
> >>>> case
> >>>>>> the OP was asking about making it work on the server. I'm sure
> anyone
> >>>> who
> >>>>>> tried to make that work just gave a little sympathetic groan.
> >>>>>>
> >>>>>> ​Making PDFs is hard. True - with a Mac or Win10 it's become pretty
> >>>> easy to
> >>>>>> print-to-PDF. This is really a user-interface feature though. If you
> >>>> need
> >>>>>> to build a PDF in code and want to work with the BLOB of that
> document
> >>>>>> using the OS print features starts to fall apart. If you want to do
> >>>> this on
> >>>>>> the server it's a complete non starter in my view. ​
> >>>>>>
> >>>>>> ​This is where things get tricky in 4D land. Actually pretty much
> >>>>>> everywhere I suspect but I don't know everywhere. It's actually
> >>>> possible to
> >>>>>> build perfectly valid PDFs in native 4D. Neil Denis gave a Summit
> >>>>>> presentation in 2016 demonstrating this. Working with his demo gave
> >> me a
> >>>>>> workable solution for a bit. But sometimes the PDFs wouldn't be
> valid
> >>>> and
> >>>>>> wouldn't always open. I don't think it had anything to do with
> Neil's
> >>>> work
> >>>>>> but my own additions.
> >>>>>>
> >>>>>> From here I spent way too much time building my own PDF component in
> >> all
> >>>>>> native 4D. PDF language is all text based so there's no reason you
> >>>> can't do
> >>>>>> it in native 4D (well, without the flate/deflate compression). But
> it
> >> is
> >>>>>> hard. The challenge was sort of interesting to me and I now have a
> >>>> fairly
> >>>>>> good understanding of how a PDF document is structured internally.
> In
> >>>> the
> >>>>>> end I had a working solution for a specific set of uses and the
> files
> >>>> were
> >>>>>> always valid <https://www.pdf-online.com/osa/validate.aspx>. The
> >>>> problem
> >>>>>> was it wasn't a full solution. I didn't have bookmark capability,
> for
> >>>>>> example. Or form fields. It was decent but very limited.
> >>>>>>
> >>>>>> BTW - making PDF is hard. Debugging PDF is even harder.
> >>>>>>
> >>>>>> Prior to that I tried most of the other options I heard folks talk
> >> about
> >>>>>> here: PHP, HTMLTOX, various schemes for managing printing on user
> >>>> machines
> >>>>>> and probably some others I've blocked out of my memory. All of them
> >>>> worked
> >>>>>> to varying degrees of success but all of them also required a
> slightly
> >>>>>> different way of coding, for the ones that build the PDF in code. I
> >>>> could
> >>>>>> never sell the idea of the pricier solutions (this is for the
> in-house
> >>>> app
> >>>>>> I wrote).
> >>>>>>
> >>>>>> A couple of months ago the need for more robust PDF features came
> up.
> >>>>>> Looking at my work I realized it just wasn't worthwhile for me to
> >> spend
> >>>> the
> >>>>>> time to build it out in my own component so I took another look
> around
> >>>> at
> >>>>>> the available options. I happened to email Rob Laveaux with some
> >>>> question
> >>>>>> about his plugins. He got back to me suggesting I look at QPDF
> >> instead.
> >>>> And
> >>>>>> here is where this turns into a big plug for QPDF. The licensing on
> >> the
> >>>>>> older set is pricey. And at 1k euro QPDF isn't cheap but it has the
> >> same
> >>>>>> no-hassel many of his products do. QPDF uses a C library (DynaPDF,
> >>>> which is
> >>>>>> a large chunk of the licensing fee).
> >>>>>>
> >>>>>> Working with QPDF did require me to refactor the methods that
> produce
> >> my
> >>>>>> key documents. And I had to spend some time prior to that learning
> how
> >>>> to
> >>>>>> work with the new command set. I think the time I spent studying the
> >>>> Adobe
> >>>>>> docs on PDF construction helped make this go faster. The result is
> >> what
> >>>> I
> >>>>>> consider a successful refactor: cleaner code, less of it, more
> >>>> capability,
> >>>>>> better output. Plus a core PDF module that makes building new docs
> >>>> pretty
> >>>>>> simple.
> >>>>>>
> >>>>>> As I mentioned in the post on the forums I am starting to look at a
> >>>> 'print'
> >>>>>> job as more of 'producing a document' than a piece of paper. If it's
> >>>>>> something that needs to be stored, shared, downloaded from the web
> or
> >>>>>> produced on the server it's going to need to be produced in a blob
> and
> >>>>>> that's going to be a PDF. If it's truly something a user needs as a
> >>>> piece
> >>>>>> of paper it's a print job.
> >>>>>>
> >>>>>> Producing PDFs in code means no form editor. This isn't always a bad
> >>>> thing.
> >>>>>> Sometimes it's as much work to make a complex document render
> >> correctly
> >>>>>> through a 4D print form as it is to simply write the code to
> assemble
> >>>> the
> >>>>>> data. It really depends on the data and the document.
> >>>>>>
> >>>>>> --
> >>>>>> Kirk Brooks
> >>>>>> San Francisco, CA
> >>>>>> =======================
> >>>>>>
> >>>>>> *We go vote - they go home*
> >>>>>>
> **********************************************************************
> >>>>>> 4D Internet Users Group (4D iNUG)
> >>>>>> FAQ:  http://lists.4d.com/faqnug.html
> >>>>>> Archive:  http://lists.4d.com/archives.html
> >>>>>> Options: https://lists.4d.com/mailman/options/4d_tech
> >>>>>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >>>>>>
> **********************************************************************
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> *************************************************
> >>>>> CatBase - Top Dog in Data Publishing
> >>>>> tel: +44 (0) 207 118 7889
> >>>>> w: http://www.catbase.com
> >>>>> skype: pat.bensky
> >>>>> *************************************************
> >>>>>
> **********************************************************************
> >>>>> 4D Internet Users Group (4D iNUG)
> >>>>> FAQ:  http://lists.4d.com/faqnug.html
> >>>>> Archive:  http://lists.4d.com/archives.html
> >>>>> Options: https://lists.4d.com/mailman/options/4d_tech
> >>>>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >>>>>
> **********************************************************************
> >>>>
> >>>> **********************************************************************
> >>>> 4D Internet Users Group (4D iNUG)
> >>>> FAQ:  http://lists.4d.com/faqnug.html
> >>>> Archive:  http://lists.4d.com/archives.html
> >>>> Options: https://lists.4d.com/mailman/options/4d_tech
> >>>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >>>> **********************************************************************
> >>>
> >>>
> >>>
> >>> --
> >>> Kirk Brooks
> >>> San Francisco, CA
> >>> =======================
> >>>
> >>> *We go vote - they go home*
> >>> **********************************************************************
> >>> 4D Internet Users Group (4D iNUG)
> >>> FAQ:  http://lists.4d.com/faqnug.html
> >>> Archive:  http://lists.4d.com/archives.html
> >>> Options: https://lists.4d.com/mailman/options/4d_tech
> >>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >>> **********************************************************************
> >>
> >> **********************************************************************
> >> 4D Internet Users Group (4D iNUG)
> >> FAQ:  http://lists.4d.com/faqnug.html
> >> Archive:  http://lists.4d.com/archives.html
> >> Options: https://lists.4d.com/mailman/options/4d_tech
> >> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> >> **********************************************************************
> >
> >
> >
> > --
> > Kirk Brooks
> > San Francisco, CA
> > =======================
> >
> > *We go vote - they go home*
> > **********************************************************************
> > 4D Internet Users Group (4D iNUG)
> > FAQ:  http://lists.4d.com/faqnug.html
> > Archive:  http://lists.4d.com/archives.html
> > Options: https://lists.4d.com/mailman/options/4d_tech
> > Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> > **********************************************************************
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **********************************************************************



-- 
Kirk Brooks
San Francisco, CA
=======================

*We go vote - they go home*
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to