PDFium Delphi Component Docs

Begrænsede hjælpere til PDF-sammenligning

FPdfDiff implementerer sidealignment, UTF-16-tekstændringer og sammenhængende visuelle områder til CompareWith

AlignPdfDiffPages parrer nøjagtige tekst-, geometri- og visuelle fingerprints via en begrænset longest common subsequence; resterende eksakte matches findes derefter som flytninger, og uparrede mellemrum parres som ændringer

Dubletsider parres deterministisk; en side, som både flyttes og ændres, er ikke garanteret at blive genkendt som flyttet

BuildPdfDiffTextChanges rapporterer nulbaserede UTF-16-offsets og længder; character mode holder surrogate pairs samlet, mens word mode grupperer whitespace separat fra andre tegn

BuildPdfDiffPixelRegions samler forbundne ændrede tiles i pixelrektangler med eksklusiv højre- og bundgrænse; områderne kan indeholde uændrede pixels inden i en tile

Alignment accepterer højst 4,096 sider pr. side og 16,777,216 celler; tekst accepterer højst 65,536 tokens og 16,777,216 UTF-16-enheder og rapporterer eksplicit truncation, når de valgte detailgrænser er opbrugt

Offentlige deklarationer

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;