Posso usar o ImageMagick para remover a senha de um PDF?

5

Se eu tenho um PDF e tenho sua senha, posso simplesmente enviá-lo para uma impressora PDF para obter um novo PDF com o mesmo conteúdo e sem senha. O processo não é exatamente indolor (a impressora PDF incorporada do Ubuntu, por exemplo, não parece muito interessada em honrar minhas configurações de orientação da página; o PDFCreator para Windows apenas me olhou engraçado e imprimiu uma mensagem de erro etc.)

Gostaria de tornar esse processo um pouco menos doloroso e imagino que o ImageMagick possa vir em minha ajuda. Contudo...

convert foo.pdf -authenticate baz bar.pdf

... não me dá alegria.

   **** This file requires a password for access.
   **** The file was produced by: 
   **** >>>> �Sh�Ў,bd�  a���߰�
                                �u�|!
                                      ���� <<<<
Error: /invalidfileaccess in pdf_process_Encrypt

Agora ... acho que, se houver pdf_process_Encrypt, é provável que também haja suporte para uma pdf_process_Decryptoperação, certo?

Como posso fazer isso então?

badp
fonte
1
Não seria este ser muito mais fácil?
Flimzy
@Flimzy Nenhuma dessas opções me agrada, para ser sincero ... São todos vários tons de desnecessariamente obscuros.
Badp
1
Heh ... E a evasão de senhas já não é obscura? A frase "ladrão honesto" vem à mente :)
Flimzy
@Flimzy uh? Eu já tenho a senha. Eu não precisava decifrá-lo ou algo assim. Não há absolutamente nenhum "roubo" envolvido aqui.
Badp
Não estou te acusando de ser um ladrão. Apenas acho engraçado ser exigente sobre como remover uma senha (seja para fins honestos ou não). De qualquer forma, não tenho conhecimento suficiente para responder sua pergunta diretamente. Boa sorte.
Flimzy

Respostas:

4

O pdftk pode ajudar:

pdftk secured.pdf input_pw foopass output unsecured.pdf

No Windows, o A-PDF Restrictions Remover também é bom, apesar de payware.

gravidade
fonte
Obrigado por sua resposta, mas provavelmente pertence a essa outra pergunta e não a esta. Embora eu tenha a crescente suspeita de que o comando na minha pergunta funcione bem, é apenas o esquema de criptografia que a maioria das bibliotecas PDF realmente não suporta. Me cutuque se você mover sua resposta para lá; Vou bounty-lhe 100 para o problema :)
badp
@badp Esta resposta realmente deve ser uma nota de rodapé para as outras respostas, mas as outras respostas precisam observar que estão rasterizando todo o PDF, não apenas eliminando a autenticação.
Caleb
3

Isso pode ser feito de maneira muito simples usando o ImageMagick, embora eu o tenha encontrado apenas por tentativa e erro. O comando que eu uso para remover restrições do PD é:

mogrify c:\workingdirectory\password_protected.pdf

Basicamente, ele fará com que o ImageMagick recrie o PDF exatamente como é, mas como o ImageMagick não pode adicionar restrições, o resultado é o mesmo PDF sem restrições. Deixe-me saber se você tiver algum problema e posso enviar um exemplo do script que eu uso para ele.

Levi
fonte
Observe que isso também removerá alguns outros recursos de PDF e, na maioria dos casos, rasterizará o arquivo inteiro. Sei que esta pergunta queria uma resposta usando o ImageMagick, mas seria bom incluir um aviso sobre o enorme efeito colateral que isso produz e sugerir ferramentas como pdftk, pois nesta resposta que realmente entende o Postscript e grava um arquivo semelhante ao que ele veio (incluindo elementos de texto e vetor como texto e vetores em vez de pixels).
Caleb
0

Como Levi respondeu, você pode usar o ImageMagick's mogrify. No entanto, para expandir o que descobri que o mogrify realmente funciona com um arquivo protegido por senha, pode ser necessário especificar a senha como:

mogrify -authenticate yourpassword c:\workingdirectory\password_protected.pdf

Aviso! isso substituirá o arquivo no local

Além disso, a qualidade do pdf pode ser deteriorada por isso, porque acredito que a configuração de densidade padrão é 72dpi. Portanto, para manter a qualidade, tente usar 300 dpi (ou o que você preferir):

mogrify -authenticate yourpassword -density 300 c:\workingdirectory\password_protected.pdf

Do utilizador
fonte
Observe que, mesmo com a configuração de densidade, isso não mantém a qualidade do PDF, pois está rasterizando o arquivo inteiro. Sei que esta pergunta queria uma resposta usando o ImageMagick, mas seria bom incluir um aviso sobre o enorme efeito colateral que isso produz e sugerir ferramentas como pdftk, pois nesta resposta que realmente entende o Postscript e grava um arquivo semelhante ao que ele veio (incluindo elementos de texto e vetor como texto e vetores em vez de pixels).
Caleb