RepairQDFFile
Felsökning, Dokumentreparation
Beskrivning
Reparerar en QDF-PDF efter att mänskliga redigeringar ändrat strömlängder eller objektbytepositioner
Reparationspasset skannar objektgränser utan att lita på inaktuella korsreferensoffset, räknar om strömlängder, uppdaterar indirekta längdobjekt och bygger om frilistan, korsreferenstabellen, trailern, startxref och /Size
Strömdata som innehåller endstream- och endobj-rader bevaras när objektet har en entydig QDF-strömmarkör. Ogiltiga QDF-indata och upprepade markörer för samma objekt avvisas innan destinationsfilen öppnas, så att en befintlig utdatafil bevaras även vid reparation på plats
Syntax
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 LongParametrar
| InputFileName | The edited QDF PDF |
|---|---|
| OutputFileName | Sökvägen till den reparerade PDF:en, som kan vara identisk med indatasökvägen |
Returvärden
| 1 | Den redigerade QDF-filen reparerades |
|---|---|
| 0 | Indatan var inte en reparerbar QDF eller destinationen kunde inte skrivas |
Fel
LastErrorCode 401 rapporterar ett fel vid inläsning av indata, 107 rapporterar ogiltig eller tvetydig QDF-struktur eller ett annat reparationsfel, och 305 rapporterar ett fel vid skrivning av utdata
Anmärkningar
Hela källan repareras i minnet och skrivs sedan till en temporär fil som skapas exklusivt i målkatalogen. Filen spolas och stängs innan en ersättning på samma volym publicerar resultatet. Misslyckas skrivning, spolning eller ersättning bevaras befintliga byte i målfilen och fel 305 returneras; läsfel på indata returnerar 401
Målkatalogen måste tillåta skapande av temporära filer och ersättning. Windows-mål som är skrivskyddade eller öppnats utan delete-delning kan inte ersättas. Befintliga DACL-behörigheter på målet kopieras till den temporära filen innan några reparerade data skrivs; otillgängliga behörigheter, ett mål utan explicit DACL eller ett EFS-krypterat mål ger fel 305. En lyckad ersättning skapar en ny filidentitet och bevarar inte alternativa dataströmmar eller vanliga filattribut. Temporära filer tas bort både efter normalt lyckat resultat och efter fel; abrupt processterminering kan lämna kvar en temporär fil. Detta API garanterar inte att resultatet överlever strömavbrott eller samtidiga ändringar från en annan skrivprocess