PDFium Delphi Component Docs

LoadDocument-metodi

Component: TPdf  ·  Unit: PDFium
Avaa PDF-dokumentin yhteensopivalla, tiukalla tai palautuskäytännöllä ja kirjoittaa haluttaessa itsenäisesti vahvistetun korjatun kopion

Syntax

procedure LoadDocument;

 

procedure LoadDocument(Data: Pointer; Size: NativeUInt; Buffered: Boolean = True);

DataPointer. Osoitin muistissa olevaan raakaan PDF-dataan
SizeNativeUInt. Databufferin koko tavuina
BufferedBoolean. Kun arvo on True (oletus), TPdf säilyttää oman kopionsa. Kun arvo on False, puskurin on pysyttävä voimassa, kunnes dokumentti on vapautettu

 

procedure LoadDocument(const Data: TBytes; Buffered: Boolean = True);

DataTBytes. PDF-tiedoston sisältö tavutaulukkona
BufferedBoolean. Kun arvo on True (oletus), TPdf säilyttää oman kopionsa. Kun arvo on False, tavutaulukon on pysyttävä muuttumattomana ja voimassa, kunnes dokumentti on vapautettu

 

procedure LoadDocument(const Data: TBytes; Index, Count: Integer; Buffered: Boolean = True);

DataTBytes. Taustalla oleva tavutaulukko, joka sisältää PDF-ikkunan
IndexInteger. Nollasta alkava siirros ensimmäisen PDF-tavun kohtaan
CountInteger. Ladattavien PDF-tavujen määrä
BufferedBoolean. Kun arvo on True (oletus), TPdf kopioi vain valitun ikkunan. Kun arvo on False, taustalla olevan tavutaulukon on pysyttävä muuttumattomana ja voimassa, kunnes dokumentti on vapautettu

 

procedure LoadDocument(Data: TMemoryStream; Buffered: Boolean = True);

DataTMemoryStream. PDF-datan sisältävä TMemoryStream
BufferedBoolean. Kun arvo on True (oletus), TPdf säilyttää oman kopionsa. Kun arvo on False, streamin muistin on pysyttävä voimassa, kunnes dokumentti on vapautettu

 

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;

Description

Vanhat overloadit käyttävät yhteensopivaa tilaa ja säilyttävät aiemman toimintansa, mutta julkaisevat natiivin xref:n kelvollisuus- ja palautustilan LastLoadReport-raportin kautta. Parametriton overload lukee polusta, joka on tallennettu FileName-ominaisuuteen. Pointer-, TBytes- ja TMemoryStream-overloadit lataavat suoraan muistissa olevasta datasta ohittaen tiedostojärjestelmän. Tavualueoverload valitsee upotetun PDF:n suuremmasta kontista, protokollakehyksestä tai uudelleenkäytettävästä vastaanottopuskurista luomatta väliaikaista TBytes-leikettä

Kun Buffered on True (oletus), TPdf kopioi annetut tavut säilyttämäänsä puskuriin. Kun arvo on False, kutsujan puskurin on pysyttävä voimassa ja muuttumattomana, kunnes kutsutaan UnloadDocument-metodia tai asetetaan Active := False — tämä välttää ylimääräisen kopion mutta vaatii huolellista elinkaaren hallintaa

Tavualueoverload hylkää negatiiviset arvot, datan pituuden ylittävän Index-arvon sekä Count-arvon, joka ulottuu jäljellä olevien tavujen ohi. Pointer-overload hylkää nil-arvon, kun Size on nollasta poikkeava; TMemoryStream-overload hylkää nil-streamin ennen kuin dokumentin tilaa on muutettu millään tavalla

Onnistuessa Active muuttuu arvoon True ja kaikki sivuominaisuudet vastaavat ensimmäistä sivua (PageNumber = 1). Epäonnistuessa nostetaan EPdfError-poikkeus

Load policies

TPdfLoadOptions.Default tarjoaa rajatut oletusarvot lähdetavuille, ongelmille, xref-osioille, xref-tietueille ja objektinumeroille. PDFium pysyy semanttisena jäsennimenä jokaisessa tilassa; kääreen auditointi on olemassa, koska julkinen PDFium-ABI raportoi xref:n kelvollisuuden mutta ei tarjoa kytkintä, joka poistaisi jäsentimen palautuksen käytöstä

Auditointi seuraa klassisia xref-taulukoita, xref-streameja, hybridiversioita ja /Prev-ketjuja. Se raportoi virheelliset osiot, syklit, ristiriitaiset tietueet, vaurioituneet objektisiirrot, puuttuvat lopetusmerkinnät, tukemattomat stream-suodattimet, budjetin loppumisen ja natiivin palautuksen. Määritetyn auditointibudjetin ylittyminen asettaa AuditComplete-arvoksi False ja tuottaa varoituksen; se ei yksinään väitä, että tarkistamattomat tavut olisivat virheellisiä

InspectAvailability on edelleen kevyt natiivi käytettävyyskysely linearisointiin ja sivu ensin -lataukseen; se ei korvaa rakenteellista latausraporttia

Reports

TPdfLoadReport sisältää Status-, CrossReferenceTableValid-, UsedRecovery- ja RecoveryRoute-kentät, lähteiden ja rakenteiden siirtymät, osio- ja tietuelaskurit, ristiriita- ja vauriolaskurit, ongelmien kokonaismäärät, katkaisutilan sekä tyypitetyn Issues-taulukon. Sama raportti tallennetaan LastLoadReport-ominaisuuteen

TPdfRepairReport kirjaa, käyttikö lähde palautusta, tulosteen koon ja sivumäärän, tulosteen xref-kelvollisuuden, lopullisen virhetekstin sekä täyden itsenäisen tiukan latauksen varmistusraportin

Repaired output

SaveAsRepaired pyytää PDFiumia kirjoittamaan täydellisen ei-inkrementaalisen kopion ja avaa sen jälkeen tulosteen eristetyssä TPdf-instanssissa plmStrict-tilassa. Metodi toimittaa tavut vasta, kun xref-kelvollisuus ja sivumäärän yhtenevyys läpäisevät tarkistuksen. Tiedosto-overload kirjoittaa samassa hakemistossa olevan väliaikaistiedoston kautta ja korvaa kohteen atomisesti

Täydellinen uudelleenkirjoitus poistaa aiemman inkrementaalihistorian ja mitätöi olemassa olevien allekirjoitusten tavualueet. Allekirjoitetut dokumentit hylätään, ellei AllowSignedDocument ole eksplisiittisesti True. Metodi korjaa rakenteet, jotka PDFium pystyy lataamaan ja kirjoittamaan uudelleen onnistuneesti; se ei takaa mielivaltaisen vaurioituneen sisällön palautumista tai digitaalisten allekirjoitusten säilymistä

Example

// Tiedostosta
Pdf.FileName := 'C:\docs\file.pdf';
Pdf.LoadDocument;

// TBytes-datasta
var Bytes: TBytes;
Bytes := TFile.ReadAllBytes('file.pdf');
Pdf.LoadDocument(Bytes);

// PDF suuremman tavutaulukon sisältä
Pdf.LoadDocument(Container, PdfOffset, PdfLength);

// TMemoryStreamistä (ilman puskurointia)
Pdf.LoadDocument(FStream, False);

// Hylkää jäsentimen piilopalautus
Options := TPdfLoadOptions.Default(plmStrict);
Pdf.LoadDocument(Options, Report);

// Kirjoita palautettu dokumentti uudelleen ja varmista itsenäisesti
Pdf.SaveAsRepaired('C:\docs\repaired.pdf', RepairReport);

See Also

Active, FileName, LoadCustomDocument, SaveAs