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