Poređenje ugovora
HPDFContractCompare poredi semantički tekst i geometriju redova dva učitana PDF dokumenta, poravnava pasuse i vraća revizibilne record-e za umetanje, brisanje, zamenu i pomeranje
Ovaj helper koristite za pregled formulacija i klauzula, a THPDFDocComparison za razlike stranica, objekata i rendera
Poređenje učitanih ugovora
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;
Sačuvajte vraćeni HTML u UTF-8 i pogledajte Report.Status i Report.Note kada poredbena funkcija vrati false
Poravnanje pasusa i izmene
- Semantički redovi se grupišu pomoću granica stranice, kolone, liste ili naslova i podesivih baseline razmaka, uz normalizaciju whitespace-a između redova
- Identični pasusi se prvo uparuju, a ponovljene iste sadržajne klauzule zadržavaju redosled pojava i multiplicitet
- Izmenjeni pasusi uparuju se podesivom ocenom sličnosti reči nad multiskupovima, nezavisno od izabrane granularnosti razlika
- Najduži rastući niz uparenih pasusa prepoznaje promenu redosleda, dok obična pomeranja indeksa od umetanja i brisanja ne prijavljuje kao pomeranja
- Izmenjeni upareni pasusi koriste ograničeno poravnanje tokena da vrate record-e za umetanje, brisanje ili zamenu sa oba kompletna konteksta pasusa
- Režim reči odvaja interpunkciju od reči, a režim rečenica koristi završnu tačku, uzvičnik ili upitnik iza kog sledi whitespace ili kraj pasusa
- Granice rečenica su leksičke i mogu preseći skraćenice ili numerisane oznake klauzula, pa je režim reči podrazumevan za precizan pregled pravne formulacije
JoinPageContinuationskonzervativno spaja nedovršen pasus pri dnu jedne stranice sa običnim pasusom pri vrhu sledeće, a pozivaoci mogu isključiti ovu heuristiku rasporeda
Reference stranica i geometrije
PageIndex i ParagraphIndex su zero-based, dok je CharacterStart one-based UTF-16 pozicija unutar pasusa sa normalizovanim whitespace-om
Odsutna strana umetanja ili brisanja celog pasusa ima indekse stranice i pasusa -1, a umetanje ili brisanje tokena unutar uparenog pasusa zadržava poziciju dužine nula na suprotnoj strani
Svaki pravougaonik nosi sopstveni indeks stranice i pokriva jedan presečeni semantički red u PDF korisničkom prostoru, a pasus koji prelazi preko stranica može imati pravougaonike na više stranica
Lokacije opisuju pokrivenost reda, a ne tačne četvorougle znakova, pa anotirani PDF može da istakne isti red za nekoliko nezavisnih izmena reči
Isključivanje ponavljajućih elemenata stranice i boilerplate-a
Podrazumevano se isključuju poklapani semantički redovi koji se pojavljuju u gornjih ili donjih 54 point-a na najmanje dve različite stranice svakog ulaza, a cifre na marginama se normalizuju da se ponovljeni brojevi stranica mogu poklopiti
Dokumenti pre i posle filtriraju se nezavisno, a ponavljanja u glavnom sadržaju ostaju podobna za poređenje bez obzira na to koliko puta se pojave
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 uklanja kompletan semantički red po literalnoj jednakosti nakon normalizacije whitespace-a, poštuje IgnoreCase i nikada ne tumači regularne izraze ni obrasce po podstringu
Margine i isključenja birajte pažljivo, jer se datumi ili drugi ugovorni tekst unutar isključenog ponavljajućeg margin reda izostavljaju iz pregleda formulacije
Budžeti i otkazivanje
| Opcija | Podrazumevano | Opseg |
|---|---|---|
MaxPages | 500 | Svaki dokument |
MaxParagraphs | 4000 | Svaki dokument posle isključenja |
MaxSemanticLines | 50000 | Zbirni semantički redovi pre snimaka i isključenja |
MaxCharacters | 2000000 | Zbirni izdvojeni tekst redova pre isključenja |
MaxTokens | 200000 | Zbirni tokeni reči i, u režimu rečenica, tokeni rečenica |
MaxDifferences | 10000 | Vraćeni record-i, uključujući pomeranja |
MaxAlignmentCells | 2000000 | Kumulativne token matrice izmenjenih pasusa |
MaxWorkUnits | 50000000 | Evidencija izdvajanja i rad poravnanja |
Dosezanje granice budžeta vraća ccsBudgetExceeded, a otkazivanje ccsCancelled, pri čemu se delimični nalazi zadržavaju za dijagnostiku i u HTML-u označavaju kao nepotpuni
Otkazivanje se proverava između izdvajanja stranica i kroz sve poravnavajuće petlje u vlasništvu biblioteke, dok osnovni semantički izdvač za jednu stranicu ostaje sinhron
ccsInvalidInput prijavljuje dokumente koji nedostaju, neispravne enum ordinale ili neispravne opcije, a ccsExtractionFailed stranice bez izdvojivog teksta ili neuspelo semantičko izdvajanje
Za poređenje stranica bez izdvojivog teksta potreban je OCR ili eksplicitno uklanjanje praznih stranica, a ccsComplete potvrđuje samo dovršenost ovog poređenja teksta
Artefakti za pregled
HPDFContractReviewHTML vraća samostalan dokument sa escape-ovanim naslovom, porukama, tekstom, kompletnim kontekstima pasusa, vrstama izmena i obe izvorne lokacije, uz podrazumevano ograničenje izlaza od 8388608 UTF-16 znakova
HTML eksporter podiže EHPDFContractCompareBudget kada izlaz prekorači konfigurisano ograničenje, a njegov token za otkazivanje podiže EHPDFOperationCancelled
HPDFSaveContractAnnotatedPDF zahteva dovršen izveštaj, učitava odvojen izvorni dokument i proverava svaki semantički snimak stranice uključujući tačnu geometriju redova pre dodavanja isticanja sa numerisanim komentarima za pregled
Navedite različite izvorne i izlazne putanje, izaberite ccsBefore ili ccsAfter i izvezite obe verzije kada treba zajedno da pregledate brisanja i umetanja celih pasusa
Na Windows-u identiteti izvorne i izlazne datoteke proveravaju se da bi se odbili hard-link ili drugi alias-i izvorne datoteke
PDF eksporter isključuje AutoLaunch, ostavlja ulazne dokumente i izvornu datoteku nepromenjene i proverava otkazivanje pre učitavanja, između stranica i izmena i pre čuvanja
Ovaj helper poredi izdvojene formulacije i reference rasporeda bez izvođenja pravnog značenja, prepoznavanja skeniranog teksta ili potvrđivanja pravnog dejstva revizije
Povezani API-ji
HPDFCompareContracts · THPDFContractCompareOptions · THPDFContractCompareReport · HPDFContractReviewHTML · HPDFSaveContractAnnotatedPDF