procedure LoadDocument;
procedure LoadDocument(Data: Pointer; Size: NativeUInt; Buffered: Boolean = True);
| Data | Pointer. En pekare till rå PDF-data i minnet |
| Size | NativeUInt. Storleken på databufferten i byte |
| Buffered | Boolean. När True (standard) behåller TPdf en egen kopia. När False måste bufferten förbli giltig tills dokumentet lastas ur |
procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);
| Data | TBytes. PDF-filens innehåll som en byte-array |
| Buffered | Boolean. När True (standard) behåller TPdf en egen kopia. När False måste byte-arrayen förbli giltig och oförändrad tills dokumentet lastas ur |
procedure LoadDocument(const Data: TBytes; Index, Count: Integer; Buffered: Boolean = True);
| Data | TBytes. Underliggande byte-array som innehåller PDF-fönstret |
| Index | Integer. Den nollbaserade positionen för första PDF-byten |
| Count | Integer. Antalet PDF-byten som ska läsas in |
| Buffered | Boolean. När True (standard) kopierar TPdf endast det valda fönstret. När False måste den underliggande byte-arrayen förbli giltig och oförändrad tills dokumentet lastas ur |
procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);
| Data | TMemoryStream. En TMemoryStream som innehåller PDF-datan |
| Buffered | Boolean. När True (standard) behåller TPdf en egen kopia. När False måste strömminnet förbli giltigt tills dokumentet lastas ur |
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;
De äldre överlagringarna använder compatible-läget och bevarar sitt befintliga beteende samtidigt som de publicerar nativ xref-giltighet och återställningsstatus via LastLoadReport. Överlagringen utan argument läser från
sökvägen som lagras i FileName. Överlagringarna för Pointer,
TBytes och TMemoryStream läser in direkt från data i minnet
och kringgår filsystemet. Byte-intervallöverlagringen väljer en inbäddad PDF från en
större container, protokollram eller återanvändbar mottagningsbuffert utan att skapa
en tillfällig TBytes-slice
När Buffered är True (standard) kopierar
TPdf de angivna bytena till sin behållna buffert. När
False måste anroparens buffert förbli giltig och oförändrad tills
UnloadDocument eller Active := False — detta undviker
en extra kopia men kräver noggrant livstidshanterande
Byte-intervallöverlagringen förkastar negativa värden, ett Index bortom datalängden eller ett Count som sträcker sig förbi de återstående bytena. Pekaröverlagringen förkastar nil när Size inte är noll; TMemoryStream-överlagringen förkastar en nil-ström innan någon dokumenttillstånd ändras
Vid lyckat resultat blir Active True och alla
sidegenskaper speglar första sidan (PageNumber = 1). Vid misslyckande
väcks ett EPdfError-undantag
TPdfLoadOptions.Default tillhandahåller begränsade standardvärden för källbyten, problem, xref-sektioner, xref-poster och objektnummer. PDFium förblir den semantiska tolkaren i varje läge; omslagsgranskningen finns eftersom det publika PDFium-ABI:et rapporterar xref-giltighet men inte exponerar någon brytare som stänger av tolkarens återställning
plmCompatible accepterar PDFiums återställning och registrerar resultatet utan att ändra det äldre inläsningsbeteendetplmStrict förkastar en källa när PDFium byggde om dess xref eller när den begränsade granskningen hittar strukturella felplmRecovery accepterar uttryckligen en återställd inläsning och returnerar dess diagnostiska rutt och bevisGranskningen följer klassiska xref-tabeller, xref-strömmar, hybridrevisioner och /Prev-kedjor. Den rapporterar felformaterade sektioner, cykler, motstridiga poster, skadade objektpositioner, saknade slutmarkörer, strömningsfilter som inte stöds, slut på budget och nativ återställning. Att en konfigurerad granskningsbudget överskrids sätter AuditComplete till False och ger en varning; det påstår inte i sig att okontrollerade byte är ogiltiga
InspectAvailability förblir den lättnativa tillgänglighetssonden för linearisering och page-first-inläsning; den ersätter inte den strukturella inläsningsrapporten
TPdfLoadReport innehåller Status, CrossReferenceTableValid, UsedRecovery, RecoveryRoute, käll- och strukturella positioner, sektions- och posträknare, räknare för konflikter och skador, problemtotaler, trunkeringstillstånd och en typad Issues-array. Samma rapport lagras i LastLoadReport
TPdfRepairReport registrerar huruvida källan använde återställning, utdatastorlek och sidantal, utdata-xref-giltighet, avslutande feltext och den fullständiga oberoende verifieringsrapporten från strict-inläsningen
SaveAsRepaired ber PDFium skriva en komplett icke-inkrementell kopia och öppnar sedan den utdatan i en isolerad TPdf med plmStrict. Metoden levererar byte först efter att xref-giltighet och sidantalskonsistens passerar. Filöverlagringen skriver via en tillfällig fil i samma katalog och ersätter målet atomärt
En fullständig omskrivning tar bort tidigare inkrementell historik och ogiltigförklarar befintliga signaturbyteintervall. Signerade dokument förkastas om inte AllowSignedDocument uttryckligen är True. Metoden reparerar strukturer som PDFium kan läsa in och skriva om framgångsrikt; den garanterar inte återställning av godtyckligt skadat innehåll eller bevarande av digitala signaturer
// 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);