THotPDF.LoadFromFile

THotPDF

 

Top  Previous  Next

Loads an existing PDF file.

 

Delphi syntax:

function LoadFromFile ( FileName: TFileName ): Integer;

function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;

function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;

 

C++ syntax:

int __fastcall LoadFromFile ( AnsiString FileName );

int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );

int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );

 

Description

기존 PDF 파일을  로드하려면 LoadFromFile을 호출합니다. LoadFromFile 함수는 로드된 파일의 페이지 수를 반환합니다. 페이지를 하나도 찾을 수 없는 파일, 예컨대 빈 파일이나 PDF가 아닌 파일은 0을 반환하거나 예외를 일으킵니다. 페이지가 암호화된 객체 스트림 안에 들어 있는 암호화 파일은 패스워드 없이 로드할 때 예외를 일으키므로 password 오버로드를 사용하십시오

cross-reference 스트림 설정은 PDF name 이스케이프를 포함해 자기 사전 키에서 읽습니다. 중첩된 direct /Encrypt 사전은 바깥 스트림의 /Length, /Filter, /W, /Index나 trailer 참조를 덮어쓰지 않고 security-handler 매개변수를 공급합니다. 덕분에 필터링되지 않은 xref 스트림과 암호화된 객체 스트림을 쓰는 실제 AES-256 revision 6 문서를 지원합니다

/DecodeParms의 PNG predictor 매개변수도 이스케이프된 PDF name을 해석하고 중복 semantic 키는 거부합니다. xref 스트림 마커는 바깥 사전 전체 뒤에서 찾으므로, stream을 담은 name, 문자열, 주석이 페이로드 경계가 되지 않습니다. 읽기는 마커 뒤에 필요한 줄끝만 소비하고 공백 값인 첫 페이로드 바이트는 보존합니다

LocalFileMappingThreshold 이상 크기의 로컬 파일은 bounded windowed 메모리 매핑을 사용하며, 파서 읽기와 immutable lazy stream 범위는 공유 LRU 윈도우 캐시를 거칩니다. 매핑 구조는 LocalFileMappingWindowSize와 LocalFileMappingCacheWindows로 설정합니다. threshold를 0으로 두면 기존 TFileStream 경로를 그대로 사용합니다. 매핑에 실패하면 자동으로 폴백합니다. 그보다 작은 파일, 그리고 매핑이 꺼져 있거나 실패했을 때의 모든 파일은 파일 스트림 위 64 KB 읽기 버퍼를 통해 읽힙니다

지원되는 RC4 및 AES Standard 암호화 PDF에는 password 오버로드를 사용하세요. HotPDF는 user 또는 owner 패스워드를 검증하고, bounded trailer, xref, document-ID, encryption dictionary 범위에서 파일 키를 복구한 뒤, 로드된 문자열과 스트림을 메모리에서 복호화하고 로드된 암호화 상태를 지웁니다. 그러면 SaveLoadedDocument로 암호화되지 않은 사본을 저장할 수 있습니다. 패스워드 없이 로드하면 권위 있는 xref 오프셋으로 raw 암호화 객체를 확보해 두므로, 이후 DecryptLoadedDocument를 호출할 때 파일을 다시 열지 않고도 정확한 바이너리 security-handler 값을 쓸 수 있습니다. 지원되지 않는 암호화 리비전은 예외를 발생시킵니다. bounded 키 복구는 HotPDF v2.489.0부터, 파일 재읽기 없는 지연 복호화는 HotPDF v2.490.0부터 지원됩니다

AutoDecrypt 오버로드는 viewer와 같은 방식으로 문서를 엽니다. AutoDecrypt가 True이고 문서가 빈 user 패스워드로 암호화되어 있다면, 이는 권한 제한만 두는 문서가 쓰이는 방식입니다, 패스워드 오버로드에 빈 패스워드를 준 것과 똑같이 메모리에서 복호화되므로 텍스트를 추출하고, 렌더링하고, 내보낼 수 있습니다. 이때 IsEncrypted는 False가 되고 이후 SaveLoadedDocument는 암호화되지 않은 사본을 기록합니다. 패스워드가 필요한 문서와 암호화되지 않은 문서는 일반 오버로드가 로드하듯 로드됩니다. 빈 패스워드로 문서가 열리는지는 같은 bounded 범위에서 먼저 확인하므로 문서를 두 번 로드하지 않습니다. AutoDecrypt가 False이면 이 오버로드는 일반 오버로드와 같습니다

기존 PDF 객체를 가져올 때 HotPDF는 name 값을 내부에 저장하기 전에 ISO 32000-1의 PDF name #XX 이스케이프 시퀀스를 디코딩합니다. /PANTONE#20216#20CVC, /lime#20Green, /The_Key_of_F#23_Minor 같은 name도 문서를 나중에 복사하거나 저장할 때 원래 의도한 바이트 값 그대로 유지됩니다

 

 

See also: Windowed Local File Mapping, LoadFromStream, DecryptLoadedDocument