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 **********************************************************************