Back to Four Js Website
Four Js Customer Forum
Subscribe for automatic updates:
RSS
Sign in for full access
|
Help
Four Js Development Tools Forum
>
Discussions by product
>
Genero BDL
>
Printing pdf files on local printer.
Most recent posts
Pages: [
1
]
« previous
next »
Reply
|
Print
Author
Topic: Printing pdf files on local printer. (Read 26488 times)
Snorri B.
Posts: 104
Printing pdf files on local printer.
«
on:
March 10, 2014, 06:36:39 pm »
Hi.
We generate PDF from our Genero app. I would like to implement an action so users can print the pdf file to the default local (windows) printer (through GDC). If I go to file manager in windows, find a PDF file, right-click -> Print it will silently print the pdf file on my default printer. That is what I am trying to emulate.
The first part is easy (transfering the file to the client) but the second part is not (printing the file).
The command line "print" (example C:>print mydfile.pdf) command does not work, so what I really need to do is running
"acrord32.exe /t myfile.pdf"
However, I don't know where the acrobat reader is installed on the client so running for example:
call ui.interface.frontCall("standard","execute",["acrord32.exe /t C:\\Users\\Snorri\\Downloads\\prentarar.pdf",1],[ret])
does not work.
call ui.interface.frontCall("standard","shellexec",["C:\\Users\\Snorri\\Downloads\\prentarar.pdf",""],[ret])
opens the pdf file however happily in Acrobat reader. Is it somehow possible to pass an argument to the associated program via shellexec? Any other obvious way to achieve what I'm trying to do?
Thanks in advance,
-Snorri
Snorri B.
Posts: 104
Re: Printing pdf files on local printer.
«
Reply #1 on:
March 10, 2014, 06:50:45 pm »
I actually succeeded (the documentation is not very clear):
call ui.interface.frontCall("standard","shellexec",["C:\\Users\\Snorri\\Downloads\\prentarar.pdf","print"],[ret])
Daniele A.
Posts: 28
Re: Printing pdf files on local printer.
«
Reply #2 on:
March 11, 2014, 08:36:44 am »
hi,
and if i need to print to printer other that default ?
bye
Daniele
Snorri B.
Posts: 104
Re: Printing pdf files on local printer.
«
Reply #3 on:
March 11, 2014, 10:20:26 am »
Hi Daniele.
You could open the file in acrobat as I describe, an then the user can press CTRL-P to open the print dialog.
Best regards,
-S
Lionel F.
Posts: 83
Re: Printing pdf files on local printer.
«
Reply #4 on:
March 11, 2014, 10:50:39 am »
Quote
I actually succeeded (the documentation is not very clear):
call ui.interface.frontCall("standard","shellexec",["C:\\Users\\Snorri\\Downloads\\prentarar.pdf","print"],[ret])
Hi Snorri,
Well done! :)
As mentioned by the documentation, the second parameter is optional, available on Windows only, and really depends on the way the file type has been registered in Windows registry (
https://4js.com/online_documentation/fjs-fgl-manual-html/?path=fjs-fgl-manual#c_fgl_FrontEndFunctions_004.html
).
That's mainly why there is no more precision about this: it may really depend on the workstation whereon you're running your program.
Regards,
Lionel
Reuben B.
Posts: 1126
Re: Printing pdf files on local printer.
«
Reply #5 on:
March 11, 2014, 11:48:12 am »
Snorri,
You may enjoy some of this old discussion
https://4js.com/fjs_forum/index.php?topic=140.new;topicseen#new&key=7a6687458834new
Danielle,
How have you generated the PDF? If you have a PDF because you used something like ascii2pdf and it is sitting on the front-end, then you have the options available to you via shellexec or execute frontcalls.
If you are using GeneroReport Writer, you have the fgl_report_svg* series of functions to send a report straight to a local printer
https://4js.com/online_documentation/fjs-gst-manual-html/#c_grw_fgl_report_configureSVGPreview.html#c_grw_fgl_report_configureSVGPreview
If you have an old-style report, you have the options available to you via DBPRINT
https://4js.com/online_documentation/fjs-fgl-manual-html/index.html#c_fgl_EnvVariables_DBPRINT.html
. That also uses the settings on the GDC monitor report tab
https://4js.com/online_documentation/fjs-gdc-manual-html/#c_gdc_Starting_report_config_panel.html
Reuben
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of
https://4js.com/ask-reuben
Contributor to
https://github.com/FourjsGenero
Daniele A.
Posts: 28
Re: Printing pdf files on local printer.
«
Reply #6 on:
March 11, 2014, 12:02:46 pm »
hi Reuben,
i have a pdf on server side, and i'd like to send it to a specific local printer (client side)
using call ui.interface.frontCall("standard","shellexec",["c:\path\.....pdffile.pdf","print","
EPSON-C70
"],[ret])
thanks
bye
Snorri B.
Posts: 104
Re: Printing pdf files on local printer.
«
Reply #7 on:
March 11, 2014, 03:03:20 pm »
Thanks Lionel and Reuben.
Another issue:
Would it be possibe (through frontcall) to get a list of printers the client has access to?
Best regs,
-Snorri
Lionel F.
Posts: 83
Re: Printing pdf files on local printer.
«
Reply #8 on:
March 11, 2014, 05:14:37 pm »
Hi again,
I'm afraid we don't have any "out of the box" solution on the frontcall list.
You may have a look at the Java interface (
https://4js.com/online_documentation/fjs-fgl-manual-html/?path=fjs-fgl-manual#c_fgl_JavaBridge_002.html
), perhaps there are some functions allowing this (see for instance:
http://stackoverflow.com/questions/15274328/how-to-get-the-list-of-printers-in-java
).
Best regards,
Lionel
Reuben B.
Posts: 1126
Re: Printing pdf files on local printer.
«
Reply #9 on:
March 13, 2014, 04:37:33 am »
Quote from: Reuben B. on March 11, 2014, 11:48:12 am
...
If you have an old-style report, you have the options available to you via DBPRINT
https://4js.com/online_documentation/fjs-fgl-manual-html/index.html#c_fgl_EnvVariables_DBPRINT.html
. That also uses the settings on the GDC monitor report tab
https://4js.com/online_documentation/fjs-gdc-manual-html/#c_gdc_Starting_report_config_panel.html
Reuben
... just for completeness and to expand on this portion of my previous answer, there is also these FrontCalls to override the settings in the GDC monitor report tab
https://4js.com/online_documentation/fjs-gdc-manual-html/#c_gdc_NewFeatures230_report_to_printer_settings.html
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of
https://4js.com/ask-reuben
Contributor to
https://github.com/FourjsGenero
Reuben B.
Posts: 1126
Re: Printing pdf files on local printer.
«
Reply #10 on:
March 13, 2014, 04:48:17 am »
Quote from: Snorri B. on March 11, 2014, 03:03:20 pm
Thanks Lionel and Reuben.
Another issue:
Would it be possibe (through frontcall) to get a list of printers the client has access to?
Best regs,
-Snorri
Short answer = Yes
Long answer ...
In another thread, Lionel commented to think of the execute frontcall as being what you can do via Start, think of shellexec as what you can do via double-click in Explorer. So if you can write a vbscript (it doesn't have to be vbscript), then you can FGL_PUTFILE() from your server to the GDC, shellexec to execute that file so it produces a list of printers, and then FGL_GETFILE() to return the output file containing your list of printers back to you.
However what the original designers probably envisioned you doing, is writing a function inside your own DLL/Shared Object/Dynamic Library that you can then execute via the FrontCall structure
https://4js.com/online_documentation/fjs-gdc-manual-html/#c_gdc_FEextensions.html
. Its one of those things that is probably easier once you have done one or two. The equivalent on the GWC is creating some javascript functions that you can execute also via FrontCall
Reuben
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of
https://4js.com/ask-reuben
Contributor to
https://github.com/FourjsGenero
Reuben B.
Posts: 1126
Re: Printing pdf files on local printer.
«
Reply #11 on:
March 13, 2014, 05:08:15 am »
Quote from: Daniele A. on March 11, 2014, 12:02:46 pm
hi Reuben,
i have a pdf on server side, and i'd like to send it to a specific local printer (client side)
using call ui.interface.frontCall("standard","shellexec",["c:\path\.....pdffile.pdf","print","
EPSON-C70
"],[ret])
thanks
bye
When you shellexec, it is launching the default handler for files of that extension on the front-end device. For PDF that is probably Adobe Reader (AcroRd32.exe) and that command can be opened with additional arguments
http://stackoverflow.com/questions/619158/adobe-reader-command-line-reference
, note the last one /t
So you will probably find that executing a command such as AcroRd32.exe /t <filename> <printer> (having used FGL_PUTFILE to put file on the front-end PC) may get you close.
Reuben
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of
https://4js.com/ask-reuben
Contributor to
https://github.com/FourjsGenero
Daniele A.
Posts: 28
Re: Printing pdf files on local printer.
«
Reply #12 on:
March 14, 2014, 11:43:21 am »
Hi Reuben,
well, it could be useful for me,
but to discover the path of the AcroRd32.exe ?
Daniele
Pages: [
1
]
Reply
|
Print
« previous
next »
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Discussion
=> Ask Reuben
=> WWDC21
-----------------------------
Discussions by product
-----------------------------
=> Products announcements
=> Genero BDL
=> GWS
=> GAS and GBC
=> GDC
=> Genero Mobile for Android or iOS
=> Genero Studio
=> Reporting tools (GRW, GRE)
-----------------------------
Jobs
-----------------------------
=> Jobs
Powered by SMF 1.1.21
|
SMF © 2015, Simple Machines
Loading...