Cazuri de utilizare

Cazuri de utilizare

Acest ghid demonstrează cazuri de utilizare din viața reală pentru Aspose.PDF FOSS pentru TypeScript, acoperind generarea de documente, fluxuri de lucru de revizuire, redactare, distribuție securizată, colectare de date bazată pe formulare și publicare web etichetată. Necesită Node.js 22 sau o versiune ulterioară.

Generarea de documente și asamblarea paginilor

Construiți un PDF de la zero prin pornirea unui Document gol la un PageFormat dat, plasând text cu Page.AddText() și adăugând pagini suplimentare. Acest model stă la baza generării de facturi, tipăririi de certificate și a conductelor de producție a rapoartelor:

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

const doc = Document.New(PageFormat.A4); // one blank A4 page
doc.Pages[0].AddText('Monthly Report', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape()); // append more as you go
doc.WriteTo('report.pdf');

Revizuirea și marcarea cu adnotări

Marcați un draft partajat cu evidențieri, note adezive și comentarii libere, apoi transformați revizuirea într-o pagină finală, neselectabilă, odată ce este aprobată:

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

page.AddHighlight({ quads: [72, 700, 300, 700, 72, 685, 300, 685], color: [1, 1, 0] });
const note = page.AddFreeText({
  rect: [320, 685, 500, 715],
  contents: 'Please confirm this figure before publishing.',
  fontSize: 10,
});

// Once the review is resolved, bake the comment into static content:
note.Flatten();
draft.WriteTo('reviewed.pdf');

Redactarea datelor sensibile înainte de distribuție

Marcați și apoi eliminați în mod distructiv câmpurile sensibile — un ID de angajat, un număr de cont bancar — înainte ca un document să părăsească o organizație:

const memo = Document.OpenFile('internal-memo.pdf');
const page2 = memo.Pages[0];

page2.AddRedact({
  rect: [220, 548, 460, 566],
  fill: [0, 0, 0],
  overlayText: '[REDACTED]',
  align: 'center',
  fontSize: 9,
  textColor: [1, 1, 1],
});
page2.ApplyRedactions(); // destructive — the covered content is gone
memo.WriteTo('memo-for-distribution.pdf');

Securizarea și semnarea documentelor pentru distribuție

Certificați un document finalizat, apoi criptați-l cu certificatul unui destinatar specific, astfel încât doar acel destinatar să îl poată deschide:

async function secureAndDistribute(sourcePath: string): Promise<void> {
  const doc = Document.OpenFile(sourcePath);
  await doc.Certify(
    { certificate: authorCert, privateKey: authorKey },
    { permissions: 'form-fill', reason: 'Certifying the final report' },
  );

  const encryptedBytes = doc.Save({
    encrypt: {
      recipients: [{ certificate: recipientCertPem }],
      algorithm: 'aes256',
      permissions: { copying: false },
    },
  });
  writeFileSync('report-secure.pdf', encryptedBytes);
}

Colectarea datelor structurate cu formulare completabile

Creați un formular de înscriere completabil, apoi citiți valorile transmise dintr-o copie returnată — util pentru procesarea formularelor de cerere completate fără un server separat de trimitere a formularelor:

const template = Document.New(PageFormat.A4);
const form = template.Form;
const pageNum = template.Pages[0].Number;

form.AddTextField({ page: pageNum, rect: [200, 670, 450, 690], name: 'FullName' });
form.AddCheckbox({ page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe' });
template.WriteTo('intake-form.pdf');

// Later, after the form comes back filled in:
const submitted = Document.OpenFile('intake-form-filled.pdf');
for (const field of submitted.Form.Fields) {
  console.log(field.FullName, '=', field.Value);
}

Publicarea documentelor etichetate, pregătite pentru web

Etichetați structura logică a unui document, apoi exportați-l în semantic HTML care se rearanjează corect pentru cititorii web — exportul parcurge același arbore de structură pe care îl construiește trecerea de etichetare:

const source = Document.OpenFile('report.pdf');
const report = source.AutoTag({ title: true });
console.log(`tagged: ${report.headings} heading(s), ${report.paragraphs} paragraph(s)`);

const html = source.ToHtml(); // reflowable markup, built from the structure tree
writeFileSync('report.html', html, 'utf8');

Vezi și:

 Română