|
Carga un archivo PDF existente
Sintaxis Delphi:
function LoadFromFile ( FileName: TFileName ): Integer;
function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;
function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;
Sintaxis C++:
int __fastcall LoadFromFile ( AnsiString FileName );
int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );
int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );
Descripción
Llama a LoadFromFile para cargar un archivo PDF existente. La función LoadFromFile devuelve la cantidad de páginas del archivo cargado. Un archivo en el que no se encuentra ninguna página, como un archivo vacío o que no es PDF, devuelve 0 o lanza una excepción. Un archivo cifrado cuyas páginas están en object streams cifrados no puede producir resultados de páginas utilizables sin su contraseña válida; use el overload con contraseña
La configuración del cross-reference stream se lee desde sus propias claves de diccionario, incluidos los escapes de nombres PDF. Un diccionario /Encrypt directo anidado suministra los parámetros del security handler sin anular las referencias /Length, /Filter, /W, /Index del stream externo ni las del trailer. Esto soporta documentos genuinos AES-256 revisión 6 con xref streams sin filtrar y object streams cifrados
Los parámetros de predictores PNG en /DecodeParms también resuelven nombres PDF escapados y rechazan claves semánticas duplicadas. El marcador del xref stream se localiza después del diccionario externo completo, de modo que nombres, strings y comentarios que contienen stream no se convierten en límites de payload. La lectura consume solo el final de línea requerido después del marcador y preserva un primer byte de payload con valor de espacio en blanco
Los archivos locales de tamaño igual o superior a LocalFileMappingThreshold usan mapeo de memoria ventaneado acotado con una cache LRU de ventanas compartida para lecturas del parser y rangos de stream perezosos e inmutables. Configure la geometría del mapeo con LocalFileMappingWindowSize y LocalFileMappingCacheWindows; fije el umbral en cero para conservar la ruta TFileStream. Los fallos de mapeo retroceden automáticamente. Los archivos más pequeños, y todos los archivos cuando el mapeo está desactivado o falla, se leen mediante un búfer de lectura de 64 KB sobre el file stream
Use el overload con contraseña para los PDFs cifrados Standard RC4 y AES soportados. HotPDF valida la contraseña de usuario o de propietario, recupera la file key desde rangos acotados del trailer, xref, ID de documento y diccionario de cifrado, descifra en memoria los strings y streams cargados, limpia el estado de cifrado cargado y deja que SaveLoadedDocument escriba una copia sin cifrar. La carga sin contraseña captura el objeto de cifrado crudo por su offset de xref autoritativo, de modo que una llamada posterior a DecryptLoadedDocument pueda usar los valores binarios exactos del security handler sin reabrir el archivo. Las revisiones de cifrado no soportadas lanzan una excepción. La recuperación acotada de keys está disponible desde HotPDF v2.489.0, y el descifrado diferido sin relectura está disponible desde HotPDF v2.490.0
El overload AutoDecrypt abre los documentos como lo hacen los visores. Cuando AutoDecrypt es True y el documento está encriptado con una contraseña de usuario vacía — así se escriben los documentos que solo restringen permisos —, se desencripta en memoria exactamente como lo haría el overload con contraseña usando una contraseña vacía, de modo que su texto puede extraerse, renderizarse y exportarse; IsEncrypted pasa a False y un SaveLoadedDocument posterior escribe una copia sin encriptar. Un documento que necesita contraseña, y uno sin encriptar, se carga como lo carga el overload simple. Si la contraseña vacía abre el documento se comprueba primero desde los mismos rangos acotados, sin cargar el documento dos veces. Con AutoDecrypt en False el overload es el simple
Al importar objetos PDF existentes, HotPDF decodifica las secuencias de escape #XX de nombres PDF ISO 32000-1 antes de almacenar los valores de nombre internamente. Nombres como /PANTONE#20216#20CVC, /lime#20Green y /The_Key_of_F#23_Minor se conservan como sus valores de bytes previstos cuando el documento se copia o se guarda más adelante
Ver también: Windowed Local File Mapping, LoadFromStream, DecryptLoadedDocument
|