|
Lädt eine vorhandene PDF-Datei
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
Rufen Sie LoadFromFile auf, um eine vorhandene PDF-Datei zu laden. Die Funktion LoadFromFile gibt die Anzahl der Seiten der geladenen Datei zurück. Eine Datei, in der keine Seite gefunden wird — etwa eine leere oder keine PDF-Datei —, liefert 0 oder löst eine Exception aus. Eine verschlüsselte Datei, deren Seiten in verschlüsselten Object Streams liegen, kann ohne ihr gültiges Passwort keine brauchbaren Seitenresultate liefern; verwenden Sie die Passwort-Überladung
Die Konfiguration eines Cross-Reference-Streams wird aus dessen eigenen Dictionary-Schlüsseln gelesen, einschließlich PDF-Namen-Escapes. Ein verschachteltes direktes /Encrypt-Dictionary liefert die Parameter des Security Handlers, ohne die /Length-, /Filter-, /W- und /Index-Angaben des äußeren Streams oder die Trailer-Referenzen zu überschreiben. So werden echte AES-256-Revision-6-Dokumente mit ungefilterten xref-Streams und verschlüsselten Object Streams unterstützt
PNG-Prädiktor-Parameter in /DecodeParms lösen ebenfalls escapte PDF-Namen auf und weisen doppelte semantische Schlüssel zurück. Die xref-Stream-Markierung wird erst nach dem vollständigen äußeren Dictionary gesucht, sodass Namen, Strings und Kommentare mit stream keine Payload-Grenzen bilden. Das Lesen verbraucht nur das vorgeschriebene Zeilenende nach der Markierung und bewahrt ein Whitespace-Zeichen als erstes Payload-Byte
Lokale Dateien ab der Größe LocalFileMappingThreshold nutzen begrenztes, fensterbasiertes Memory Mapping mit einem gemeinsamen LRU-Fenster-Cache für Parser-Lesezugriffe und unveränderliche Lazy-Stream-Bereiche. Die Geometrie des Mappings konfigurieren Sie mit LocalFileMappingWindowSize und LocalFileMappingCacheWindows; setzen Sie die Schwelle auf null, um beim TFileStream-Pfad zu bleiben. Schlägt das Mapping fehl, wird automatisch auf den Fallback ausgewichen. Kleinere Dateien — und jede Datei, wenn Mapping aus ist oder fehlschlägt — werden über einen 64-KB-Lesepuffer auf dem Datei-Stream gelesen
Verwenden Sie die Überladung mit Passwort für unterstützte PDFs mit RC4- und AES-Standardverschlüsselung. HotPDF prüft das Benutzer- oder Besitzerpasswort, gewinnt den Dateischlüssel aus begrenzten Bereichen von Trailer, xref, Dokument-ID und Encryption-Dictionary zurück, entschlüsselt geladene Strings und Streams im Speicher, löscht den geladenen Verschlüsselungszustand und lässt SaveLoadedDocument eine unverschlüsselte Kopie schreiben. Beim Laden ohne Passwort wird das rohe Encryption-Objekt über seinen maßgeblichen xref-Offset erfasst, sodass ein späterer Aufruf von DecryptLoadedDocument exakte binäre Werte des Security Handlers nutzen kann, ohne die Datei erneut zu öffnen. Nicht unterstützte Verschlüsselungsrevisionen lösen eine Exception aus. Die begrenzte Schlüsselwiederherstellung gibt es seit HotPDF v2.489.0, die verzögerte Entschlüsselung ohne erneutes Lesen seit HotPDF v2.490.0
Die AutoDecrypt-Überladung öffnet Dokumente, wie es Betrachter tun. Ist AutoDecrypt True und das Dokument mit einem leeren Benutzerpasswort verschlüsselt — so werden Dokumente geschrieben, die nur Berechtigungen einschränken —, wird es im Speicher genau so entschlüsselt, wie es die Passwort-Überladung mit leerem Passwort täte; sein Text lässt sich extrahieren, rendern und exportieren, IsEncrypted ist danach False, und ein späteres SaveLoadedDocument schreibt eine unverschlüsselte Kopie. Ein Dokument, das ein Passwort braucht, und ein unverschlüsseltes werden so geladen, wie es die einfache Überladung lädt. Ob das leere Passwort das Dokument öffnet, wird zuerst aus denselben begrenzten Bereichen geprüft, ohne das Dokument zweimal zu laden. Mit AutoDecrypt False ist die Überladung die einfache
Beim Import vorhandener PDF-Objekte dekodiert HotPDF die #XX-Escape-Sequenzen von PDF-Namen nach ISO 32000-1, bevor die Namenswerte intern gespeichert werden. Namen wie /PANTONE#20216#20CVC, /lime#20Green und /The_Key_of_F#23_Minor bleiben beim späteren Kopieren oder Speichern des Dokuments als die gemeinten Byte-Werte erhalten
See also: Windowed Local File Mapping, LoadFromStream, DecryptLoadedDocument
|