Contractvergelijking

HPDFContractCompare vergelijkt de semantische tekst en regelgeometrie van twee geladen PDF-documenten, lijnt alinea's uit en geeft auditbare insert-, delete-, replace- en move-records terug

Gebruik deze helper voor formulering- en clausulereview, en gebruik THPDFDocComparison voor pagina-, object- en weergaveverschillen

Geladen contracten vergelijken

uses HPDFDoc, HPDFTypes, HPDFContractCompare;

Options := HPDFDefaultContractCompareOptions;
Options.Granularity := ccgWord;
BeforePDF.LoadFromFile('contract-before.pdf');
AfterPDF.LoadFromFile('contract-after.pdf');
if HPDFCompareContracts(BeforePDF, AfterPDF, Options, Report, Token) then
begin
  HTML := HPDFContractReviewHTML(Report, 'Services agreement review',
    8388608, Token);
  HPDFSaveContractAnnotatedPDF('contract-before.pdf',
    'contract-before-review.pdf', Report, ccsBefore, Token);
  HPDFSaveContractAnnotatedPDF('contract-after.pdf',
    'contract-after-review.pdf', Report, ccsAfter, Token);
end;

Sla de teruggegeven HTML op als UTF-8 en bekijk Report.Status en Report.Note wanneer de vergelijkfunctie false teruggeeft

Alinea-uitlijning en wijzigingen

Pagina- en geometrieverwijzingen

PageIndex en ParagraphIndex zijn zero-based, terwijl CharacterStart een one-based UTF-16-positie binnen de witruimte-genormaliseerde alinea is

Een afwezige kant van een insertie of deletie van een hele alinea heeft pagina- en alineaindices van -1, en een token-insertie of -deletie binnen een gematchte alinea behoudt een zerolengtepositie aan de tegenoverliggende kant

Elke rechthoek draagt zijn eigen pagina-index en bedekt een snijdende semantische regel in de PDF-gebruikersruimte, en een alinea die over pagina's doorloopt kan rechthoeken op meerdere pagina's hebben

Locaties beschrijven regeldekking in plaats van exacte karaktervierhoeken, dus een geannoteerde PDF kan dezelfde regel highlighten voor meerdere onafhankelijke woordwijzigingen

Terugkerende vaste pagina-elementen en boilerplate uitsluiten

De defaults sluiten matchende semantische regels uit die in de bovenste of onderste 54 points op ten minste twee verschillende pagina's van elke invoer voorkomen, en normaliseren margecijfers zodat herhaalde paginanummers kunnen matchen

De before- en after-documenten worden onafhankelijk gefilterd, en herhalingen in de hoofdtekst blijven vergelijkbaar, ongeacht hoe vaak ze voorkomen

Options.IgnoreRepeatedHeadersFooters := False;
Options.NormalizeMarginDigits := False;
Options.HeaderMarginPoints := 40;
Options.FooterMarginPoints := 35;
SetLength(Options.ExcludedLineTexts, 1);
Options.ExcludedLineTexts[0] :=
  'The parties shall maintain an accurate register of approved subcontractors.';

ExcludedLineTexts verwijdert een complete semantische regel op letterlijke gelijkheid na witruimtenormalisatie, respecteert IgnoreCase en interpreteert nooit reguliere expressies of substringpatronen

Kies marges en uitsluitingen bewust, want datums of andere contractuele tekst binnen een uitgesloten terugkerende margeregel vallen buiten de formuleringreview

Budgetten en annulering

OptieStandaardBereik
MaxPages500Per document
MaxParagraphs4000Per document, na uitsluitingen
MaxSemanticLines50000Gecombineerde semantische regels vóór snapshots en uitsluitingen
MaxCharacters2000000Gecombineerde geëxtraheerde regeltekst vóór uitsluitingen
MaxTokens200000Gecombineerde woordtokens en, in zinmodus, zinstokens
MaxDifferences10000Teruggegeven records, inclusief moves
MaxAlignmentCells2000000Cumulatieve tokenmatrices van gewijzigde alinea's
MaxWorkUnits50000000Extractieboekhouding en uitlijningswerk

Een budgetlimiet geeft ccsBudgetExceeded terug en annulering geeft ccsCancelled, waarbij gedeeltelijke bevindingen voor diagnose behouden blijven en in HTML als incompleet worden gemarkeerd

Annulering wordt gecontroleerd tussen pagina-extracties en doorlopend in de uitlijningslussen van de bibliotheek, terwijl de onderliggende single-page semantische extractor synchroon blijft

ccsInvalidInput rapporteert ontbrekende documenten, ongeldige enum-ordinalen of ongeldige opties, en ccsExtractionFailed rapporteert pagina's zonder extraheerbare tekst of met een gefaalde semantische extractie

OCR of expliciete verwijdering van blanco pagina's is vereist vóór het vergelijken van pagina's zonder extraheerbare tekst, en ccsComplete certificeert uitsluitend de voltooiing van deze tekstvergelijking

Review-artefacten

HPDFContractReviewHTML geeft een standalone document terug met geëscapete titel, messages, tekst, volledige alineacontexten, wijzigingstypen en beide bronlocaties, met standaard een uitvoerlimiet van 8388608 UTF-16-tekens

De HTML-exporter gooit EHPDFContractCompareBudget wanneer diens uitvoer de geconfigureerde limiet overschrijdt, en diens annuleringstoken gooit EHPDFOperationCancelled

HPDFSaveContractAnnotatedPDF vereist een voltooid rapport, laadt een apart brondocument en controleert elke semantische pagina-snapshot, inclusief diens exacte regelgeometrie, voordat highlights met genummerde review-opmerkingen worden toegevoegd

Geef verschillende bron- en uitvoerpaden op, kies ccsBefore of ccsAfter en exporteer beide versies wanneer je deleties en inserties van hele alinea's samen wilt reviewen

Onder Windows worden de identiteiten van bron- en uitvoerbestand gecontroleerd om hard-link- of andere aliassen van het bronbestand af te wijzen

De PDF-exporter zet AutoLaunch uit, laat de invoerdocumenten en het bronbestand onaangetast en controleert annulering vóór het laden, tussen pagina's en wijzigingen en vóór het opslaan

Deze helper vergelijkt geëxtraheerde formulering en layoutverwijzingen zonder juridische betekenis af te leiden, gescande tekst te herkennen of het juridische effect van een revisie te certificeren

Gerelateerde API's

HPDFCompareContracts · THPDFContractCompareOptions · THPDFContractCompareReport · HPDFContractReviewHTML · HPDFSaveContractAnnotatedPDF