RepairQDFFile

Hibás Az új oldalak teljes száma a dokumentumban

Leírás

Egy QDF PDF-et javít azután, hogy emberi szerkesztés megváltoztatta az adatfolyamok hosszát vagy az objektumok bájtpozícióit

A javítási menet elavult kereszt-referenciaeltolásokban nem bízva vizsgálja az objektumhatárokat, újraszámítja az adatfolyamhosszokat, frissíti a közvetett hosszobjektumokat, és újraépíti a szabadlistát, a kereszt-referenciatáblát, a trélert, a startxref és a /Size elemet

Az endstream és endobj sorokat tartalmazó adatfolyamtartalom megőrződik, ha az objektum egyértelmű QDF adatfolyamjelölővel rendelkezik. Az érvénytelen QDF-bemenet és az ugyanazon objektumhoz tartozó ismétlődő jelölők elutasításra kerülnek a célfájl megnyitása előtt, így a létező kimeneti fájl a helyben végzett javítás során is megmarad

Szintaxis

Delphi

Function TPDFlib.RepairQDFFile(Const InputFileName, OutputFileName: WideString): Integer;

DLL

int DLRepairQDFFile(int InstanceID, const wchar_t* InputFileName, const wchar_t* OutputFileName);

ActiveX

Function PDFlib::RepairQDFFile(InputFileName As String, OutputFileName As String) As Long

Paraméterek

InputFileNameA szerkesztett QDF PDF
OutputFileNameA javított PDF elérési útja, amely megegyezhet a bemeneti elérési úttal

Visszatérési értékek

1A szerkesztett QDF helyreállítva
0A bemenet nem javítható QDF volt, vagy a célhelyre nem lehetett írni

Hibák

A LastErrorCode 401 bemenetolvasási hibát jelez, a 107 érvénytelen vagy nem egyértelmű QDF-struktúrát vagy egyéb javítási hibát, a 305 pedig kimenetírási hibát

Megjegyzések

A teljes forrás javítása a memóriában történik, majd az eredmény a célkönyvtárban kizárólagos megnyitással létrehozott átmeneti fájlba íródik. A fájlt a rendszer kiüríti és lezárja, mielőtt egy azonos köteten belüli csere közzéteszi az eredményt. Ha az írás, a kiürítés vagy a csere meghiúsul, a cél meglévő bájtjai megmaradnak, és a visszatérési hibakód 305; a bemenet olvasási hibái 401-et adnak vissza

A célkönyvtárnak lehetővé kell tennie átmeneti fájlok létrehozását és cseréjét. A csak olvasható Windows-célfájlok, illetve a törlésmegosztás nélkül megnyitottak nem cserélhetők. A cél meglévő DACL-jogosultságai még a javított adatok kiírása előtt átmásolódnak az átmeneti fájlba; 305-ös hibát okoz az elérhetetlen jogosultság, az explicit DACL nélküli cél vagy az EFS-sel titkosított cél. A sikeres csere új fájlidentitást hoz létre, és nem őrzi meg az alternatív adatfolyamokat sem a normál fájlattribútumokat. Az átmeneti fájlok normál siker vagy hiba után eltávolításra kerülnek; a folyamat hirtelen megszakadása hátrahagyhat egyet. Ez az API nem garantálja az áramkimaradás vagy egy másik író egyidejű módosításainak túlélését