Debe estar familiarizado con los conceptos de seguridad de documentos, extensión de lectura y lenguaje de programación Java para que el lector amplíe los documentos PDF protegidos por políticas de seguridad de documentos.
Puede utilizar la seguridad de los documentos para restringir el acceso de documentos de PDF específicos únicamente a usuarios autorizados. También puede determinar cómo un destinatario puede utilizar un documento protegido. Por ejemplo, puede especificar si los destinatarios pueden imprimir, copiar o editar texto de un documento protegido por políticas de seguridad de documentos. Para obtener más información sobre la seguridad de los documentos, consulte acerca de la seguridad del documento.
Puede utilizar extensiones de lector para habilitar funciones interactivas en documentos de Adobe PDF mediante Acrobat Reader. Estas funciones interactivas normalmente están disponibles solo a través de Adobe Acrobat Professional y Standard. Para obtener más información sobre las funciones interactivas que puede habilitar la extensión de lectura, consulte Servicio DocAssurance de Adobe Experience Manager Forms .
Puede utilizar la biblioteca de protección portátil para aplicar políticas en el documento sin necesidad de que el documento viaje por la red. Sólo las credenciales de seguridad y los detalles de la política de protección viajan a través de la red. El documento real nunca sale del cliente y las políticas de protección se aplican localmente en el cliente.
Los documentos protegidos por políticas son documentos cifrados. No puede utilizar API estándar de extensión de lectura para aplicar, quitar y recuperar derechos de uso de documentos de PDF protegidos por políticas. Solo el servicio Reader Extensions de la biblioteca de protección portátil proporciona API para aplicar, quitar y recuperar derechos de uso de documentos PDF protegidos por políticas de seguridad de documentos.
El servicio de extensión de lectura agrega derechos de uso a un documento de PDF protegido por políticas, activando características que normalmente no están disponibles cuando se abre un documento de PDF con Adobe Acrobat Reader. También tiene API para eliminar y recuperar los derechos de uso de un documento protegido por políticas.
El servicio Reader Extensions admite totalmente documentos PDF basados en el PDF estándar 1.6 y posteriores. Aparte de Acrobat Reader, los usuarios de terceros no necesitan ningún software o complemento adicional para utilizar los documentos de PDF protegidos por políticas.
Puede realizar las siguientes tareas con el servicio Reader Extensions:
Puede usar la variable applyUsageRights
API de Java para aplicar derechos de uso a documentos de PDF protegidos por políticas. Los derechos de uso pertenecen a funciones que están disponibles de forma predeterminada en Acrobat pero no en Adobe Reader, como la capacidad de agregar comentarios a un formulario o de rellenar los campos del formulario y guardar el formulario. Los documentos del PDF que tienen derechos de uso aplicados se denominan documentos habilitados para derechos. Un usuario que abre un documento con derechos activados en Adobe Reader puede realizar operaciones que estén habilitadas para ese documento específico.
Sintaxis: InputStream applyUsageRights(InputStream inputFile, File certFile, String credentialPassword, UsageRights usageRights)
Parámetro |
Descripción |
inputFile |
Especifique InputStream que representa el documento del PDF al que se deben aplicar los derechos de uso. Puede utilizar el Rights Management de LiveCycle o los documentos protegidos por seguridad de documentos de AEM Forms. |
certFile |
Especifique el objeto File que representa un archivo .jks. El archivo .jks es un archivo de almacén de claves. Señala a un certificado que concede derechos de uso. |
credentialPassword |
Especifique la contraseña del almacén de claves. |
usageRights |
Especifica un objeto de tipo DerechosDeUso. El objeto usageRights representa derechos individuales que pueden aplicarse a un documento de PDF protegido por políticas. |
Puede usar la variable getDocumentUsageRights
API de Java para recuperar los derechos de uso de la extensión de lectura aplicados a un documento de PDF protegido por políticas. Al recuperar información sobre los derechos de uso, puede obtener información sobre la extensión del lector de funciones habilitada para el documento de PDF protegido por políticas.
Sintaxis: public GetUsageRightsResult getDocumentUsageRights(InputStream inDoc)
Parámetro |
Descripción |
inDoc |
Especifique InputStream que representa el documento del PDF desde el que se van a recuperar los derechos de uso. Puede utilizar el Rights Management de LiveCycle o los documentos protegidos por seguridad de documentos de AEM Forms. |
//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
//Create a RightsManagementClient object
RightsManagementClient2 rmClient2= new RightsManagementClient2(factory);
String inputFileName = "C:\\Sample\\protected.pdf"; //Input file can be RM protected or unprotected pdf file
File certFile = new File("C:\\Sample\\cert.jks"); //RE certificate file
String password = "password"; //password for RE certificate
UsageRights usageRights = getUsageRights(true,true,false,false,true,true,false,false,false,false,true);
//RE rights to be applied on the file : FormFillIn, FormDataImportExport, SubmitStandalone, OnlineForms, DynamicFormField, DynamicFormPages, BarcodeDecoding, DigitalSignatures, Comments, CommentsOnline, EmbeddedFiles
InputStream inputFileStream = new FileInputStream(inputFileName);
InputStream output = rmClient2.getRightsManagementReaderExtensionService().applyUsageRights(inputFileStream, certFile, credentialPassword, rights);
String outputFileName = "C:\\Sample\\ReAdded.pdf";
//Save the PDF document
File myFile = new File(outputFileName);
FileOutputStream outputStream = new FileOutputStream(myFile);
int read = 0;
byte[] bytes = new byte[1024];
while ((read = output.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
System.out.println("UsageRights applied successfully to the document. ”);
outputStream.close();
inputFileStream.close();
//Get Usage Rights for the output pdf document
InputStream fileWithRe = new FileInputStream(myFile);
GetUsageRightsResult usageRights = rmClient2.getRightsManagementReaderExtensionService().getDocumentUsageRights(fileWithRe);
UsageRights rights = usageRights.getRights();
String right1 = rights1.toString();
System.out.println("RE rights for the file are :\n"+right1);
fileWithRe.close();
Puede usar la variable removeUsageRights
API de Java para eliminar los derechos de uso de un documento protegido por políticas. La eliminación de los derechos de uso de un documento de PDF protegido por políticas es necesaria para realizar otras operaciones de AEM Forms en el documento. Por ejemplo, debe firmar digitalmente (o certificar) un documento PDF antes de establecer los derechos de uso. Por lo tanto, si desea realizar operaciones en un documento protegido por políticas, debe eliminar los derechos de uso del documento PDF, realizar las demás operaciones, como firmar digitalmente el documento y, a continuación, volver a aplicar los derechos de uso al documento.
Sintaxis: InputStream removeUsageRights(InputStream inputFile)
Parámetro |
Descripción |
inputFile |
Especifique InputStream que representa el documento del PDF desde el que se utiliza se eliminarán. Puede utilizar el Rights Management de LiveCycle o los documentos protegidos por seguridad de documentos de AEM Forms. |
//Create a ServiceClientFactory instance
ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
//Create a RightsManagementClient object
RightsManagementClient2 rmClient2= new RightsManagementClient2(factory);
String inputFileName = "C:\\Sample\\fileWithRe.pdf"; //Input file can be RM protected or unprotected pdf file
InputStream inputFileStream = new FileInputStream(inputFileName);
InputStream fileStream = rmClient2.getRightsManagementReaderExtensionService().removeUsageRights(inputFileStream);
String outputFileName = "C:\\Sample\\ReRemoveded.pdf";
//Save the PDF document
File myFile = new File(outputFileName);
FileOutputStream outputStream = new FileOutputStream(myFile);
int read = 0;
byte[] bytes = new byte[1024];
while ((read = fileStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
System.out.println("RE rights removed successfully from the document.”);
outputStream.close();
inputFileStream.close();