Silent print
Overview
you compose a document like sale order. When complete it, you want to print it to sign or keep evidence.
when you deploy idempiere on a intranet it's easy control from server which printer will use to print document.
for me, i deploy idempiere on cloud computer, so need a way to easy print. i know some option bellow
1. native option. when you click print button, a embed pdf file is opened. use have to click print button of pdfViewer,
after that click print button of chrome print dialog (at least three time with pending between actions)
2. use a java applet to direct control local printer
3. i remember have a guy do a cloud print plugin, but can't find it out now.
4. run script inside pdf to control print.
This guideline about option 4. after setup, user just click print button at sale order window, and document is silent print out.
I have this idea for long time ago, but at this time it don't work, because bellow reason:
+ chrome stop use adobe plug-in to display pdf file
+ native pdf viewer of chrome don't support javascript
just few days ago, i find out a great javascript library https://mozilla.github.io/pdf.js/getting_started/
it can decrease one click when compare with method 1. but when learn its print function, it recall my old idea with new keyword "silent print"
how it work
you can see how it work by view this movie silent print movie
from start to 30s i use method 1 to printing (have to click three times)
from 30 to end i use new way to printing (just one click)
how to implement
idea implement silent print:
1. change embed pdf by download pdf Changeset when click print button
2. programming to add javascript to out pdf Changeset
this change is on my ReportStart class, but idea is same and can apply to class of core
4. configuration at client machine to allow javascript on pdf control printer configuration client machine
5. allow user can switch between old and new method like on video 2Patch Changeset
6. give user a chance to choose other print by press shift key when click print button (or shift + alt + p)choose other print
limit
code relate to jasper report inside core is simple and out date. so hard to use a lot of good feature of jasper report like control background, encrypt, sign, compose template, ....
by limit of jasper report of idempiere, i have to hard code everywhere to implement this function.
i like to redesign jasper report plug-in, so welcome anyone interest at use jasper report like main report engine of idempiere sponsor to do it.
reference
my question about use certificate to privileged javascript inside thread i also push enough link relate silent print. please take look.