Restringir cópias impressas em um PDF

7

Temos um caso de uso muito específico para um aplicativo que estamos desenvolvendo, no qual um usuário receberá um documento em PDF, que poderá ser impresso. No entanto, precisamos restringir o PDF para que ele possa ser impresso apenas uma vez. Alguém sabe se há uma maneira de restringir o número de vezes que um PDF pode ser impresso.

Estou ciente de que a especificação do PDF tem muitos recursos de segurança, mas não encontrei referências a algo assim antes.

    
por pauldunlop 07.09.2009 / 17:52

12 respostas

6

A Adobe usa o Adobe Content Server para proteger eBooks e PDFs junto com Adobe Digital Editions (seu e-book gratuito e leitor de PDF) no lado do cliente. Isso permite a distribuição de PDFs com opções de segurança mais flexíveis do que o habitual PDF autônomo permitirá. Por exemplo, os documentos podem ser limitados no tempo ou permitir que apenas um determinado número de páginas seja impresso.

Esta pode muito bem ser uma solução para o seu problema, já que não tenho idéia do preço da Adobe para este produto ou se é prático para um pequeno número de documentos. É usado por pessoas como a British Library (até recentemente, de qualquer maneira) para empréstimos inter-bibliotecas eletrônicas que expiram após 2 semanas e só permitem que o artigo seja impresso uma vez.

    
por 07.09.2009 / 22:08
5

Eu diria que isso não é apenas impossível tecnicamente falando, mas também impraticável.

O que impede o usuário de fotocopiar o documento logo após imprimi-lo?

O que é que você está tentando realizar com isso, além de reunir algumas sugestões novas?

    
por 07.09.2009 / 18:32
4

Mesmo que você possa fazer isso, não é possível impedir que o usuário faça capturas de tela e, em seguida, imprima uma imagem ou algo parecido. Se o usuário pode ver os dados, você não pode impedi-lo de fazer uma cópia, então meu conselho é "nem tente". Faça um aviso perceptível de que o pdf deve ser impresso apenas uma vez e deixá-lo assim, porque se o usuário quiser imprimi-lo duas vezes, ele encontrará o caminho.

    
por 07.09.2009 / 18:01
3

Se você puder imprimir uma vez, poderá imprimir um número infinito de vezes.

Considere uma impressora de rede: os dados brutos a serem impressos devem ser enviados para um dispositivo remoto, que seu programa não teria como restringir, mesmo que de alguma forma assumisse a propriedade da máquina inteira do usuário (o que já seria considerado extremamente ofensivo, veja o escândalo de rootkit da Sony para o tipo de reação que se espera.

Como você poderia dizer que o dispositivo com o qual o usuário está falando é um HP LaserJet real, em vez de algo que finge ser um (ou, ainda mais simples, finge ser um spooler remoto), mas que salva o PCL / raw PS / tudo em vez de imprimi-lo? Uma vez que os dados são tudo o que é necessário para imprimir o trabalho, seria necessário reproduzi-lo várias vezes para uma impressora real para obter várias cópias. Você também pode usar um sniffer (como @dlamblin mencionado) e poupar o trabalho de emular a impressora.

Você poderia pensar em proibir impressoras de rede, mas ter apenas impressoras de rede em um escritório (não impressoras simples conectadas a um PC de uso geral, mas grandes impressoras conectadas diretamente ao comutador Ethernet) não é tão incomum. Por causa disso, vários de seus usuários (quantos dependeriam muito do público alvo) não seriam capazes de imprimir, o que não é bom PR.

E até o USB não está imune (embora seja necessário mais conhecimento técnico e talvez hardware especial); existem sniffers USB. E mesmo sem eles, um "driver de gadget" de impressora USB em um dispositivo Linux embarcado poderia ser suficiente (observe, no entanto, que até este momento não conheço nenhum driver de dispositivo de impressora USB para Linux).

Isso tudo está assumindo que o programa conseguiu, de alguma forma, obter o controle completo da máquina do usuário. Como as várias tentativas fracassadas de proteção contra cópia mostram, é mais fácil falar do que fazer. Como você pode saber que o driver da impressora que você está usando é apenas uma versão incomum do driver da impressora para uma marca popular de impressoras, e não uma versão hackeada para salvar o fluxo no disco? Como você pode saber que não há nenhum driver em algum lugar na pilha de impressão registrando todas as transações USB no disco? E como você pode diferenciar um usuário normal de máquinas virtuais de alguém que as usa para interceptar a comunicação com os dispositivos USB?

Tudo isso dito, você não precisa ir tão longe. A maioria das pessoas, mesmo que tenham o conhecimento técnico, não tentará contornar nem mesmo as tentativas mais fracas de impedir a impressão duplicada que você faz. Na verdade, eu não ficaria surpreso se a maioria dos usuários não imprimisse voluntariamente mais de uma vez, se fosse informada de que o arquivo deveria ser impresso apenas uma vez (mas haveria mais casos de pessoas imprimindo acidentalmente duas vezes). Portanto, crie um programa simples que imprima uma vez e depois apague os dados originais. Avise o usuário que os dados serão apagados após serem impressos uma vez. E aceite que algumas pessoas imprimam mais vezes do que o permitido e que algumas pessoas imprimam menos vezes do que o permitido (problemas de energia, impressoras defeituosas, sistemas mal configurados ou o temido LETRA DE CARREGAMENTO DO PC pode fazer com que a impressão falhe). Esteja preparado para isso.

Para as pessoas que imprimem mais vezes do que o permitido, basta aceitar as perdas, da mesma forma que uma loja física tem que aceitar que uma fração de seu estoque será acidentalmente danificada ou perdida de alguma forma. Tem alguma maneira de encontrar os maiores abusadores e lidar com eles (o sistema legal parece ser uma escolha popular).

Para pessoas que imprimem menos vezes do que o permitido, algo como suporte por telefone, onde o usuário pode solicitar uma nova cópia, seria uma opção (funciona para a Microsoft, certo?). Claro, algumas pessoas vão abusar disso, mas veja o parágrafo anterior.

    
por 12.09.2009 / 03:18
2

Eu sei que muitos tíquetes de eventos exibidos como PDF não são muito preocupantes com isso. Em vez disso, eles afirmam muito strongmente que o local estará escaneando os códigos de barras, e que apenas a primeira cópia de um determinado ingresso será permitida através da porta. Eles também têm a tendência de imprimir o nome do comprador no bilhete, tornando possível solicitar identificação também na porta.

Fundamentalmente, não acho que seja possível fazer um arquivo PDF de impressão única. E mesmo se fosse, eu suspeitaria que o custo das relações com o cliente de problemas de impressão e boca-a-boca ruim custaria mais do que vale a pena.

O TurboTax (uma ferramenta de preparação de imposto de renda federal e estadual dos EUA para os leitores não americanos) tentou algo parecido há alguns anos. Eles decidiram que só deveria ser possível instalar o programa uma vez com a impressão ativada, que era imposta por um código de ativação do servidor. Acontece que um número significativo de clientes tinha o hábito de pagar impostos em casa, mas instalava uma cópia temporária em seu escritório para aproveitar as impressoras de escritório disponíveis. Houve também uma reclamação das pessoas envolvidas sobre a possibilidade de reinstalar o software daquele ano mais tarde para corrigir o retorno se uma auditoria revelasse um problema.

As reclamações eram altas o suficiente para que nenhuma versão posterior tivesse essas restrições.

    
por 12.09.2009 / 04:46
2

A idéia de que um programa de software pode controlar que um usuário só imprime algo uma vez é uma ideia falha. Pense no congestionamento de papel - só porque algum aplicativo ou sistema operacional enviou com êxito um trabalho de impressão para a impressora não garante que o usuário receba uma cópia. Então, o que o usuário deve fazer então?

Ou a impressora está sendo configurada para imprimir X cópias de cada folha? E quanto a scanners ou fotocopiadoras?

E, finalmente, embora obviamente não haja benefícios do ponto de vista do usuário para esse anti-recurso , Eu não tenho absolutamente nenhuma idéia de qual deve ser o benefício para sua empresa. Você poderia, por favor, explicar o que exatamente o benefício de fazer isso?

    
por 18.03.2010 / 15:12
1

Não consigo encontrar nenhum recurso do Adobe PDF que conte o número de vezes que o documento é impresso. Eu só acho desativando toda a impressão. Isso faz sentido quando considerado o seguinte:

Se eu fosse o pirata do PDF que você teme, e você criou este documento de impressão uma vez, eu simplesmente enviaria para a minha impressora uma vez.

Em que:

Em um Mac, eu escolheria visualizar a impressão antes de clicar em "imprimir" e salvar a visualização em PDF que ela gera.

Em um PC, peço ao driver da impressora que também envie o trabalho para um arquivo.

Ou eu escolheria um driver de impressão para arquivo, muitos dos quais são gratuitos.

E se nenhuma dessas opções acima estivesse disponível para mim, eu poderia pedir ao meu driver de impressora por muitos modelos para também colocar o PostScript no disco primeiro ou, em casos extremos, farejar o tráfego de rede para a impressora fora da rede. Geralmente não é autenticado ou criptografado. O PostScript pode até ser destilado para PDF, se necessário.

Editar:
Mesmo com o applet de impressão em java que a Pitney-Bowes usa para imprimir postagem, o que parece desativar a opção de visualização, salvei o trabalho de impressão resultante para reimprimir. Mas eu não uso mais essa opção porque simplesmente não consigo imprimir corretamente em qualquer tipo de tamanho de papel, é sempre imprimir o código de barras fora das margens da página, mesmo quando eu o jogo diretamente com a intenção de imprimir uma vez. .

    
por 07.09.2009 / 18:23
1

The scenario we have is related to voucher/coupon printing. Basically, the client needs to ensure a user only has one copy of the voucher. Having validation at redemption (in store) isn't an option, so it needs to be at the time of printing the voucher.

Você considerou personalizar as impressões, exigindo algum ID (e talvez alguma assinatura) ao usar a impressão em uma loja, e deixar para o contrato de venda que apenas uma única cópia deve ser usada? Então você precisaria de algum processamento final (em algum momento posterior), para registrar os vouchers que foram usados várias vezes, e (ameaçar) faturar o cliente por isso ... (Isso pode até ser uma coisa adicional, ao lado de tentar para limitar o número de impressões.)

Note que nem todo mundo tem uma impressora de qualidade. Algumas digitalizações ou fotocópias podem parecer melhores do que algumas impressões originais.

Além disso, como o @RBerteig já observou, alguns clientes podem nem ter uma impressora, ou podem estar sem tinta. Como eles imprimem em algum vizinho ou no trabalho quando sua solução precisa de software adicional, como (o horrível, na minha opinião) Adobe Digital Editions? Estendendo isso: como será o voucher eletrônico? Acho que você estará implementando alguma validação on-line no resgate da próxima versão, para aqueles mostrando algum código de barras no smartphone, em vez de um voucher de papel.

We're aware the whole concept has fundamental flaws, but we basically want to make it as hard as possible for average Joe to print off more than 1.
[..]
Problem is, a competitor has produced a number of solutions, through ActiveX controls, and dedicated apps you have to install to handle all this, we're just trying to find a more elegant solution.

Ok, está claro que você acabará implementando alguma solução que não será muito segura. Eu acho que você vai ter alguma declaração por escrito para o cliente sobre os riscos. Sugiro que, nessa declaração escrita, você também mostre ao cliente a facilidade com que a solução do concorrente pode ser usada para imprimir várias cópias.

    
por 12.09.2009 / 10:03
0

Nós fizemos coisas assim com marcas d'água. O PDF sempre tem uma marca d'água, exceto por um determinado "evento" que permitirá ao usuário imprimir (como pagamento em nossa situação). Então, renderizamos novamente o PDF sem a marca d'água.

Não é exatamente o que você procura, mas talvez a noção de marca d'água possa ser útil?

    
por 07.09.2009 / 18:07
0

Experimente este tutorial da Adobe:

You can prevent users from print a PDF form. You can specify whether the form can be printed, printed with minimal resolution, or printed with a high resolution output.

1.Select File > Form Properties.

2.Click the PDF Security tab.

3.In the Permissions area, select Use A Password To Restrict Printing And Editing Of The Document And Its Security Settings.

4.In the Printing Allowed list, select one of the following options:

•None

•Low Resolution (150 dpi)

•High Resolution

    
por 07.09.2009 / 18:12
0

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

Que tal distribuir o acesso a um site com um simples requisito de login que contenha o voucher? Imprima o comprovante da página da web.

Configure o site para que o usuário possa fazer login apenas uma vez.

Você pode configurar o site para que o comprovante NÃO apareça na página da Web, embora eu não saiba como fazer isso. Se você puder fazer isso, evita que o usuário faça o download e faça várias impressões.

Se algo der errado com o login, forneça uma maneira legítima, mas não muito fácil, de obter outro login.

É claro que você sempre pode enviar um comprovante físico para o destinatário.

Se você está preocupado com fotocópias, existem maneiras de evitar isso - veja as prescrições médicas que usam "papel seguro" para um exemplo.

    
por 07.09.2009 / 19:37
0

Eu não sou um técnico, mas talvez valha a pena conferir o site "Globe and Mail" (Canadá). Este é um jornal que cobra pelo número de cópias impressas - qualquer coisa entre uma e cem. Você pode adaptar o que quer que tenha feito ao seu próprio problema. A razão pela qual estou vendo este site é porque estou prestes a lançar um site e quero proteger meu conteúdo. Boa sorte

    
por 08.12.2011 / 08:22