Avtalsjämförelse
HPDFContractCompare jämför semantisk text och radgeometri i två inlästa PDF-dokument, parkopplar paragrafer och returnerar granskningsbara insert-, delete-, replace- och move-poster
Använd den här hjälparen för formulering- och klausulgranskning, och använd THPDFDocComparison för sid-, objekt- och renderingsskillnader
Jämför inlästa avtal
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;
Spara det returnerade HTML:et som UTF-8 och granska Report.Status och Report.Note när jämförelsefunktionen returnerar false
Paragrafparkoppling och ändringar
- Semantiska rader grupperas med sid-, kolumn-, list- eller rubrikgränser och konfigurerbara baseline-avstånd, med blanksteg normaliserade mellan rader
- Exakta paragrafer parkopplas först, och upprepade identiska brödtextklausuler behåller förekomstordning och multiplicitet
- Ändrade paragrafer matchas via en konfigurerbar multiset-poäng för ordlikhet, oberoende av vald skillnadsgranularitet
- En längsta ökande sekvens av parkopplade paragrafer identifierar omordning utan att rapportera vanliga indexskiften från insättningar och borttagningar som flyttningar
- Ändrade matchade paragrafer använder en avgränsad tokenjustering för att returnera insert-, delete- eller replace-poster med båda fullständiga paragrafsammanhangen
- Ordsläge skiljer skiljetecken från ord, och meningsläge använder avslutande punkt, utropstecken eller frågetecken följt av blanksteg eller paragrafens slut
- Meningsgränser är lexikala och kan dela förkortningar eller numrerade klausuletiketter, så ordsläge är standard för exakt juridisk formuleringgranskning
JoinPageContinuationssammanfogar konservativt en ofullständig paragraf nära botten av en sida med en vanlig paragraf nära toppen av nästa sida, och anropare kan inaktivera den här layoutheuristiken
Sid- och geometrireferenser
PageIndex och ParagraphIndex är nollbaserade, medan CharacterStart är en ettbaserad UTF-16-position inom den blankstegsnormaliserade paragrafen
Hos en helparagrafsinsättning eller -borttagning har den frånvarande motparten sid- och paragrafindex -1, och en tokeninsättning eller -borttagning inuti en matchad paragraf behåller en nollängdsposition på motpartssidan
Varje rektangel bär sitt eget sidindex och täcker en skärande semantisk rad i PDF-användarrymd, och en paragraf som spänner över sidor kan ha rektanglar på flera sidor
Platser beskriver radtäckning i stället för exakta teckenfyrhörningar, så en annoterad PDF kan markera samma rad för flera oberoende ordändringar
Undanta återkommande siddekorationer och boilerplate
Standardinställningarna undantar matchande semantiska rader som förekommer i de översta eller understa 54 punkterna på minst två olika sidor i respektive indata, och normaliserar marginalsiffror så att upprepade sidnummer kan matcha
Före- och efterdokumenten filtreras oberoende, och upprepningar i brödtexten förblir jämförbara oavsett hur många gånger de förekommer
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 tar bort en hel semantisk rad genom exakt likhet efter blankstegsnormalisering, respekterar IgnoreCase och tolkar aldrig reguljära uttryck eller delfrasmönster
Välj marginaler och undantag med eftertanke, eftersom datum eller annan avtalstext inuti en undantagen återkommande marginalrad utelämnas från formuleringgranskningen
Budgeter och avbrott
| Alternativ | Standardvärde | Omfattning |
|---|---|---|
MaxPages | 500 | Varje dokument |
MaxParagraphs | 4000 | Varje dokument efter undantag |
MaxSemanticLines | 50000 | Kombinerade semantiska rader före ögonblicksbilder och undantag |
MaxCharacters | 2000000 | Kombinerad extraherad radtext före undantag |
MaxTokens | 200000 | Kombinerade ordtokens och, i meningsläge, meningstokens |
MaxDifferences | 10000 | Returnerade poster, inklusive flyttningar |
MaxAlignmentCells | 2000000 | Kumulativa tokenmatriser för ändrade paragrafer |
MaxWorkUnits | 50000000 | Extraheringsbokföring och justeringsarbete |
En budgetgräns returnerar ccsBudgetExceeded och avbrott returnerar ccsCancelled, med partiella fynd bevarade för diagnos och markerade som ofullständiga i HTML:et
Avbrott kontrolleras mellan sidextraktioner och genom hela biblioteksägda justeringsslingor, medan den underliggande ensidiga semantiska extraktorn förblir synkron
ccsInvalidInput rapporterar saknade dokument, ogiltiga enum-ordinaler eller ogiltiga alternativ, och ccsExtractionFailed rapporterar sidor utan extraherbar text eller misslyckad semantisk extraktion
OCR eller explicit borttagning av tomma sidor krävs innan sidor utan extraherbar text jämförs, och ccsComplete intygar fullbordandet av endast denna textjämförelse
Granskningsartefakter
HPDFContractReviewHTML returnerar ett fristående dokument med escape:ad titel, meddelanden, text, fullständiga paragrafsammanhang, ändringstyper och båda källplatserna, med en utdatagräns på 8388608 UTF-16-tecken som standard
HTML-exporteraren utlöser EHPDFContractCompareBudget när dess utdata överskrider den konfigurerade gränsen, och dess avbrottstoken utlöser EHPDFOperationCancelled
HPDFSaveContractAnnotatedPDF kräver en fullbordad rapport, läser in ett separat källdokument och kontrollerar varje semantisk sidögonblicksbild inklusive dess exakta radgeometri innan markeringar med numrerade granskningskommentarer läggs till
Ange olika käll- och utdatasökvägar, välj ccsBefore eller ccsAfter och exportera båda versionerna när du behöver granska helparagrafsborttagningar och -insättningar tillsammans
På Windows kontrolleras käll- och utdatafilernas identiteter för att avvisa hårdlänk- eller andra alias av källfilen
PDF-exporteraren inaktiverar AutoLaunch, lämnar indatadokumenten och källfilen oförändrade och kontrollerar avbrott före inläsning, mellan sidor och ändringar samt före sparande
Den här hjälparen jämför extraherade formuleringar och layoutreferenser utan att härleda juridisk innebörd, känna igen skannad text eller intyga en reviderings juridiska verkan
Relaterade API:er
HPDFCompareContracts · THPDFContractCompareOptions · THPDFContractCompareReport · HPDFContractReviewHTML · HPDFSaveContractAnnotatedPDF