2014-03-25 3 views
0

iTextSharp을 사용하여 기존 PDF 문서에 파일을 첨부하고 싶습니다. pdfStamper.AddFileAttachment(...) 메서드를 사용하여 파일을 첨부 할 수 있습니다. 이제 첨부 파일을 볼 수 없으며 PDF에서 직접 가져올 수없는 방식으로 첨부 파일을 숨김/안전하게 만들고 싶습니다. 코드에서만 검색해야합니다.iTextSharp를 사용하여 PDF 문서에 안전하고 숨겨진 첨부 파일을 추가하는 방법

답변

3

첨부 파일에 숨겨져있는 내용은 저장하지 않습니다. 이것은 공개적이고 잘 알려진 메커니즘으로 여러 소프트웨어에서 이해하고 지원합니다 (UI를 통해).

숨겨져 있고 안전해야하는 경우 파일을 암호화하여 파일의 모든 부분을 문서의 개인 CosStream에 저장합니다. 이렇게하는 가장 좋은 방법은 제품 개인 데이터를 PDF 파일에 저장하는 방법을 제공하는 "Page-Piece Dictionaries"일 것입니다. 개인 데이터는 양식, 페이지 또는 문서 전체에 첨부 할 수 있습니다.

내 PDF 사양 사양에서는 14.5 단락의 Piece Dictionaries입니다.

OP 및 mkl의 후속 의견에 대한 우려를 포함하기 위해 페이지 - 피스 데이터가 설정된 방식으로 인코딩된다는 기대치는 없습니다. 페이지 - 피스 사전은 값으로 무엇이든 가질 수있는 "비공개"키를 포함합니다 (값은 더 작은 데이터를위한 문자열 일 수도 있고 개인 정보의 여러 부분을 포함하는 사전 일 수도 있고 유지하기 위해 압축 된 스트림 일 수도 있습니다 그것은 작다).

PDF 사양 : "개인 (키) : (선택 사항) 적합 제품에 적합한 개인 데이터, 일반적으로 사전 형식". 설명에서 "일반적으로"를 언급하십시오. PDF 사양에 대한 자세한 설명은 저장된 데이터 유형이 원하는 것일 수 있음을 분명히합니다.

+0

현재이 작업을 수행하기 위해 페이지 - 피스 (Page-Piece) 사전을 사용하고 있지만 최종 파일 크기는 이제 저에게 중요합니다. PDF에 저장하는 문자열의 크기는 10MB를 초과 할 수 있습니다. 따라서 500KB의 초기 PDF 크기는 약 12-13MB로 너무 많이 이동합니다. 첨부 파일을 사용한 후 PDF 크기는 압축 파일로 800KB까지 이동합니다. 이 큰 차이 때문에 첨부 파일을 안전하게 할 수있는 방법이 있다면 생각 중이었습니다. – rizzz86

+2

@ rizzz86 필자가 ** PieceInfo **에 대해 언급 한 코멘트에서 언급했듯이 : * 10MB 이상의 데이터에 대해 이야기 할 때 문자열 대신 PDF 스트림을 사용할 수 있습니다. ** PieceInfo ** 항목이 문자열 일 필요는 없으며 스트림도 가능하며 스트림은 쉽게 압축 될 수 있습니다 (기본적으로 iText에서는 압축 됨). – mkl

+1

필자는 정답을 편집하여 해당 정보를 포함 시켰습니다. –

관련 문제