permisos sobre los archivos generados por jasperreports

Hola

Los archivos pdf generados con jasper permiten seleccionar todo el texto y copiarlo.

Los pdf tienen algunas propiedades que pueden impedir eso y tan solo permitir imprimirlo.

Como se podrían configurarse esas propiedades en las salidas del sistema?

Emilio

Hola Emilio,

Quizás se pueda hacer con Jasper editando alguna propiedad del archivo .jrxml, te adjunto captura de donde esta.

Revisa la propiedad net.sf.jasperreports.export.pdf.permissions.allowed.

Te dejo también unos foros de referencia:
https://community.jaspersoft.com/questions/519807/pdf-security-how-prohibit-selectcopy-text
https://stackoverflow.com/questions/4615394/block-copy-pdf-document
https://stackoverflow.com/questions/56786900/how-to-disable-options-as-printing-in-generated-pdf-file
https://community.jaspersoft.com/blog/tip-removing-meta-data-exported-or-scheduled-or-e-mail-bursted-jasper-report-or-changing-report

saludos.
2


Screenshot from 2021-09-20 10-59-23.png

Screenshot from 2021-09-20 10-59-23.png

Hola Leonel

puse

	<property name="net.sf.jasperreports.export.pdf.permissions.denied" value="ALL"/>
	<property name="net.sf.jasperreports.export.pdf.permissions.allowed" value="PRINTING"/>
	<property name="net.sf.jasperreports.export.pdf.encrypted" value="true"/>
	<property name="net.sf.jasperreports.export.pdf.128.bit.key" value="true"/>
	<property name="net.sf.jasperreports.export.pdf.owner.password" value="guarani"/>
	<property name="net.sf.jasperreports.export.pdf.user.password" value="siu"/>

y no genera el pdf.
da el siguiente error

java_ThrowExceptionProxyFactory->getProxy Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 215 Parametros: 72 php.java.bridge.Request$PhpNull

1

java_Arg->getResult 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 388
Parametros:
1

java_Client->getWrappedResult 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 394
Parametros:
1

java_Client->getResult 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 594

java_Client->invokeMethod 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1731
Parametros:
71
exportReportToPdfFile
Instancia de java_InternalJava /siu/gestion/v3181/temp/jasper_6148b4f95484f.pdf

java_JavaProxy->__call 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1839
Parametros:
exportReportToPdfFile
Instancia de java_InternalJava /siu/gestion/v3181/temp/jasper_6148b4f95484f.pdf

java_AbstractJava->__call 

Archivo: /siu/gestion/v3181/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 2007
Parametros:
exportReportToPdfFile
Instancia de java_InternalJava /siu/gestion/v3181/temp/jasper_6148b4f95484f.pdf

Java->__call 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 302
Parametros:
exportReportToPdfFile
Instancia de java_InternalJava /siu/gestion/v3181/temp/jasper_6148b4f95484f.pdf

toba_vista_jasperreports->crear_pdf 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 281

toba_vista_jasperreports->generar_salida 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 331

toba_solicitud_web->servicio__vista_jasperreports 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 185
Parametros:
Instancia de ci_edi_imprimir_acta_examen_unca_cerrada

toba_solicitud_web->procesar_servicios 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 60

toba_solicitud_web->procesar 

Archivo: /siu/gestion/v3181/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96

toba_nucleo->acceso_web 

Archivo: /siu/gestion/v3181/www/aplicacion.php, lInea 40

el archivo pdf tiene 0 byte.

seguiré viendo.
Gracias!!!

Emilio

Hola Emilio,

Si probas así directamente:


<property name="net.sf.jasperreports.export.pdf.permissions.denied" value="COPY"/>

Te dejo este ejemplo donde le pone exporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED,true); (seria la propiedad net.sf.jasperreports.export.pdf.encrypted), y exporter.setParameter(JRPdfExporterParameter.PERMISSIONS, PdfWriter.AllowPrinting); (seria net.sf.jasperreports.export.pdf.permissions.allowed)

saludos.
2

No le gusta la encriptación
si pones

te falla y no genera el pdf.

el problema aparentemente es que toba usa “net.sf.jasperreports.engine.JasperExportManager” y deberia usar “JRPdfExporter”
que son los ejemplos que estamos viendo.
Seguiré buscando

https://community.jaspersoft.com/questions/535165/password-protected-pdf

Hola Emilio,

Es que hay dos formas, una usando código Java y otra modificando propiedades en el jrxml (esta ultima es la que estuvimos probando).

Te dejo otro ejemplo que dice “Solved”: https://coderedirect.com/questions/300159/how-to-disable-options-as-printing-in-generated-pdf-file

saludos.
2

Hola

No lo logramos.

Lo resolvimos con otra librería que ponía esas propiedades y ademas le adosa un certificado digital.

Para ello hubo que modificar toba_vista_jasperreports.

No encontramos una salida dentro de las “reglas de personalización”.

Gracias por tu tiempo.

Emilio

Hola Emilio,

Me alegro que lo pudieron solucionar!!!

Si podes detallar un poco mas sobre la solución seria genial, por si le sirve a otra universidad.

Fíjate que el archivo vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php esta dentro de vendor, dicho cambio lo vas a tener que volver a replicar en cada instalación que hagas.

saludos.
2