2012-01-05 18 views
7

Ho bisogno di elaborare un gran numero di file pdf protetti e modificarli utilizzando un programma java, ma non ho le password per questi file. C'è un modo per sbloccare questi file con un batch?sblocca i file pdf protetti

Vorrei un comando di Windows come strumento o una API open source java. Qual è la soluzione migliore?

+3

La soluzione migliore è richiedere il supporto da parte della persona proprietaria del contenuto del file, che probabilmente sarebbe la persona che le ha protette con password. – mah

+0

Fintanto che i PDF hanno solo una password del proprietario e non una password dell'utente (è ancora possibile visualizzarli), non c'è nulla di crittografato nei file. Le limitazioni sono imposte solo dalle applicazioni di visualizzazione e il PDF non è affatto protetto. Puoi semplicemente ignorare la protezione se hai la tua app di editing. – Alasdair

risposta

16

questi file PDF che richiedono l'apertura di password o la protezione consistono in restrizioni su copia, stampa, modifica, estrazione testo e così via?

se questo è il vostro caso, si può provare con

QPDF

utilizzo:

qpdf --decrypt file.pdf unlocked.pdf 

e può essere utilizzato in un batch operazione in massa, in questo modo

for f in *.pdf ; do qpdf --decrypt $f ${f%%.pdf}unlocked.pdf; done 
+0

I miei file PDF non richiedono password. Le mie restrizioni riguardano la copia, la stampa, la modifica, voglio una libreria java che faccia lo stesso lavoro di qpdf. – brianbro

+0

grazie. ho usato la tua solutiion. Perfetto – brianbro

+1

sì, questa è la migliore alternativa gratuita e Open Source a PDFUnlock! – hellboy

0

È anche possibile farlo utilizzando la libreria iText.

Ecco un esempio di codice:

 PdfReader.unethicalreading = true; 
     PdfReader reader = new PdfReader(inputFile); 
     PdfEncryptor.encrypt(reader, new FileOutputStream(outputFile), null, 
       null, PdfWriter.ALLOW_ASSEMBLY | PdfWriter.ALLOW_COPY 
        | PdfWriter.ALLOW_DEGRADED_PRINTING | PdfWriter.ALLOW_FILL_IN 
        | PdfWriter.ALLOW_MODIFY_ANNOTATIONS | PdfWriter.ALLOW_MODIFY_CONTENTS 
        | PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_SCREENREADERS, false); 

P.S. : utilizzare la bandiera unethicalreading a proprio rischio.