PDF 업로드 프로세스가 시작되기 전에 PDF에 다음 속성이 있는지 확인해야합니다.
1) PDF는 암호로 보호되어서는 안됩니다. 2) PDF에는 문서 속성이 없어야합니다. 페이지 추출 및 콘텐츠 복사 및 접근성을위한 콘텐츠 복사는 허용되지 않습니다.
PdfReader IsEncrypted 속성을 사용하여 PDF가 암호로 보호되어 있는지 여부를 확인할 수 있습니다. 그러나 PDF에 보안 방법이 설정되어 있지 않은 경우 위에서 언급 한 문서 속성을 어떻게 확인할 수 있습니까? 권한은 문서가 암호화 된 경우에만 유용합니다. (iTextsharp dll 사용)
PDF는 다양한 방법으로 암호화 할 수 있습니다. 가장 일반적인 방법은 하나 또는 두 개의 암호를 추가하는 것입니다.
사용자 암호가있는 경우 iText는 문서를 열 수 없으며 다음과 같이 표시 BadPasswordException
됩니다.
public static boolean isPasswordProtected(string file) {
try {
PdfReader pdfReader = new PdfReader(file);
return false;
} catch (BadPasswordException bpe) {
return true;
}
}
소유자 비밀번호 만있는 경우 특수 매개 변수를 설정하여 해당 비밀번호를 무시할 수 있습니다. iText를 사용하여 PDF를 권한과 병합 할 수 있습니까를 참조하십시오.
PdfReader.unethicalreading = true;
참고하는 것이 PdfReader
또한이 isEncrypted()
방법은 참조 PageInformation의 장 (6) 예를 "액션 iText를 -. 두 번째 판"
이것은 귀하의 질문의 첫 번째 부분에 대한 답변입니다 : PDF가 암호화되었는지 여부를 어떻게 확인할 수 있습니까?
권한에 관해서 : 암호로 보호 된 PDF를 열면 getPermissions()
방법을 사용하여 어떤 권한이 있는지 알 수 있습니다 .
PdfReader pdfReader = new PdfReader(file);
int permissions = pdfReader.getPermissions();
이것은 int
실제로 bitset입니다. PdfEncryptor
클래스는 방법이 getPermissionsVerbose()
무엇 각 비트의 의미를 설명합니다 :
public static String More ...getPermissionsVerbose(int permissions) {
StringBuffer buf = new StringBuffer("Allowed:");
if ((PdfWriter.ALLOW_PRINTING & permissions) == PdfWriter.ALLOW_PRINTING) buf.append(" Printing");
if ((PdfWriter.ALLOW_MODIFY_CONTENTS & permissions) == PdfWriter.ALLOW_MODIFY_CONTENTS) buf.append(" Modify contents");
if ((PdfWriter.ALLOW_COPY & permissions) == PdfWriter.ALLOW_COPY) buf.append(" Copy");
if ((PdfWriter.ALLOW_MODIFY_ANNOTATIONS & permissions) == PdfWriter.ALLOW_MODIFY_ANNOTATIONS) buf.append(" Modify annotations");
if ((PdfWriter.ALLOW_FILL_IN & permissions) == PdfWriter.ALLOW_FILL_IN) buf.append(" Fill in");
if ((PdfWriter.ALLOW_SCREENREADERS & permissions) == PdfWriter.ALLOW_SCREENREADERS) buf.append(" Screen readers");
if ((PdfWriter.ALLOW_ASSEMBLY & permissions) == PdfWriter.ALLOW_ASSEMBLY) buf.append(" Assembly");
if ((PdfWriter.ALLOW_DEGRADED_PRINTING & permissions) == PdfWriter.ALLOW_DEGRADED_PRINTING) buf.append(" Degraded printing");
return buf.toString();
}
예를 들어, 어셈블리가 허용되는지 알고 싶다면의 값을 확인해야합니다 PdfWriter.ALLOW_ASSEMBLY & permissions
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다