FPdfDiff, CompareWith tarafından kullanılan sayfa hizalama, UTF-16 metin değişiklikleri ve bağlantılı görsel bölgeleri uygular
AlignPdfDiffPages, sınırlı bir en uzun ortak alt dizi üzerinden birebir metin, geometri ve görsel parmak izlerini eşleştirir; kalan birebir eşleşmeleri taşıma olarak tanımlar ve eşleşmeyen boşlukları değişiklik olarak eşler
Yinelenen sayfalar belirleyici biçimde eşleştirilir; aynı anda hem taşınıp hem değişen bir sayfanın taşıma olarak tanımlanacağı garanti edilmez
BuildPdfDiffTextChanges, sıfır tabanlı UTF-16 ofsetlerini ve uzunluklarını bildirir; karakter modu vekil çiftleri birlikte tutar, kelime modu ise boşlukları diğer karakterlerden ayrı gruplar
BuildPdfDiffPixelRegions, bağlantılı değişmiş döşemleri sağ/alt dışlayıcı piksel dikdörtgenleri halinde gruplar; bu bölgeler bir döşemenin içindeki değişmemiş pikselleri içerebilir
Hizalama, taraf başına en çok 4.096 sayfa ve 16.777.216 hücre kabul eder; metin ise en çok 65.536 belirteç ve 16.777.216 UTF-16 birimi kabul eder ve seçilen ayrıntı bütçeleri tükendiğinde açıkça kısaltır
type
TPdfDiffPageKind= (dpkMatched, dpkModified, dpkMoved, dpkInserted, dpkDeleted);
TPdfDiffTextMode= (dtmNone, dtmCharacters, dtmWords);
TPdfDiffPageSignature= record
Text: WideString;
VisualHash: UInt64;
Width, Height: Single;
Rotation: Integer;
end;
TPdfDiffPageSignatures= array of TPdfDiffPageSignature;
TPdfDiffPagePair= record
LeftPageIndex, RightPageIndex: Integer;
Kind: TPdfDiffPageKind;
end;
TPdfDiffPagePairs= array of TPdfDiffPagePair;
// Offsets and lengths count UTF-16 code units, starting at zero
TPdfDiffTextChange= record
LeftStart, LeftLength, RightStart, RightLength: Integer;
end;
TPdfDiffTextChanges= array of TPdfDiffTextChange;
TPdfDiffPixelRegion= record
Left, Top, Right, Bottom: Integer;
end;
TPdfDiffPixelRegions= array of TPdfDiffPixelRegion;
function AlignPdfDiffPages(const Left, Right: TPdfDiffPageSignatures;
MaxCells: Integer): TPdfDiffPagePairs;
function BuildPdfDiffTextChanges(const Left, Right: WideString;
Mode: TPdfDiffTextMode; MaxCells, MaxTokens: Integer;
out Truncated: Boolean): TPdfDiffTextChanges;
function BuildPdfDiffPixelRegions(const Mask: TBytes; Width, Height,
TileSize, MaxRegions: Integer; out Truncated: Boolean): TPdfDiffPixelRegions;