Hello Friends,
As you know it is not possible in NAV to have advance printing option like merge 2 document and print in single call with source page from multiple tray & dual side printing.
We have make it possible very easily with Dynamics NAV (by just single click only)
Here is the new concept of Silent Printing from Dynamics NAV. Silent Printing will help you to print from NAV without any user interaction (Page setup, Side by side Printing, Page selection, color settings, Tray Selections).
This will reduce the time to set printing preferences every time.
File formats you can use:
I hope it will help you in future.
As you know it is not possible in NAV to have advance printing option like merge 2 document and print in single call with source page from multiple tray & dual side printing.
We have make it possible very easily with Dynamics NAV (by just single click only)
Here is the new concept of Silent Printing from Dynamics NAV. Silent Printing will help you to print from NAV without any user interaction (Page setup, Side by side Printing, Page selection, color settings, Tray Selections).
This will reduce the time to set printing preferences every time.
File formats you can use:
- PDF Document Format [.pdf]
- OpenOffice Documents [.odt, .ott, .odg, .odp, .ods]
- MS Word Documents [.doc, .docx, .rtf, .txt, .xml]
- MS PowerPoint Documents [.ppt, .pptx, .pps, .ppsx]
- MS Excel Documents [.xls, .xlsx, .xlsm]
- HTML Documents [.htm, .html, .mht, .mhtml]
- Vector Drawing Formats [.wmf, .emf]
- Image Formats [.bmp, .jpg, .jpeg, .tif, .tiff, .gif, .png, .pcx]
- Image Formats [.tga, .jp2, .j2k, .jpc, .jpx, .pbm, .pgm, .ppm, .pnm]
Prerequisite:
Very PDF PrintPDF : http://www.verypdf.com/pdfprint/pdfprint_cmd.zip
Steps to Implement Silent printing from NAV 2016:
- Download PrintPDF.exe from the above link.
- Keep this tool in Network Shared Drive, so that NAV can access it.
- Prepare Codeunit in NAV to run this tool from NAV.
As this tool is command based, you can run this from CMD(Command Prompt). From NAV you can run CMD by creating .Net Assembly variable(‘Windows Script Host Object Model’.WshShell) By creating above variable, you can run CMD from NAV itself.
Now Prepare a command that will run to do side by side printing.
Explanation of each parameter of the above sample command for Side by Side printing
- To Run PDFPrint tool
- Bin code of Printer: this is the Bin Code of Printer by running this command from CMD: pdfprint.exe -listbins -printer “HP LaserJet 1020”
- Printer Name
- Number of copies that you want to print.
- Paper type Code: for A4 size, it is “9”.
- This “2” will print duplex (side by side) printing.
- This parameter will restore the original printer settings after running this command.
- Your File Name that you want to print
To test this command whether it is working or not, you can run directly from CMD prompt.
Now prepare this command in NAV by creating Text Constant:
Create a function that runs CMD from NAV.
Now replace CMDcmd_itxt variable with your newly created Text constant Text50001_gCtx.
Now run this function. It will print the Test.pdf document without any User Interaction dialog as you defined in command.
All Parameters and their usage with examples:
Parameters | Usage: pdfprint.exe [options] [Options] <PDF Files> |
-firstpage <int> | first page to print, from 1 to max page |
-lastpage <int> | last page to print, from 1 to max page |
-prompt | prompt the user with the print dialog so they can change printer settings and/or select pages manually |
-printer <string> | printer name to print |
-savedevmode <string> | prompt the user with print dialog and save the printer settings into a disk file |
-loaddevmode <string> | restore printer settings which saved by -savedevmode parameter |
-promptdevmode | prompt the user with print dialog and print the printer settings to screen |
-devmode <string> | restore printer settings which outputed by -promptdevmode parameter |
-copies <int> | set number of copies to print |
-setcopyto | set ‘-copies’ value to printer instead of print it several times |
-paper <string> | paper size to printer |
-shell | Call default PDF viewer to print PDF file |
-shell2 | Call default PDF viewer to print PDF file |
-shelltime <int> | set timeout for shell printing,in milliseconds |
-vector | render PDF page to vector EMF before printing |
-vectorplus | render PDF page to vector EMF with GDIPlus before printing |
-vectorgray | render PDF page to vector EMF with grayscale before printing |
-raster | render PDF page to image before printing |
-raster2 | render PDF page to image before printing |
-raster2center | center the printout when use -raster2 |
-raster2aa <string> | enable font anti-aliasing: yes/no, default is ‘yes’ |
-raster2aavec <string> | enable vector anti-aliasing: yes/no, default is ‘yes’ |
-rasterbitcount <int> | set bitcount for raster image, e.g., 1, 8, 24 |
-rasterbwtext | disable halftone for color text, for -raster2 only |
-enhancethinlines | enhance thin lines when render PDF file to image |
-preproc | process PDF file before printing, useful for some damaged PDF files |
-printtofile <string> | save print spooling data to a disk file |
-mergeprintjobs | combine all print jobs into one print job |
-listprinter | list printers in system |
-listbins | list bins/trays of a printer |
-listjobs | list print jobs in printer’s queue |
-listall | list printers, ports, monitors etc. |
-chgbin <int> | change bin/tray for printer by number |
-papersource <string> | change bin/tray for printer by name |
-settraytopclfile <string> | set tray to PCL file directly, only work when ‘-papersource’ used |
-winfont | use Windows fonts to instead of embedded fonts |
-winfont2 | force to use Windows fonts to instead of all embedded fonts |
-useembedfont | use embedded fonts from PDF file |
-useunicode <int> | enable or disable unicode conversion for PDF printing |
-antifonts | enable anti-aliased font bitmaps for emulated fonts |
-nochgprinter | don’t change default printer during printing |
-restoreprinter | restore original settings to printer after printing |
-printermargins | reduce to printer margins when printing |
-checkjobstatus | check status for print jobs |
-checkjobtime <int> | delay some time before check status for print jobs, in millisecond |
-nodelfailjobs | don’t delete failed print jobs |
-movetotop | move print area to top if printer paper not same as PDF paper, default is ‘center’ |
-openpassword <string> | set open password to PDF file |
-ispasswordprotected | check if a PDF file protected by ‘open password’ or not |
-getpagecount | read page count from input PDF file |
-jobusername <string> | specify the name of the user who owns the print job |
-jobdocname <string> | specify document name of print job |
-ownerservicename <string> | specify the name of OwnerService on Windows Server 2008 |
-useownerservice | force to use owner service for all systems |
-deleteownerservice <string> | remove the OwnerService from Windows |
-nup <int> | print multiple pages on one sheet, nUP printing |
-marginscale <string> | scale percent for print margins when printing EMF file, range from 1 to 45 |
-silent | print PDF files silently |
-timeout <int> | specify a timeout to avoid hanging pdfprint process, in millisecond |
-wtext <string> | watermark on printed document |
-wtype <int> | type of watermark |
-wf <string> | font name of watermark |
-wh <int> | font height of watermark |
-ww <int> | font width of watermark |
-wb | specify bold font |
-wi | specify an italic font |
-wu | specify an underlined font |
-ws | specify a strikeout font |
-wo <int> | opacity of watermark, from 0 to 100 |
-wa <int> | angle of watermark |
-wc <string> | color of watermark, |
-wx <int> | X offset of watermark |
-wy <int> | Y offset of watermark |
-quiet | don’t print any message on screen |
-debug | print out debug messages |
-logtofile <string> | redirect debug message to a log file |
-checkspooler | check Windows Spooler Service if running before printing |
-clickpopup | click ‘Retry’ button on ‘Xerox Printer’ automatically |
-watermarkfile <string> | a .ini file which contain information for multiple watermarks |
-$ <string> | Input registration key |
Examples:
pdfprint.exe -printer “PDFcamp Printer” -copies 3 -paper 9 C:\input.pdf |
pdfprint.exe -printer “PDFcamp Printer” -paper “pdf” C:\input.pdf |
pdfprint.exe -printer “PDFcamp Printer” -paper “11x17in” C:\input.pdf |
pdfprint.exe -printer “PDFcamp Printer” -paper “215.9×279.4mm” C:\input.pdf |
pdfprint.exe -printer “PDFcamp Printer” -paper “612x792pt” C:\input.pdf |
pdfprint.exe -printer “docPrint” -paper “612x792pt” -orient 1 C:\input.pdf |
pdfprint.exe -printer “docPrint” -paper “612x792pt” -orient 2 C:\input.pdf |
pdfprint.exe -printer “docPrint” -paper “11x14in” -pdforient 3 C:\input.pdf |
pdfprint.exe -printer “docPrint” -firstpage 1 -lastpage 1 C:\input.pdf |
pdfprint.exe -prompt C:\input.pdf |
pdfprint.exe -firstpage -1 -lastpage -1 C:\lastpage.pdf |
pdfprint.exe -scalex 50 -scaley 50 C:\input.pdf |
pdfprint.exe -scalex 0 -scaley 0 C:\input.pdf |
pdfprint.exe -scalex -1 -scaley -1 C:\input.pdf |
pdfprint.exe -duplex 3 C:\input.pdf |
pdfprint.exe -color 1 C:\input.pdf |
pdfprint.exe -xres 600 -yres 600 C:\input.pdf |
pdfprint.exe -xres -4 C:\input.pdf |
pdfprint.exe -xoffset 200 -yoffset 200 C:\input.pdf |
pdfprint.exe -scale 50 C:\input.pdf |
pdfprint.exe -shell -shelltime 5000 C:\input.pdf |
pdfprint.exe -vector C:\input.pdf |
pdfprint.exe -vector -printermargins -nochgprinter C:\input.pdf |
pdfprint.exe -raster C:\input.pdf |
pdfprint.exe -raster2 -rasterbitcount 1 C:\input.pdf |
pdfprint.exe -raster2 -rasterbwtext -rasterbitcount 1 -xres 600 -yres 600 C:\input.pdf |
pdfprint.exe -raster2 -raster2center -printermargins C:\input.pdf |
pdfprint.exe -shell C:\input.pdf |
pdfprint.exe -shell2 C:\input.pdf |
pdfprint.exe -preproc C:\input.pdf |
pdfprint.exe -printermargins C:\input.pdf |
pdfprint.exe -nochgprinter -printer “docPrint” C:\input.pdf |
pdfprint.exe -mergeprintjobs -copies 3 C:\input.pdf |
pdfprint.exe -mergeprintjobs C:\*.pdf |
pdfprint.exe -mergeprintjobs C:\test*.pdf |
pdfprint.exe -mergeprintjobs C:\files.txt |
pdfprint.exe C:\files.txt |
pdfprint.exe -printtofile C:\out.pcl -printer “HP PCL Printer” C:\input.pdf |
pdfprint.exe -listprinter |
pdfprint.exe -listjobs -printer “docPrint” |
pdfprint.exe -listall |
pdfprint.exe -listbins -printer “docPrint” |
pdfprint.exe -chgbin 15 -printer “docPrint” C:\input.pdf |
pdfprint.exe -papersource “auto” -printer “docPrint” C:\input.pdf |
pdfprint.exe -papersource “Tray 1” -printer “docPrint” C:\input.pdf |
pdfprint.exe -papersource “Manual Feed” -printer “docPrint” C:\input.pdf |
pdfprint.exe -papersource “Media Tray” -printer “docPrint” C:\input.pdf |
pdfprint.exe -papersource “Tray 3” -settraytopclfile C:\test.pcl |
pdfprint.exe -getpagecount C:\input.pdf |
pdfprint.exe -jobusername TestUser C:\input.pdf |
pdfprint.exe -savedevmode C:\file.dat -printer “VeryPDF PCL Writer” |
pdfprint.exe -loaddevmode C:\file.dat -printer “VeryPDF PCL Writer” C:\input.pdf |
pdfprint.exe -jobdocname “test.doc” -jobusername “MyName” C:\input.pdf |
pdfprint.exe -useownerservice -jobdocname “test.doc” -jobusername “MyName” C:\input.pdf |
pdfprint.exe -winfont -winfont2 C:\input.pdf |
pdfprint.exe -debug -shell2 -shelltime 1000 -nochgprinter C:\input.pdf |
pdfprint.exe -debug -logtofile D:\debug.log C:\input.pdf |
pdfprint.exe http://online.verypdf.com/examples/pdfeditor.pdf |
Watermark options during printing: |
pdfprint.exe -wtext “Watermark” C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wtype 1 C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wf “Arial” C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wh 200 C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wb -wi -wu -ws C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wo 80 C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wo 80 -wa 75 C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wc “FF0000” C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wc “00FF00” C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wc “0000FF” C:\input.pdf |
pdfprint.exe -wtext “Watermark” -wx 100 -wy 100 C:\input.pdf |
Print WMF and EMF files with vector information: |
pdfprint.exe C:\input.wmf |
pdfprint.exe C:\input.emf |
Print Raster Image formats: |
pdfprint.exe C:\input.bmp |
pdfprint.exe C:\input.jpg |
pdfprint.exe C:\input.tif |
pdfprint.exe C:\input.gif |
pdfprint.exe C:\input.png |
pdfprint.exe C:\input.pcx |
pdfprint.exe C:\input.tga |
pdfprint.exe C:\input.jp2 |
pdfprint.exe C:\input.j2k |
pdfprint.exe C:\input.pnm |
Print multipage TIFF file format: |
pdfprint.exe C:\multipage.tif |
Print MS Office, TXT, HTML files: |
pdfprint.exe C:\test.odt |
pdfprint.exe C:\test.ott |
pdfprint.exe C:\test.doc |
pdfprint.exe C:\test.docx |
pdfprint.exe C:\test.ppt |
pdfprint.exe C:\test.pptx |
pdfprint.exe C:\test.pps |
pdfprint.exe C:\test.ppsx |
pdfprint.exe C:\test.xls |
pdfprint.exe C:\test.xlsx |
pdfprint.exe C:\test.rtf |
pdfprint.exe C:\test.txt |
pdfprint.exe C:\test.html |
pdfprint.exe C:\test.mhtml |
pdfprint.exe C:\test.xml |
You can download the source setup files & NAV sample object from following link (ask for password)
https://1drv.ms/u/s!An8nhANnLJmtiU19GK_ASfdxxxQM
https://1drv.ms/u/s!An8nhANnLJmtiU19GK_ASfdxxxQM
Thank you for reading.
Keep Sharing...Keep Growing...
No comments:
Post a Comment