procedure LoadDocument;
procedure LoadDocument(Data: Pointer; Size: NativeUInt; Buffered: Boolean = True);
| Data | Pointer. Pokazivač na sirove PDF podatke u memoriji |
| Size | NativeUInt. Veličina međuspremnika podataka u bajtovima |
| Buffered | Boolean. Kada je True (zadano), TPdf zadržava vlastitu kopiju. Kada je False, međuspremnik mora ostati valjan dok se dokument ne ukloni |
procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);
| Data | TBytes. Sadržaj PDF datoteke kao niz bajtova |
| Buffered | Boolean. Kada je True (zadano), TPdf zadržava vlastitu kopiju. Kada je False, niz bajtova mora ostati valjan i nepromijenjen dok se dokument ne ukloni |
procedure LoadDocument(const Data: TBytes; Index, Count: Integer; Buffered: Boolean = True);
| Data | TBytes. Pozadinski niz bajtova koji sadrži PDF prozor |
| Index | Integer. Nultiindeksirani pomak prvog PDF bajta |
| Count | Integer. Broj PDF bajtova za učitavanje |
| Buffered | Boolean. Kada je True (zadano), TPdf kopira samo odabrani prozor. Kada je False, pozadinski niz bajtova mora ostati valjan i nepromijenjen dok se dokument ne ukloni |
procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);
| Data | TMemoryStream. TMemoryStream koji sadrži PDF podatke |
| Buffered | Boolean. Kada je True (zadano), TPdf zadržava vlastitu kopiju. Kada je False, memorija strujanja mora ostati valjana dok se dokument ne ukloni |
procedure LoadDocument(const Options: TPdfLoadOptions; out Report: TPdfLoadReport);
procedure LoadDocument(Data: Pointer; Size: NativeUInt; const Options: TPdfLoadOptions; out Report: TPdfLoadReport; Buffered: Boolean = True);
procedure LoadDocument(const Data: TBytes; const Options: TPdfLoadOptions; out Report: TPdfLoadReport; Buffered: Boolean = True);
procedure LoadDocument(const Data: TBytes; Index, Count: Integer; const Options: TPdfLoadOptions; out Report: TPdfLoadReport; Buffered: Boolean = True);
function SaveAsRepaired(Stream: TStream; out Report: TPdfRepairReport; AllowSignedDocument: Boolean = False): Boolean;
function SaveAsRepaired(const FileName: string; out Report: TPdfRepairReport; AllowSignedDocument: Boolean = False): Boolean;
Naslijeđena preopterećenja koriste kompatibilni režim i čuvaju postojeće ponašanje uz objavljivanje izvorne valjanosti xref-a i statusa oporavka kroz LastLoadReport. Preopterećenje bez argumenata čita iz putanje
pohranjene u FileName. Preopterećenja Pointer, TBytes
i TMemoryStream učitavaju izravno iz podataka u memoriji, zaobilazeći
datotečni sustav. Preopterećenje raspona bajtova bira ugrađeni PDF iz većeg
spremnika, okvira protokola ili ponovno upotrebljivog prijamnog međuspremnika
bez stvaranja privremenog isječka TBytes
Kada je Buffered True (zadano), TPdf
kopira dostavljene bajtove u svoj zadržani međuspremnik. Kada je False, međuspremnik pozivatelja
mora ostati valjan i nepromijenjen do UnloadDocument ili
Active := False — to izbjegava dodatno kopiranje, ali zahtijeva pažljivo
upravljanje vijekom trajanja
Preopterećenje raspona bajtova odbija negativne vrijednosti, Index iznad duljine podataka ili Count koji prelazi preostale bajtove. Preopterećenje pokazivača odbija nil kada je Size različit od nule; preopterećenje TMemoryStream odbija nil strujanje prije bilo kakve promjene stanja dokumenta
U slučaju uspjeha Active postaje True i sva svojstva stranica
odražavaju prvu stranicu (PageNumber = 1). U slučaju neuspjeha podiže se
iznimka EPdfError
TPdfLoadOptions.Default daje omeđene zadane vrijednosti za izvorne bajtove, probleme, xref odjeljke, xref unose i brojeve objekata. PDFium ostaje semantički parser u svakom režimu; revizija omotača postoji jer javni ABI PDFiuma prijavljuje valjanost xref-a, ali ne izlaže prekidač koji isključuje oporavak parsera
plmCompatible prihvaća PDFium oporavak i bilježi rezultat bez promjene naslijeđenog ponašanja učitavanjaplmStrict odbija izvor kada PDFium ponovno izgradi svoj xref ili ograničena revizija pronađe strukturne pogreškeplmRecovery izričito prihvaća oporavljeno učitavanje i vraća njegov dijagnostički put i dokazeRevizija slijedi klasične xref tablice, xref strujanja, hibridne revizije i lance /Prev. Prijavljuje neispravno oblikovane odjeljke, cikluse, sukobljene unose, oštećene pomake objekata, nedostajuće završne oznake, nepodržane filtre strujanja, iscrpljenje proračuna i izvorni oporavak. Prekoračenje konfiguriranog proračuna revizije postavlja AuditComplete na False i proizvodi upozorenje; samo po sebi ne tvrdi da su neprovjereni bajtovi nevaljani
InspectAvailability ostaje lagana izvorna proba dostupnosti za linealizaciju i učitavanje prvo-stranica; ne zamjenjuje strukturni izvještaj učitavanja
TPdfLoadReport uključuje Status, CrossReferenceTableValid, UsedRecovery, RecoveryRoute, izvorne i strukturne pomake, brojače odjeljaka i unosa, brojače sukoba i oštećenja, ukupne probleme, stanje skraćivanja i tipizirano polje Issues. Isti se izvještaj pohranjuje u LastLoadReport
TPdfRepairReport bilježi je li izvor koristio oporavak, veličinu izlaza i broj stranica, valjanost izlaznog xref-a, završni tekst pogreške i potpuni neovisni izvještaj stroge provjere učitavanja
SaveAsRepaired traži od PDFiuma da zapiše potpunu neinkrementalnu kopiju, a zatim otvara taj izlaz u izoliranom TPdf sa plmStrict. Metoda isporučuje bajtove tek nakon što valjanost xref-a i dosljednost broja stranica prođu. Preopterećenje datoteke piše kroz privremenu datoteku u istom direktoriju i atomarno zamjenjuje odredište
Potpuno prepisivanje uklanja prethodnu inkrementalnu povijest i poništava postojeće raspone bajtova potpisa. Potpisani dokumenti odbijaju se osim ako AllowSignedDocument nije izričito True. Metoda popravlja strukture koje PDFium može uspješno učitati i prepisati; ne jamči oporavak proizvoljno oštećenog sadržaja ni očuvanje digitalnih potpisa
// From file
Pdf.FileName := 'C:\docs\file.pdf';
Pdf.LoadDocument;
// From TBytes
var Bytes: TBytes;
Bytes := TFile.ReadAllBytes('file.pdf');
Pdf.LoadDocument(Bytes);
// From a PDF embedded in a larger byte array
Pdf.LoadDocument(Container, PdfOffset, PdfLength);
// From TMemoryStream (unbuffered)
Pdf.LoadDocument(FStream, False);
// Reject hidden parser recovery
Options := TPdfLoadOptions.Default(plmStrict);
Pdf.LoadDocument(Options, Report);
// Rewrite and independently verify a recovered document
Pdf.SaveAsRepaired('C:\docs\repaired.pdf', RepairReport);