procedure LoadDocument;
procedure LoadDocument(Data: Pointer; Size: NativeUInt; Buffered: Boolean = True);
| Data | Pointer. Rodyklė į neapdorotus PDF duomenis atmintyje |
| Size | NativeUInt. Duomenų buferio dydis baitais |
| Buffered | Boolean. Kai True (numatytoji), TPdf pasilieka savo kopiją. Kai False, buferis turi išlikti galiojantis iki dokumento iškrovimo |
procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);
| Data | TBytes. PDF failo turinys kaip baitų masyvas |
| Buffered | Boolean. Kai True (numatytoji), TPdf pasilieka savo kopiją. Kai False, baitų masyvas turi išlikti galiojantis ir nepakeistas iki dokumento iškrovimo |
procedure LoadDocument(const Data: TBytes; Index, Count: Integer; Buffered: Boolean = True);
| Data | TBytes. Atsarginis baitų masyvas, kuriame yra PDF langas |
| Index | Integer. Nuo nulio numeruojamas pirmo PDF baito poslinkis |
| Count | Integer. Įkeliamų PDF baitų skaičius |
| Buffered | Boolean. Kai True (numatytoji), TPdf nukopijuoja tik pasirinktą langą. Kai False, atsarginis baitų masyvas turi išlikti galiojantis ir nepakeistas iki dokumento iškrovimo |
procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);
| Data | TMemoryStream. TMemoryStream su PDF duomenimis |
| Buffered | Boolean. Kai True (numatytoji), TPdf pasilieka savo kopiją. Kai False, srauto atmintis turi išlikti galiojanti iki dokumento iškrovimo |
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;
Senosios perkrovos naudoja suderinamą režimą ir išlaiko esamą elgseną, kartu skelbdamos natyvią xref galiojimo ir atkūrimo būseną per LastLoadReport. Perkrova be argumentų skaito iš kelyje, saugomo FileName. Perkrovos su Pointer, TBytes ir TMemoryStream įkelia tiesiogiai iš atmintyje esančių duomenų apeidamos failų sistemą. Baitų diapazono perkrova išrenka įdėtą PDF iš didesnio konteinerio, protokolo kadro ar pakartotinai naudojamo priėmimo buferio nekurdama laikino TBytes pjūvio
Kai Buffered yra True (numatytoji), TPdf pateiktus baitus nukopijuoja į savo išlaikomą buferį. Kai False, kvietėjo buferis turi išlikti galiojantis ir nepakeistas iki UnloadDocument arba Active := False — tai išvengia papildomos kopijos, bet reikalauja atidaus gyvavimo laiko valdymo
Baitų diapazono perkrova atmeta neigiamas reikšmes, Index, viršijantį duomenų ilgį, arba Count, tęsiantį už likusių baitų. Rodyklės perkrova atmeta nil, kai Size nėra nulis; TMemoryStream perkrova atmeta nil srautą prieš pasikeičiant bet kokiai dokumento būsenai
Sėkmės atveju Active tampa True, o visos puslapio ypatybės atspindi pirmąjį puslapį (PageNumber = 1). Nesėkmės atveju iškeliama EPdfError išimtis
TPdfLoadOptions.Default pateikia ribotas numatytąsias reikšmes šaltinio baitams, problemoms, xref skyriams, xref įrašams ir objektų numeriams. PDFium kiekviename režime lieka semantiniu analizatoriumi; apvalkalo auditas egzistuoja todėl, kad viešasis PDFium ABI praneša xref galiojimą, bet neatskleidžia jungiklio, išjungiančio analizatoriaus atkūrimą
plmCompatible priima PDFium atkūrimą ir įrašo rezultatą nekeisdamas senosios įkėlimo elgsenosplmStrict atmeta šaltinį, kai PDFium atkūrė jo xref arba ribotas auditas randa struktūrinių klaidųplmRecovery aiškiai priima atkurtą įkėlimą ir grąžina jo diagnostikos maršrutą ir įrodymusAuditas seka klasikines xref lenteles, xref srautus, hibridines peržiūras ir /Prev grandines. Jis praneša apie sugadintus skyrius, ciklus, konfliktuojančius įrašus, pažeistus objektų poslinkius, trūkstamus terminalinius žymeklius, nepalaikomus srautų filtrus, biudžeto išsekimą ir natyvų atkūrimą. Viršijus sukonfigūruotą audito biudžetą AuditComplete nustatoma į False ir sukeliama įspėjimas; tai vien savaime neteigia, kad nepatikrinti baitai yra netinkami
InspectAvailability lieka lengva natyvi prieinamumo užklausta linearizacijai ir page-first įkėlimui; ji nepakeičia struktūrinio įkėlimo ataskaitos
TPdfLoadReport apima Status, CrossReferenceTableValid, UsedRecovery, RecoveryRoute, šaltinio ir struktūrinius poslinkius, skyrių ir įrašų skaitiklius, konfliktų ir pažeidimų skaitiklius, problemų sumas, trumpinimo būseną ir tipizuotą Issues masyvą. Ta pati ataskaita saugoma LastLoadReport
TPdfRepairReport įrašo, ar šaltinis naudojo atkūrimą, išvesties dydį ir puslapių skaičių, išvesties xref galiojimą, terminalinės klaidos tekstą ir visą nepriklausomą griežto įkėlimo tikrinimo ataskaitą
SaveAsRepaired prašo PDFium įrašyti visišką ne prieauginę kopiją, o tada tą išvestį atveria izoliuotame TPdf su plmStrict. Metodas baitus atiduoda tik xref galiojimui ir puslapių skaičiaus darnai praslinkus. Failo perkrova rašo per tą patį katalogą esantį laikinąjį failą ir paskirties vietą pakeičia atomiškai
Visiškas perrašymas pašalina ankstesnę prieauginę istoriją ir panaikina esamus parašų baitų diapazonus. Pasirašyti dokumentai atmetami, nebent AllowSignedDocument yra aiškiai True. Metodas taiso struktūras, kurias PDFium gali sėkmingai įkelti ir perrašyti; jis negarantuoja savavališkai pažeisto turinio atkūrimo ar skaitmeninių parašų išsaugojimo
// 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);