encryption - pagina - itext pdfptable
Problemas al configurar derechos(SetEncryption) en pdf (1)
tenemos problemas para usar el producto. Parece que algunas funciones en iText 5.4.3 no funcionan bien? Por favor, ¿alguien puede darnos una pista de cómo resolver eso?
Modificamos src.pdf a dest.pdf de la siguiente manera:
Function CreateFlattedPdf(ByRef originalPdf As Byte()) As Byte()
Dim retValue As Byte() = Nothing
Dim originalPdfReader As PdfReader = New PdfReader(originalPdf)
Dim pdfKopie As MemoryStream = New MemoryStream()
Dim pdfKopieStamper As PdfStamper = New PdfStamper(originalPdfReader, pdfKopie)
pdfKopieStamper.SetEncryption(False, userPassword, ownerPassword, _
PdfWriter.ALLOW_ASSEMBLY _
Or PdfWriter.ALLOW_COPY _
Or PdfWriter.ALLOW_DEGRADED_PRINTING _
Or PdfWriter.ALLOW_FILL_IN _
Or PdfWriter.ALLOW_MODIFY_ANNOTATIONS _
Or PdfWriter.ALLOW_MODIFY_CONTENTS _
Or PdfWriter.ALLOW_PRINTING _
Or PdfWriter.ALLOW_SCREENREADERS _
)
'' Entferne die Signaturinformationen aus dem original Pdf-Dokument
pdfKopieStamper.FormFlattening = True
pdfKopieStamper.Close()
'' Schreibe den Inhalt der geflatteten Kopie in die Antwort
retValue = pdfKopie.ToArray()
'' Schließe die Bearbeitung des Dokumentes ab
pdfKopie.Close()
originalPdfReader.Close()
Return retValue
End Function
Además, ponemos todos los derechos de texto posibles. Como resultado, obtenemos un PDF en el que no se permite la extracción de páginas (extracción de páginas) ni la distribución de documentos (compilación de documentos).
Mis preguntas son:
- ¿Es esto una mala conducta de iText? ¿O puede cambiar esta configuración con iText en general? Si es así, ¿cómo (ejemplo de código)?
- ¿Puede uno establecer estos derechos sin ninguna contraseña también? Hasta el momento solo hemos visto funciones para los derechos de configuración, siempre junto con la contraseña de los usuarios y los propietarios.
¡Gracias por tu ayuda con anticipación!
Ingo
Las observaciones
La pestaña de permisos, tal como la ve el OP, muestra algunos permisos que faltan:
Sin embargo, al inspeccionar los permisos del archivo de resultados del OP con Adobe Acrobat, hay un resultado diferente:
Simplemente aplanando el archivo fuente del OP (¡sin cifrarlo en absoluto!) Se obtiene este archivo para el cual Adobe Acrobat incluso muestra estos permisos:
La explicación
Este es un comportamiento de Adobe Reader , el visor de PDF más utilizado por el OP: la pestaña de permisos que ve el OP no solo representa lo que ha sido o no prohibido durante el cifrado sino también las restricciones del visor de PDF.
Parece que existe la idea errónea del OP de que al usar encriptación y establecer bits de permiso, uno puede agregar capacidades en comparación con los archivos no encriptados. En realidad, es al revés: el cifrado le permite eliminar permisos en comparación con lo que está permitido para un documento no cifrado. Al no usar ciertos permisos ALLOW_ *, usted retira los permisos . Obtiene la cantidad máxima de permisos simplemente sin cifrar el documento.
Además de los permisos del documento no cifrado, un programa de visualización de PDF específico puede requerir derechos de uso adicionales que sean específicos del visor . Dichos visualizadores de PDF (principalmente Acrobat Reader) generalmente son bastante baratos o gratuitos, pero no ofrecen la funcionalidad completa a menos que el documento en cuestión tenga los derechos de uso apropiados.
Los derechos de uso se pueden agregar mediante firmas de derechos de uso . Para aplicar dichas firmas de derechos de uso, generalmente necesita software o servicios proporcionados por el fabricante del visor de PDF en cuestión.
Para agregar derechos de uso para Adobe Reader, por ejemplo, puede usar Adobe Acrobat o ciertos servicios de Adobe Lifecycle.
Así,
Las respuestas
Como resultado, obtenemos un PDF donde no se permite la extracción de la página (extracción de página) y la disposición del documento (compilación del documento)
No. Como se puede ver arriba, su dest.pdf solo impide la extracción de la página, y tan pronto como deja de encriptar, incluso eso está permitido.
1 ¿Es esta una mala conducta de iText? O ¿se puede cambiar esta configuración con iText en general? Si es así, ¿cómo (ejemplo de código)?
No es una mala conducta de iText , es un comportamiento de Adobe Reader . Adobe Reader limita sus funciones en general y solo elimina las limitaciones de los documentos con derechos de uso. Dichos derechos de uso solo pueden ser aplicados por el software de Adobe.
2 ¿Puede uno establecer estos derechos sin ninguna contraseña también? Hasta el momento solo hemos visto funciones para los derechos de configuración, siempre junto con la contraseña de los usuarios y los propietarios.
Usar el cifrado en realidad es contraproducente, ya que solo se puede usar para eliminar permisos, no para agregarlos .
Recursos
Información adicional sobre el tema tomado de la publicación paralela en la lista de correo itext-questions :