Restrinja las copias impresas en un PDF


7

Tenemos un caso de uso muy específico para una aplicación que estamos desarrollando, donde un usuario recibirá un documento PDF, que puede imprimir. Sin embargo, debemos poder restringir el PDF para que solo se pueda imprimir una vez. ¿Alguien sabe si hay una manera de restringir la cantidad de veces que se puede imprimir un PDF.

Sé que la especificación de PDF tiene muchas características de seguridad, pero no he encontrado referencias a algo como esto antes.


66
Folly
dlamblin

Cuéntame sobre ello ;-) He estado buscando la posibilidad de usar un applet de Java para manejar la impresión en lugar de un PDF, parece que puede haber algunas opciones en esta ruta, pero aún no parece fácil.
pauldunlop

8
Al final, es probable que ni usted ni su cliente estén contentos con cómo resulta esto. También podría ser sincero al respecto.
emgee

1
Convenido. Solo dile que no es posible.
alex

1
Debería leer y comprender las preguntas y respuestas en superuser.com/questions/14224/how-to-explain-drm-cannot-work ...
Chris W. Rea

Respuestas:


6

Adobe utiliza su Adobe Content Server para proteger libros electrónicos y archivos PDF junto con Adobe Digital Editions (su libro electrónico gratuito y lector de PDF) en el lado del cliente. Esto permite la distribución de archivos PDF con opciones de seguridad más flexibles que las que permite el PDF independiente habitual. Por ejemplo, los documentos pueden tener un límite de tiempo o permitir que solo se imprima un cierto número de páginas.

Esta puede ser una solución de martillo para su problema, ya que no tengo idea de los precios de Adobe para este producto o si es práctico para una pequeña cantidad de documentos. Es utilizado por personas de la Biblioteca Británica (hasta hace poco de todos modos) para préstamos electrónicos entre bibliotecas que vencen después de 2 semanas y solo permiten que el artículo se imprima una vez.


Muy interesante, no sabía que existía esta solución. Definitivamente tendré que comprobar eso. ¡Gracias!
pauldunlop

99
Y estoy seguro de que los usuarios finales están muy satisfechos cuando su impresora se queda sin tinta durante su única oportunidad de imprimir.
RBerteig

En el trabajo, una vez compré un libro que requería esto. Nunca lo pude mostrar en las ediciones digitales de Adobe. Es muy posible que eso se deba al sitio web que me vendió el libro, ya que ese sitio web de alguna manera necesita indicar Ediciones Digitales sobre los derechos digitales (uno necesita tener Ediciones Digitales instaladas antes de descargar el libro). O tal vez incluso algunas restricciones en la computadora de la compañía tenían la culpa. Aún así, ya no compro nada que requiera software adicional.
Arjan

5

Yo diría que esto no solo es técnicamente imposible, sino que tampoco es práctico.

¿Qué le impide al usuario fotocopiar el documento justo después de imprimirlo?

¿Qué es lo que estás tratando de lograr con esto, además de reunir algunas sugerencias novedosas?


2
El escenario que tenemos está relacionado con la impresión de cupones / cupones. Básicamente, el cliente debe asegurarse de que un usuario solo tenga una copia del comprobante. Tener la validación al momento del canje (en la tienda) no es una opción, por lo que debe ser al momento de imprimir el comprobante. Esencialmente, sin embargo, lo que dijo sobre fotocopias, etc., es completamente cierto. La idea es errónea, pero sólo estoy de agotar todas las vías posibles antes de que lo diga :-)
pauldunlop

3
@Chops: bueno, ¿no podrías ponerle algún tipo de número de serie? ¿Diferenciar entre ellos? ¿Y luego destruirlos a medida que se usan, después de verificar la serie para que uno con el mismo número no se pueda usar dos veces?
Rook

Podríamos, y de hecho, la implementación actual de los clientes hace esto, pero debido a que están proporcionando cupones para varios clientes, no tienen el cheque en serie en la compra en el minorista, por lo que en teoría un usuario podría imprimir muchos cupones y canjearlos, y el minorista no podría decirlo.
pauldunlop

4

Incluso si puede hacer esto, no puede evitar que el usuario haga una captura de pantalla y luego imprima una imagen o algo así. Si el usuario puede ver los datos, no puede evitar que haga una copia, por lo que mi consejo es "ni lo intentes". Haga una advertencia notable de que el pdf debe imprimirse solo una vez y déjelo así, porque si el usuario desea imprimirlo dos veces, encontrará el camino.


Desearía que esto fuera una opción. Esto es algo para un cliente, no hacemos los requisitos. Somos conscientes de que todo el concepto tiene fallas fundamentales, pero básicamente queremos que sea lo más difícil posible para el promedio de Joe imprimir más de 1.
pauldunlop

1
Si eres consultor, parte de tu trabajo es convencer a tu cliente de ideas tontas. ;-) En mi humilde opinión, si termina implementando cualquier tipo de restricción que tenga una solución fácil (por ejemplo, una fotocopiadora), solo terminará irritando a los usuarios finales hasta el posible punto de abandono del producto.
Chris W. Rea

No soy el consultor en este trabajo, solo el desarrollador sentado en una reunión inicial. Ya le he avisado a nuestro vendedor que parece una causa perdida. El problema es que un competidor ha producido una serie de soluciones, a través de controles ActiveX y aplicaciones dedicadas que debe instalar para manejar todo esto, solo estamos tratando de encontrar una solución más elegante. No vale la pena si me preguntas, pero gracias por tu consejo.
pauldunlop

3

Si puede imprimir una vez, puede imprimir un número infinito de veces.

Considere una impresora de red: los datos sin procesar que se imprimirán deben enviarse a un dispositivo integrado remoto, que su programa no tendría forma de restringir, incluso si de alguna manera asumiera la propiedad de la máquina completa del usuario (que ya se consideraría extremadamente ofensivo) ; vea el escándalo del rootkit de Sony para ver el tipo de reacción que se espera).

¿Cómo podría decirle al dispositivo que la máquina del usuario está hablando es un HP LaserJet real, en lugar de algo que pretende ser uno (o, incluso más simple, pretende ser una cola de impresión remota), pero que guarda el PCL / PS sin procesar / lo que sea en lugar de imprimirlo? Dado que esos datos son todo lo que se necesita para imprimir el trabajo, uno solo tendría que reproducirlo varias veces en una impresora real para obtener varias copias. También podría usar un sniffer (como se menciona en @dlamblin) y evitar la molestia de emular la impresora.

Podría pensar en prohibir las impresoras de red, pero tener solo impresoras de red en una oficina (no impresoras simples conectadas a una PC de uso general, sino impresoras grandes conectadas directamente al conmutador Ethernet) no es tan raro. Debido a eso, varios de sus usuarios (cuántos dependerían en gran medida del grupo demográfico objetivo) no podrían imprimir, lo que no es una buena PR.

E incluso el USB no es inmune (aunque necesitaría más conocimiento técnico y quizás hardware especial); existen rastreadores USB. E incluso sin ellos, un "controlador de dispositivo" de impresora usb en un dispositivo Linux incorporado podría ser suficiente (tenga en cuenta, sin embargo, que al momento de escribir esto no conozco ningún controlador de dispositivo de impresora usb para Linux).

Todo esto supone que el programa de alguna manera ha logrado obtener un control completo de la máquina del usuario. Como muestran los varios intentos fallidos de protección de copia, es más fácil decirlo que hacerlo. ¿Cómo puede saber que el controlador de impresora que está utilizando es solo una versión poco común del controlador de impresora para una marca popular de impresoras, y no una versión pirateada para guardar la transmisión en el disco? ¿Cómo puede saber que no hay un controlador en algún lugar de la pila de impresión que registre todas las transacciones USB en el disco? ¿Y cómo puede diferenciar a un usuario normal de máquinas virtuales de alguien que las usa para interceptar la comunicación con los dispositivos USB?


Dicho todo esto, no necesitas ir tan lejos. La mayoría de las personas, incluso si tienen los conocimientos técnicos, no intentarán evitar incluso los intentos más débiles para evitar la impresión duplicada que realice. De hecho, no me sorprendería que la mayoría de los usuarios no imprimieran voluntariamente más de una vez si se les dijera que el archivo debe imprimirse solo una vez (pero entonces habría más casos de personas que accidentalmente imprimen dos veces). Entonces, haga un programa simple que imprima una vez y luego borre los datos originales. Advertir al usuario que los datos se borrarán después de imprimirse una vez. Y acepte que algunas personas imprimirán más veces de lo que usted permitió, y que algunas personas imprimirán menos veces de lo que permitió (fallas de alimentación, impresoras defectuosas, sistemas mal configurados o la temida CARTA DE CARGA de PCtodos pueden hacer que la impresión falle). Prepárate para eso.

Para las personas que imprimen más veces de lo permitido, simplemente acepten las pérdidas, de la misma manera que una tienda física tiene que aceptar que una fracción de sus existencias se dañará accidentalmente o se perderá de alguna manera. Tener alguna forma de encontrar a los mayores abusadores y tratar con ellos (el sistema legal parece ser una opción popular).

Para las personas que imprimen menos veces de las permitidas, algo como soporte telefónico donde el usuario puede solicitar una nueva copia sería una opción (funciona para Microsoft, ¿verdad?). Por supuesto, algunas personas abusarán de esto, pero vea el párrafo anterior.


2

Sé que muchas entradas para eventos entregadas en formato PDF no se preocupan demasiado por esto. En cambio, afirman firmemente que el lugar escaneará los códigos de barras y que solo se permitirá la entrada de la primera copia de un boleto determinado. También tienden a imprimir el nombre del comprador en el boleto, lo que hace posible solicitar una identificación en la puerta también.

Fundamentalmente, no creo que sea posible hacer un archivo PDF de impresión única. E incluso si lo fuera, sospecharía que las relaciones con los clientes cuestan por problemas de impresión y el mal boca a boca costaría más de lo que vale.

TurboTax (una herramienta de preparación de impuestos estatales y federales para los lectores no estadounidenses) intentó algo similar hace un par de años. Decidieron que solo debe ser posible instalar el programa una vez con la impresión habilitada, que se impuso mediante un código de activación de su servidor. Resulta que un número significativo de sus clientes tenían la costumbre de hacer impuestos en casa, pero instalando una copia temporal en su oficina para aprovechar las impresoras de oficina disponibles. También hubo una fuerte queja de las personas preocupadas por la posibilidad de reinstalar el software de ese año más tarde para corregir la devolución si una auditoría revelaba un problema.

Las quejas fueron lo suficientemente fuertes como para que ninguna versión posterior haya tenido estas restricciones.


2

La idea de que un programa de software puede controlar que un usuario solo imprima algo una vez es una idea defectuosa. Piense en el atasco de papel: el hecho de que alguna aplicación o sistema operativo haya enviado con éxito un trabajo de impresión a la impresora no garantiza que el usuario obtenga una copia. Entonces, ¿qué debe hacer el usuario?

¿O qué tal si la impresora está configurada para imprimir X copias de cada hoja? ¿Qué pasa con los escáneres o fotocopiadoras?

Y finalmente, aunque obviamente no hay beneficios desde el punto de vista del usuario para tal antifunción , no tengo absolutamente ninguna idea de cuál debería ser el beneficio para su empresa. ¿Podrías explicarme por qué cuál es el beneficio de hacer tal cosa?


1

No puedo encontrar ninguna función de Adobe PDF que cuente la cantidad de veces que se imprime el documento. Solo encuentro deshabilitar toda la impresión. Esto tiene sentido cuando se toma con lo siguiente a la vista:

Si yo fuera el pirata de PDF que temes, y tú creaste este escurridizo PDF de una sola impresión, simplemente lo enviaría a mi impresora, una vez.

Después de lo cual:

En una Mac, elegiría obtener una vista previa de la impresión antes de hacer clic en "imprimir" y guardar la vista previa en PDF que genera.

En una PC, le pediría al controlador de la impresora que también coloque el trabajo en un archivo.

O en cualquiera de los dos elegiría un controlador de impresión a archivo, muchos de los cuales son gratuitos.

Y si ninguna de estas opciones anteriores estuviese disponible para mí, podría pedirle al controlador de mi impresora muchos modelos para también poner en cola el PostScript en el disco primero, o en casos graves, rastrear el tráfico de red a la impresora fuera de la red. Generalmente no está autenticado o encriptado. El PostScript podría incluso ser destilado a PDF si fuera necesario.

Editar:
incluso con el applet de impresión Java que Pitney-Bowes usa para imprimir el franqueo, lo que parece deshabilitar la opción de vista previa. He guardado el trabajo de impresión resultante para volver a imprimir. Pero ya no uso esta opción porque parece que simplemente no se puede imprimir correctamente en ningún tipo de tamaño de papel, siempre imprime el código de barras fuera de los márgenes de la página, incluso cuando lo juego directamente con la intención de imprimir una vez .


Sí, también pensé en esos PDF, problemas de archivo también. Por lo tanto, idealmente, se necesita algo que omita totalmente las instalaciones de impresión del sistema operativo incorporado. Que en OS X específicamente, no estoy seguro de que sea posible. ¡Divertido divertido!
pauldunlop

1

El escenario que tenemos está relacionado con la impresión de cupones / cupones. Básicamente, el cliente debe asegurarse de que un usuario solo tenga una copia del comprobante. Tener la validación al momento del canje (en la tienda) no es una opción, por lo que debe ser al momento de imprimir el comprobante.

¿Consideró personalizar las impresiones, requiriendo alguna identificación (y tal vez alguna firma) al usar la impresión en una tienda, y dejó en manos del acuerdo de venta que solo se utilizará una copia? Luego, necesitaría un procesamiento final (en algún momento posterior), para registrar qué comprobantes se han usado varias veces y (amenazar con) facturar al cliente por eso ... (Esto podría incluso ser algo adicional, además de intentar para limitar el número de impresiones)

Tenga en cuenta que no todos tienen una impresora de calidad. Algunos escaneos o fotocopias pueden verse mejor que algunas impresiones originales.

Además, como ya señaló @RBerteig, es posible que algunos clientes ni siquiera tengan una impresora o se hayan quedado sin tinta. ¿Cómo imprimirían en algún vecino o en el trabajo cuando su solución necesita software adicional, como (lo horrible, en mi opinión) Adobe Digital Editions? Ampliando eso: ¿cómo será el bono electrónico? Creo que implementará alguna validación en línea al momento del canje en la próxima versión, para aquellos que le muestren un código de barras en su teléfono inteligente en lugar de un cupón de papel.

Somos conscientes de que todo el concepto tiene fallas fundamentales, pero básicamente queremos que sea lo más difícil posible para Joe promedio imprimir más de 1.
[..] El
problema es que un competidor ha producido una serie de soluciones, a través de ActiveX controles y aplicaciones dedicadas que debe instalar para manejar todo esto, solo estamos tratando de encontrar una solución más elegante.

Ok, está claro que eventualmente implementará alguna solución que no será muy segura. Supongo que tendrá una declaración escrita para el cliente sobre los riesgos. Sugiero que en esa declaración escrita también muestre al cliente la facilidad con que la solución de la competencia se puede utilizar para imprimir varias copias.


0

Hemos hecho cosas como esta con marcas de agua. El PDF siempre tiene una marca de agua a excepción de algún "evento" dado que permitirá al usuario imprimir (como el pago en nuestra situación). Luego volvemos a renderizar el PDF sin la marca de agua.

No es exactamente lo que buscas, pero ¿quizás la noción de marca de agua podría ser útil?


Idea interesante, no había considerado algo como la marca de agua. Sin embargo, el problema será que en esa primera impresión, sin marca de agua, no podremos evitar que impriman 10 copias, etc. ¿Por lo tanto, me preguntaba si la especificación PDF contenía algo como esto?
pauldunlop

No que yo supiese. Alex tiene un buen enlace, pero no creo que maneje la cantidad de copias, ese es el trabajo del controlador de la impresora local, ¿verdad?
Chris_K

Sí lo es. Básicamente, necesitamos pasar por alto el cuadro de diálogo de la impresora local y hacer uso de otra cosa en la que tengamos control sobre las opciones que el usuario puede ver. Sospecho firmemente que esto no será posible, pero lo estoy investigando de todos modos solo para ser exhaustivo.
pauldunlop

Hmm, así que siempre renderizas los PDF como bloqueados para imprimir. Luego, la única forma en que pueden imprimirse es enviarse / pasarse a otra aplicación suya que pueda alternar el bloqueo y realizar un seguimiento de los nombres de archivos y si se han impreso antes. ¡Ay!
Chris_K

Suena demasiado complicado para trabajar en otra cosa que no sea una versión específica de Windows / Acrobat. Me enviaron un PDF (lo compré) que no se pudo imprimir nunca. Desafortunadamente, no sabía cuándo lo compré, y quería imprimir una página de código para pasar a un escritorio. El vendedor no me permitió eliminar la restricción, pero encontré numerosos lugares en línea que me permitieron eliminar el bloqueo. Si implementa esto, es más probable que el cliente pierda negocios que mantener negocios en este caso.
Joshua Nurczyk

0

Prueba este tutorial de Adobe:

Puede evitar que los usuarios impriman un formulario PDF. Puede especificar si el formulario puede imprimirse, imprimirse con una resolución mínima o imprimirse con una salida de alta resolución.

1. Seleccione Archivo> Propiedades del formulario.

2.Haga clic en la pestaña Seguridad de PDF.

3.En el área Permisos, seleccione Usar una contraseña para restringir la impresión y edición del documento y su configuración de seguridad.

4.En la lista Impresión permitida, seleccione una de las siguientes opciones:

•Ninguna

• Baja resolución (150 ppp)

•Alta resolución


Enlace útil, pero no me permite restringir el número de copias impresas a solo una, por lo que puedo decir.
pauldunlop

1
Es no sólo posible imprimir una sola vez. E incluso si lo fuera, piénsalo; Doy 3 copias del documento (o solo doy uno, pero luego alguien hace más). Cada documento sería imprimible una vez. El pdf no contiene información sobre cuántas veces se imprimió. Y otra cosa; Si uso CutePDF (o similar) e imprimo el documento inicial como PDF, entonces puedo evitar todas las restricciones porque el nuevo documento no contiene los metadatos iniciales.
alex

1
Confíe en mí, elija otra forma de impresión, que no incluya archivos PDF, o simplemente haga que el cliente baje el límite de impresión. No es técnicamente posible. Siempre hay una forma de evitarlo, especialmente si hay una laguna como ser imprimible una vez.
alex

0

"Hmm", (como dijo Deep Thought), "Tricky"

¿Qué tal distribuir el acceso a un sitio web con un simple requisito de inicio de sesión que contiene el comprobante? Imprima el comprobante desde la página web.

Configure el sitio para que el usuario pueda iniciar sesión solo una vez.

Es posible que pueda configurar el sitio para que el cupón NO se muestre en la página web, aunque no sé cómo hacerlo. Si puede hacer esto, evita que el usuario descargue y realice múltiples impresiones.

Si algo sale mal con el inicio de sesión, proporcione una forma legítima, pero no demasiado fácil, de obtener otro inicio de sesión.

Por supuesto, siempre puede enviar un comprobante físico al destinatario.

Si le preocupan las fotocopias, hay maneras de evitarlo: consulte las recetas médicas que utilizan "papel seguro" como ejemplo.


Cualquier tipo de papel lo suficientemente delgado servirá ... por ejemplo, el papel rojo que los ingenieros utilizaron es una buena opción para esto.
Rook

La mayoría de los mecanismos anticopia utilizan un patrón / ráster de alta resolución difícil de ver que muestra interferencia cuando se escanea con una fotocopiadora. Para los cupones impresos en el hogar, supongo que dicho patrón puede producir resultados inesperados, debido a la calidad de las impresoras, que podrían (¿o no?) No podrán imprimir con éxito esos patrones. No sería demasiado agradable si el original se imprimiera con el patrón visible ... Y @ldigas: en lugar de enviar hojas de papel vacías a la dirección del cliente, supongo que también se podría enviar el comprobante. Problema resuelto. ;-)
Arjan

0

No soy un experto en tecnología, pero podría valer la pena visitar el sitio web "Globe and Mail" (Canadá). Este es un periódico que cobra por el número de copias impresas, de uno a cien. Es posible que pueda adaptar lo que hayan hecho a su propio problema. La razón por la que estoy viendo este sitio es porque estoy a punto de lanzar un sitio web y quiero proteger mi contenido. Buena suerte


1
a menos que de alguna manera abren su solución DRM, es probable que esto no sea de mucha utilidad ... y DRM de fuente abierta, es un poco improbable
Journeyman Geek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.