Friday, January 21, 2011

Create Encrypted PDF Report from oracle reports


some customers nowadays require to generate PDF reports from oracle that prevent the users from copying its contents or printing this document by the user , so this challenge of course need simple third party that encypt the pdf , but how to implement this soluiton into your application ?

- at first prepare this third party that is $27 ( very cheap ) and monitor one directory for example ( c:\temp) on the application server and make the target directory as any directory inside the apache\htdocs inside the application server , and make other configuration ( password require to open the document yes or no , allow printing yes or no , allow copying contents yes or no , ....)
- after that customize your calling of reports to handle the process , how ?
- before running the report check if the report is encrypted or not , if it is encrypted so make the report file destination to be on the monitored directory ,
after that generate random file name using random package.
- check if the job process is finished , if it is finished so ,create timer of 3 o4 4 seconds ( to allow the third party to finish process )
- after that use web.show_document to show the file (random name) from the target directory

--- note that if you use more than one application server you have to run the third party on each application server , and consider which report server is running to show the document from the right pache\htdocs directory