Cum să redactați conținut PDF în TypeScript

Cum să redactați conținut PDF în TypeScript

Acest ghid arată cum să redactați conținut PDF cu Aspose.PDF FOSS pentru TypeScript. Page.AddRedact() marchează o regiune; Page.ApplyRedactions() rescrie în mod distructiv fluxul de conținut astfel încât glifele de sub fiecare regiune marcată dispar. Marcajele lăsate neaplicate rămân ca adnotări obișnuite, selectabile pentru copiere. Necesită Node.js 22 sau o versiune ulterioară.

Ghid pas cu pas

Pasul 1: Instalați pachetul

git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build

Verificați instalarea importând clasa Document într-un fișier nou TypeScript — această linie ar trebui să se rezolve fără eroare odată ce pachetul este instalat:

import { Document } from '@asposefoss/pdf';

Pasul 2: Importați clasele necesare

Importă Document pentru a deschide fișierul; AddRedact() și ApplyRedactions() sunt apelate direct pe instanțele Page pe care le returnează:

import { Document } from '@asposefoss/pdf';

Pasul 3: Marchează o regiune pentru redactare

Page.AddRedact(opts) trasează un RedactAnnotation peste rect. fill stabilește culoarea pictată peste regiune odată aplicată, iar overlayText (cu align, fontSize, textColor) tipărește o etichetă de înlocuire, cum ar fi [REDACTED]:

const doc = Document.OpenFile('memo.pdf');
const page = doc.Pages[0];

page.AddRedact({
  rect: [216, 548, 460, 566],
  fill: [0, 0, 0],
  overlayText: '[REDACTED]',
  align: 'center',
  fontSize: 9,
  textColor: [1, 1, 1],
});

Pasul 4: Aplică redactările

Page.ApplyRedactions() rescrie distructiv fluxul de conținut — glifele din fiecare RedactAnnotation marcată pe pagină dispar pentru totdeauna, iar marcajele aplicate sunt eliminate. Marcajele adăugate după acest apel rămân neaplicate: valoarea de sub ele încă se poate citi și este în continuare selectabilă pentru copiere:

page.ApplyRedactions();
doc.WriteTo('memo-redacted.pdf');

Probleme comune și soluții

Un marcaj de redactare afișează caseta neagră, dar textul de dedesubt poate fi în continuare copiat. Page.ApplyRedactions() nu a fost niciodată apelat (sau a fost apelat înainte ca marcajul să fie adăugat). Marcarea cu AddRedact() singur doar desenează o adnotare peste regiune — conținutul de dedesubt este distrus o singură dată ApplyRedactions() rulează.

ApplyRedactions() a eliminat conținutul marcajului rect nu a acoperit. rect este regiunea exactă rescrisă — textul sau imaginile care se suprapun doar parțial pot fi încă parțial distruse la margine. Dimensiunea marcajelor este generoasă în jurul conținutului țintă.

Rezultatele căutării nu pot fi transmise direct către Page.AddRedact(). Un rezultat din Page.SearchAnnotationText() poartă metadatele de adnotare, nu geometria paginii — nu are aceeași formă ca rect an AddRedact() se așteaptă marcajul. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) sunt punctele de intrare pentru redact-by-text-search, iar ambele sunt disponibile și la Document nivelul pentru a parcurge fiecare pagină într-un singur apel.

O redactare supraviețuiește criptării în mod neașteptat. Redactarea și criptarea sunt operații independente — aplică redactările înainte de a salva cu encrypt opțiuni dacă scopul este să elimini atât conținutul, cât și să restricționezi accesul la ceea ce rămâne; aplicarea în ordine inversă nu anulează o salvare deja-criptată.

Întrebări frecvente

Care este diferența dintre marcarea și aplicarea unei redacții?

AddRedact() creează doar o adnotare care descrie unde este planificată o redacție — conținutul acoperit rămâne neatins și este în continuare selectabil/copiat până când ApplyRedactions() rulează și rescrie pagina în mod distructiv.

Pot să redacționez prin căutarea textului în loc să specific un dreptunghi?

Da — Page.MarkRedactText(find, opts) marchează fiecare potrivire a find pentru aplicare ulterioară, și Page.RedactText(find, opts) marchează și aplică într-un singur apel. Ambele există și pe Document pentru a parcurge întregul document.

Afectează ApplyRedactions() adnotările în afară de marcajele de redactare?

Nu — rescrie fluxul de conținut sub propriile sale marcaje RedactAnnotation; alte tipuri de adnotări din pagină nu sunt atinse de acest apel.

Este o redactare reversibilă?

Nu — ApplyRedactions() este distructiv. Păstrează fișierul original dacă conținutul ne-redactat trebuie să poată fi recuperat ulterior.

Vezi și:

 Română