|
Charge un fichier PDF existant
Syntaxe Delphi :
function LoadFromFile ( FileName: TFileName ): Integer;
function LoadFromFile ( FileName: TFileName; const Password: AnsiString ): Integer;
function LoadFromFile ( FileName: TFileName; AutoDecrypt: Boolean ): Integer;
Syntaxe C++ :
int __fastcall LoadFromFile ( AnsiString FileName );
int __fastcall LoadFromFile ( AnsiString FileName, System::AnsiString Password );
int __fastcall LoadFromFile ( AnsiString FileName, bool AutoDecrypt );
Description
Appelez LoadFromFile pour charger un fichier PDF existant. La fonction LoadFromFile renvoie le nombre de pages du fichier chargé. Un fichier dans lequel aucune page ne peut être trouvée, par exemple un fichier vide ou non PDF, renvoie 0 ou lève une exception. Un fichier chiffré dont les pages se trouvent dans des object streams chiffrés ne peut produire aucun résultat de page exploitable sans son mot de passe valide ; utilisez la surcharge avec mot de passe
La configuration du cross-reference stream est lue depuis ses propres clés de dictionnaire, y compris les échappements de noms PDF. Un dictionnaire /Encrypt direct imbriqué fournit les paramètres du gestionnaire de sécurité sans surcharger les /Length, /Filter, /W, /Index du flux externe ni les références du trailer. Cela prend en charge les vrais documents AES-256 révision 6 avec xref streams non filtrés et object streams chiffrés
Les paramètres de prédicteur PNG dans /DecodeParms résolvent également les noms PDF échappés et rejettent les clés sémantiques dupliquées. Le marqueur de xref stream est localisé après le dictionnaire externe complet, si bien que les noms, chaînes et commentaires contenant stream ne deviennent pas des frontières de payload. La lecture ne consomme que la fin de ligne requise après le marqueur et préserve un premier octet de payload constitué d’un blanc
Les fichiers locaux d’une taille supérieure ou égale à LocalFileMappingThreshold utilisent un mapping mémoire fenêtré borné avec un cache de fenêtres LRU partagé pour les lectures de l’analyseur et des plages de flux paresseuses immuables. Configurez la géométrie du mapping avec LocalFileMappingWindowSize et LocalFileMappingCacheWindows ; mettez le seuil à zéro pour conserver le chemin TFileStream. Les échecs de mapping retombent automatiquement en arrière. Les fichiers plus petits, et tous les fichiers quand le mapping est désactivé ou échoue, sont lus via un tampon de lecture de 64 KB sur le flux du fichier
Utilisez la surcharge avec mot de passe pour les PDF chiffrés Standard RC4 et AES pris en charge. HotPDF valide le mot de passe utilisateur ou propriétaire, récupère la clé du fichier depuis des plages bornées du trailer, du xref, de l’ID de document et du dictionnaire de chiffrement, déchiffre en mémoire les chaînes et flux chargés, efface l’état de chiffrement chargé et permet à SaveLoadedDocument d’écrire une copie non chiffrée. Le chargement sans mot de passe capture l’objet de chiffrement brut par son offset xref faisant foi, afin qu’un appel ultérieur à DecryptLoadedDocument puisse utiliser les valeurs binaires exactes du gestionnaire de sécurité sans rouvrir le fichier. Les révisions de chiffrement non prises en charge lèvent une exception. La récupération bornée de clés est disponible depuis HotPDF v2.489.0, et le déchiffrement différé sans relecture depuis HotPDF v2.490.0
La surcharge AutoDecrypt ouvre les documents comme le font les viewers. Quand AutoDecrypt est True et que le document est chiffré avec un mot de passe utilisateur vide — c’est ainsi que sont écrits les documents qui se contentent de restreindre les permissions —, il est déchiffré en mémoire exactement comme le ferait la surcharge avec mot de passe et un mot de passe vide, si bien son texte peut être extrait, rendu et exporté ; IsEncrypted vaut alors False et un SaveLoadedDocument ultérieur écrit une copie non chiffrée. Un document qui exige un mot de passe, tout comme un document non chiffré, se charge comme la surcharge simple le charge. Le fait que le mot de passe vide ouvre le document est d’abord vérifié depuis les mêmes plages bornées, sans charger le document deux fois. Avec AutoDecrypt à False, la surcharge est la surcharge simple
Lors de l’import d’objets PDF existants, HotPDF décode les séquences d’échappement #XX des noms PDF ISO 32000-1 avant de stocker les valeurs de noms en interne. Les noms tels que /PANTONE#20216#20CVC, /lime#20Green et /The_Key_of_F#23_Minor conservent leurs valeurs d’octets prévues lorsque le document est ultérieurement copié ou enregistré
Voir aussi : LoadFromStream, DecryptLoadedDocument
|