procedure LoadDocument;
procedure LoadDocument(Data: Pointer; Size: NativeUInt; Buffered: Boolean = True);
| Data | Pointer. Kazalec na surove podatke PDF v pomnilniku. |
| Size | NativeUInt. Velikost podatkovnega medpomnilnika v bajtih. |
| Buffered | Boolean. Ob True (privzeto) si TPdf shrani svojo kopijo. Ob False mora medpomnilnik ostati veljaven, dokler dokument ni odložen. |
procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);
| Data | TBytes. Vsebina datoteke PDF kot polje bajtov. |
| Buffered | Boolean. Ob True (privzeto) si TPdf shrani svojo kopijo. Ob False mora polje bajtov ostati veljavno in nespremenjeno, dokler dokument ni odložen. |
procedure LoadDocument(const Data: TBytes; Index, Count: Integer; Buffered: Boolean = True);
| Data | TBytes. Nosilno polje bajtov, ki vsebuje okno PDF. |
| Index | Integer. Ničelno baziran odmik prvega bajta PDF. |
| Count | Integer. Število bajtov PDF za nalaganje. |
| Buffered | Boolean. Ob True (privzeto) TPdf kopira le izbrano okno. Ob False mora nosilno polje bajtov ostati veljavno in nespremenjeno, dokler dokument ni odložen. |
procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);
| Data | TMemoryStream. TMemoryStream s podatki PDF. |
| Buffered | Boolean. Ob True (privzeto) si TPdf shrani svojo kopijo. Ob False mora pomnilnik toka ostati veljaven, dokler dokument ni odložen. |
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;
Starejše preobremenitve uporabljajo način compatible in ohranjajo obstoječe vedenje, hkrati pa prek LastLoadReport objavijo izvorno veljavnost xref in stanje obnovitve. Preobremenitev brez argumentov bere iz
poti, shranjene v FileName. Preobremenitve Pointer, TBytes
in TMemoryStream nalagajo neposredno iz podatkov v pomnilniku in obidejo
datotečni sistem. Preobremenitev z bajtnim obsegom izbere vgrajeni PDF iz večjega
vsebnika, okvira protokola ali znova uporabljivega sprejemnega medpomnilnika, ne da bi ustvarila začasno
rezino TBytes.
Ko je Buffered True (privzeto), TPdf
kopira podane bajte v svoj zadržani medpomnilnik. Ob False mora klicateljev
medpomnilnik ostati veljaven in nespremenjen do UnloadDocument ali
Active := False — to se izogne dodatni kopiji, a zahteva skrbno
upravljanje življenjske dobe.
Preobremenitev z bajtnim obsegom zavrne negativne vrednosti, Index onkraj dolžine podatkov ali Count, ki sega čez preostale bajte. Kazalčna preobremenitev zavrne nil, ko je Size neničelen; preobremenitev TMemoryStream zavrne tok nil, preden se spremeni katero koli stanje dokumenta
Ob uspehu Active postane True in vse lastnosti strani
odražajo prvo stran (PageNumber = 1). Ob neuspehu se sproži
izjema EPdfError.
TPdfLoadOptions.Default zagotovi omejene privzete vrednosti za izvorne bajte, težave, odseke xref, vnose xref in številke objektov. PDFium v vsakem načinu ostaja semantični razčlenjevalnik; revizija ovoja obstaja, ker javni ABI PDFium poroča o veljavnosti xref, ne izpostavlja pa stikala, ki bi izklopilo obnovitev razčlenjevalnika
plmCompatible sprejme obnovitev PDFium in zabeleži rezultat, ne da bi spremenil starejše vedenje nalaganjaplmStrict zavrne vir, kadar je PDFium ponovno zgradil xref ali omejena revizija najde strukturne napakeplmRecovery izrecno sprejme obnovitveno nalaganje in vrne svojo diagnostično pot in dokazeRevizija sledi klasičnim tabelam xref, tokovnim xref, hibridnim revizijam in verigam /Prev. Prijavi slabo oblikovane odseke, cikle, nasprotujoče vnose, poškodovane odmike objektov, manjkajoče končne oznake, nepodprte filtre tokov, izčrpanje proračuna in izvorno obnovitev. Prekoračitev nastavljenega proračuna revizije nastavi AuditComplete na False in ustvari opozorilo; sama po sebi ne trdi, da so nepregledani bajti neveljavni
InspectAvailability ostane lahkotna izvorna preizkušnja razpoložljivosti za linearizacijo in nalaganje strani najprej; ne nadomešča strukturnega poročila o nalaganju
TPdfLoadReport vsebuje Status, CrossReferenceTableValid, UsedRecovery, RecoveryRoute, izvorne in strukturne odmike, števce odsekov in vnosov, števce sporov in poškodb, skupno število težav, stanje prirezanosti in tipizirano polje Issues. Isto poročilo je shranjeno v LastLoadReport
TPdfRepairReport zabeleži, ali je vir uporabil obnovitev, velikost izhoda in število strani, veljavnost izhodnega xref, besedilo končne napake in popolno poročilo neodvisnega preverjanja s strogim nalaganjem
SaveAsRepaired zaprosi PDFium, da zapiše popolno neinkrementalno kopijo, nato odpre ta izhod v izoliranem TPdf s pravilnikom plmStrict. Metoda dostavi bajte šele, ko veljavnost xref in skladnost števila strani uspešno preideta preverjanje. Datotečna preobremenitev piše prek začasne datoteke v isti mapi in cilj nadomesti atomarno
Popoln prepis odstrani prejšnjo inkrementalno zgodovino in razveljavi obstoječe bajtne obsege podpisov. Podpisani dokumenti so zavrnjeni, razen če je AllowSignedDocument izrecno True. Metoda popravi strukture, ki jih PDFium uspešno naloži in prepiše; ne zagotavlja obnovitve poljubno poškodovane vsebine ali ohranitve digitalnih podpisov
// 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);