2012-01-05 38 views
7

Tôi cần xử lý một số lượng lớn các tệp pdf được bảo vệ và chỉnh sửa chúng bằng cách sử dụng chương trình java, nhưng tôi không có mật khẩu cho các tệp này. Có cách nào để mở khóa các tệp này bằng một đợt không?mở khóa các tệp pdf được bảo vệ

Tôi muốn có lệnh cửa sổ như công cụ hoặc api nguồn mở java. Giải pháp tốt nhất là gì?

+3

Giải pháp tốt nhất là yêu cầu hỗ trợ từ người sở hữu nội dung tệp - đó có thể là người mà mật khẩu bảo vệ họ. – mah

+0

Miễn là các tệp PDF chỉ có mật khẩu chủ sở hữu chứ không phải mật khẩu người dùng (bạn vẫn có thể xem chúng) thì không có gì được mã hóa trong các tệp. Các hạn chế chỉ được áp dụng bởi các ứng dụng của người xem và PDF không thực sự được bảo vệ. Bạn chỉ có thể bỏ qua bảo vệ nếu bạn có ứng dụng chỉnh sửa của riêng mình. – Alasdair

Trả lời

16

là những tệp pdf yêu cầu mở mật khẩu hoặc bảo vệ bao gồm các hạn chế về sao chép, in, sửa đổi, trích xuất văn bản v.v ...?

nếu điều này là trường hợp của bạn, bạn có thể thử với

qpdf

sử dụng:

qpdf --decrypt file.pdf unlocked.pdf 

và có thể được sử dụng trong một loạt hoạt động en masse, theo cách này

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

Các tệp pdf của tôi không yêu cầu mật khẩu. Các hạn chế của tôi là về sao chép, in, sửa đổi, tôi muốn một thư viện java thực hiện công việc tương tự như qpdf. – brianbro

+0

cảm ơn. tôi đã sử dụng solutiion của bạn. Hoàn hảo – brianbro

+1

có, đây là lựa chọn thay thế miễn phí và mã nguồn mở tốt nhất cho PDFUnlock! – hellboy

1

Đối với giải mã, bạn có thể sử dụng PDFBox, xem câu trả lời của tôi ở đây: https://stackoverflow.com/a/9976481/535203

tôi đưa ra một số mẫu mã để giải mã một file PDF được mật khẩu của mình.

Ngoài ra còn có một nhị phân để làm điều đó với PDFBox, hãy kiểm tra the usage here.

0

Bạn cũng có thể làm điều đó bằng thư viện iText.

Dưới đây là một số mẫu mã:

 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); 

T.B. : sử dụng unethicalreading gắn cờ rủi ro của riêng bạn.

Các vấn đề liên quan