Four Js Development Tools Forum

Discussions by product => Reporting tools (GRW, GRE) => Topic started by: Nuno G. on October 16, 2015, 01:07:15 pm



Title: Invoke Windows print dialog
Post by: Nuno G. on October 16, 2015, 01:07:15 pm
Hi!
I'm starting with GRW and I create a PDF report. Is there any way to invoke automatically the Windows Printer dialog instead of the preview window ?
TIA
Nuno


Title: Re: Invoke Windows print dialog
Post by: Alex G. on October 16, 2015, 01:38:20 pm
Yes, but not via PDF output but via SVG output. Using the API function fgl_report_configureSVGPreview() you can pop up the print dialog, print directly on the default printer or print silently to a printer selected by name.

From the documentation:
fgl_report_configureSVGPreview

Select SVG preview mode or other print options.
Syntax

fgl_report_configureSVGPreview(
   preview STRING)

    preview - One of the following:
        The Preview option shows the report in a folder tab of the main preview window.
        The ShowPrintDialog option pops up the system print dialog allowing the user to select and configure a printer. If confirmed, the document is printed in the background and the previewer main window is not shown.
        The PrintOnDefaultPrinter option prints the report silently on the default printer. The previewer main window is not shown.
        The PrintOnNamedPrinter option prints the report silently on the named printer. The previewer main window is not shown. In order to provide the name and other parameters, these functions have been added: fgl_report_setSVGCopies, fgl_report_setSVGPageRange, fgl_report_setSVGPaperSource, fgl_report_setSVGPrinterName, fgl_report_setSVGSheetCollate.

Usage

Function to select SVG preview mode or other print options

This function is applicable only for the device SVG when previewing is selected.


Regards,
Alex


Title: Re: Invoke Windows print dialog
Post by: Reuben B. on October 18, 2015, 10:08:52 pm
I'll mention something that may help if you want to stay with PDF

If you look in GREDIR/bin/src you will see a file gviewdoc.4gl which gets compiled into GREDIR/lib

This is what is used when viewing a report with fgl_report_selectPreview(TRUE)

In there you will see it uses the shellexec frontcall to view the report file.  Shellexec is the equivalent of double-clicking on a file and using the default application to open the file.  Some little known functionality about shellexec frontcall is that if you specify a second argument you do the equivalent of right-clicking on file and selecting an action e.g. print

So you might be able to get what you want for PDF by adding a second argument to the shellexec frontcall in gviewdoc.4gl.  Some discussion here https://4js.com/fjs_forum/index.php?topic=140.0

Reuben