THotPDF.PreviewLoadedPageTextReplacement Method

Förbereder ersättningstext med inbäddade Unicode-typsnitt, mäter varje träff och returnerar en granskningsbar plan utan att ändra det inlästa dokumentet

function PreviewLoadedPageTextReplacement(PageIndex: Integer;
  const Needle, Replacement: UnicodeString; MatchCase: Boolean;
  const Options: THPDFLoadedTextReplacementOptions;
  out Plan: THPDFLoadedTextReplacementPlan): Boolean;

Alternativ och resultat

THPDFLoadedTextReplacementOptions.Default använder Arial, träffens ursprungliga teckenstorlek, dess uppmätta bredd och en höjd på 1,25 gånger den storleken, med atomär avvisning aktiverad

Appearance väljer typsnitt, stil, färg, justering och utfyllnad; UseMatchFontSize=False använder den begärda storleken, medan positiva BoxWidth och BoxHeight ger en explicit radbrytningsruta

Appearance.OverflowPolicy väljer ltopReject, ltopClip eller ltopShrinkToFit; clipping behåller bara den text som ryms, och shrink-to-fit stannar vid MinFontSize

THPDFLoadedTextReplacementPlan bär begäran, alternativen, källfingeravtrycket, räknarna och THPDFLoadedTextReplacementResults-arrayen

Varje THPDFLoadedTextReplacementResult rapporterar glyfindex, ursprunglig position, rutmått, effektiv teckenstorlek och ett THPDFLoadedTextReplacementStatus-värde: ltrsReady, ltrsApplied, ltrsRejected eller ltrsRolledBack, med en orsak till avvisning eller återrullning

MaxMatches, MaxGlyphs, MaxContentTokens, MaxContentBytes, MaxGeneratedBytes och utseendets textgräns begränsar källtolkning, utdata och kopierade typsnittsresurser

Geometri och atomitet

Den genererade ersättningen använder dokumentets typsnittsreservkedjor, ShapingFeatures, automatiska shaping-brytare samt GSUB-skript- och språkval; konfigurera dessa före förhandsgranskningen och behåll samma inställningar när planen appliceras

Varje ersättningsutseende begränsar distinkta shaping-typsnittsval till 256 och kumulativa råa typsnittsdata till 64 MiB, utöver begärans tolknings- och genererad-utdata-budgeter

Ersättningen byter typsnitt inom den ursprungliga textströmmen, håller omgivande text sökbar och återställer den ursprungliga penn- och radmatrisen så att efterföljande glyfer och radövergångar behåller sina positioner

Direkt sidtext med horisontell, icke-singulär geometri stöds, inklusive sidtransformer, textskalning, rise, TJ, enkel-/dubbelfnuttsoperatorer och träffar över angränsande operander på samma baslinje

Träffar över baslinjer, vertikal skrivning, singulära transformer, obalanserat innehåll, saknade glyfer och dokument med signaturfält avvisas; text inuti Form-XObjects ligger utanför detta API:s träffomfång

Med Atomic=True rullar en avvisad träff tillbaka alla klara träffar; med Atomic=False kan klara träffar appliceras medan avvisade träffar lämnas oförändrade, och det booleska resultatet förblir False när någon träff avvisades

Förhandsgranskningen använder och rullar tillbaka en kapslad graftransaktion och bevarar en befintlig anropartransaktion; den kan ogiltigförklara dokumentcachor och utlösa dokumentändringsnotisen även om innehållet återställs

Applicering

Skicka planen till ApplyLoadedPageTextReplacement för att validera dess innehålls- och glyfmetrikfingeravtryck på nytt innan begäran appliceras i en graftransaktion

Beräkna om planen efter innehållsändringar; en inaktuell plan kastar EInvalidOpException utan att applicera sina ersättningar

Options := THPDFLoadedTextReplacementOptions.Default;
Options.Appearance.OverflowPolicy := ltopShrinkToFit;
if PDF.PreviewLoadedPageTextReplacement(0, 'Original', NewText,
  True, Options, Plan) then
  if PDF.ApplyLoadedPageTextReplacement(Plan, Applied) then
    PDF.SaveLoadedDocument(TargetPath);