Kontractsammenligning

HPDFContractCompare sammenligner den semantiske tekst og linjegeometrien i to indlæste PDF-dokumenter, justerer afsnit og returnerer reviderbare insert-, delete-, replace- og move-records

Brug denne helper til gennemgang af formuleringer og klausuler, og brug THPDFDocComparison til side-, objekt- og renderede forskelle

Sammenlign indlæste kontrakter

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;

Gem det returnerede HTML som UTF-8, og undersøg Report.Status og Report.Note, når sammenligningsfunktionen returnerer false

Afsnitsjustering og ændringer

Side- og geometrireferencer

PageIndex og ParagraphIndex er nulbaserede, mens CharacterStart er en 1-baseret UTF-16-position inden i det whitespace-normaliserede afsnit

En fraværende side af en helafsnits-indsættelse eller -sletning har side- og afsnitsindeks -1, og en token-indsættelse eller -sletning inden i et matchet afsnit bevarer en position med længden nul på den modsatte side

Hvert rektangel bærer sit eget sideindeks og dækker en skærende semantisk linje i PDF-brugerrummet, og et afsnit, der spænder over sider, kan have rektangler på flere sider

Lokationer beskriver linjedækning frem for præcise tegnkvadrilateraler, så en annoteret PDF kan fremhæve samme linje for flere uafhængige ordændringer

Udelad tilbagevendende sideelementer og boilerplate

Standardværdierne udelader matchende semantiske linjer, der optræder inden for de øverste eller nederste 54 punkter på mindst to forskellige sider af hvert input, og normaliserer margin-cifre, så gentagne sidetal kan matche

Før- og efterdokumenterne filtreres uafhængigt, og gentagelser i brødteksten forbliver kvalificerede til sammenligning uanset hvor mange gange de optræder

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 fjerner en komplet semantisk linje ved bogstavelig lighed efter whitespace-normalisering, respekterer IgnoreCase og fortolker aldrig regulære udtryk eller substring-mønstre

Vælg marginer og udeladelser bevidst, fordi datoer eller anden kontrakttekst inde i en udeladt tilbagevendende marginlinje udelades fra gennemgangen af formuleringer

Budgetter og annullering

TilvalgStandardOmfang
MaxPages500Hvert dokument
MaxParagraphs4000Hvert dokument efter udeladelser
MaxSemanticLines50000Kombinerede semantiske linjer før snapshots og udeladelser
MaxCharacters2000000Kombineret udtrukket linjetekst før udeladelser
MaxTokens200000Kombinerede ord- og, i sætningstilstand, sætningstokens
MaxDifferences10000Returnerede records, inklusive moves
MaxAlignmentCells2000000Kumulative token-matricer for ændrede afsnit
MaxWorkUnits50000000Udtræksbogholderi og alignment-arbejde

En budgetgrænse returnerer ccsBudgetExceeded, og annullering returnerer ccsCancelled, med delvise fund gemt til diagnostik og markeret som ufuldstændige i HTML

Annullering tjekkes mellem sideudtræk og gennem hele biblioteksejet alignment-arbejde, mens den underliggende enkeltside-semantiske ekstraktor forbliver synkron

ccsInvalidInput rapporterer manglende dokumenter, ugyldige enum-ordinals eller ugyldige tilvalg, og ccsExtractionFailed rapporterer sider uden udtrækkelig tekst eller fejlet semantisk udtræk

OCR eller eksplicit fjernelse af tomme sider kræves, før sider uden udtrækkelig tekst sammenlignes, og ccsComplete attesterer kun fuldførelsen af denne tekstsammenligning

Review-artefakter

HPDFContractReviewHTML returnerer et selvstændigt dokument med escaped titel, beskeder, tekst, fulde afsnitskontekster, ændringstyper og begge kildelokationer, med en outputgrænse på 8388608 UTF-16-tegn som standard

HTML-eksportøren udløser EHPDFContractCompareBudget, når dens output overskrider den konfigurerede grænse, og dens cancellation token udløser EHPDFOperationCancelled

HPDFSaveContractAnnotatedPDF kræver en fuldført rapport, indlæser et separat kildedokument og tjekker hvert semantisk side-snapshot inklusive dets præcise linjegeometri, før der tilføjes fremhævninger med nummererede review-kommentarer

Angiv forskellige kilde- og outputstier, vælg ccsBefore eller ccsAfter, og eksportér begge versioner, når du skal gennemgå helafsnits-sletninger og -indsættelser sammen

På Windows tjekkes kilde- og outputfilidentiteter for at afvise hardlink- eller andre aliasser af kildefilen

PDF-eksportøren deaktiverer AutoLaunch, lader inputdokumenter og kildefil stå uændrede og tjekker annullering før indlæsning, mellem sider og ændringer samt før gemning

Denne helper sammenligner udtrukne formuleringer og layoutreferencer uden at udlede juridisk betydning, genkende skannet tekst eller attestere en revisions juridiske effekt

Relaterede API'er

HPDFCompareContracts · THPDFContractCompareOptions · THPDFContractCompareReport · HPDFContractReviewHTML · HPDFSaveContractAnnotatedPDF