Use cases

Deze gids toont praktijkvoorbeelden van Aspose.PDF FOSS voor TypeScript, variërend van documentgeneratie, beoordelingsworkflows, redactie, veilige distributie, formuliergebaseerde gegevensverzameling en getagde webpublicatie. Het vereist Node.js 22 of hoger.

Documentgeneratie en Pagina-assemblage

Maak een PDF vanaf nul door een lege Document te starten op een gegeven PageFormat, tekst te plaatsen met Page.AddText(), en vervolgens extra pagina’s toe te voegen. Dit patroon vormt de basis voor factuurgeneratie, certificaatafdrukken en rapportproductiepijplijnen:

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');

Beoordelen en Redigeren met annotaties

Markeer een gedeeld concept met markeringen, plakbriefjes en vrije-tekstcommentaren, en zet vervolgens de beoordeling om in een definitieve, niet-bewerkbare pagina zodra deze is goedgekeurd:

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');

Gevoelige gegevens redigeren vóór distributie

Markeer en verwijder vervolgens destructief gevoelige velden — een werknemers-ID, een bankrekeningnummer — voordat een document de organisatie verlaat:

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');

Beveiligen en ondertekenen van documenten voor distributie

Certificeer een voltooid document, en versleutel het vervolgens met het certificaat van een specifieke ontvanger zodat alleen die ontvanger het kan openen:

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);
}

Verzamelen van gestructureerde gegevens met invulbare formulieren

Maak een invulbaar intakeformulier, en lees vervolgens de ingediende waarden terug uit een geretourneerde kopie — handig voor het verwerken van ingevulde aanvraagformulieren zonder een aparte formulier-indieningsserver:

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);
}

Publiceren van getagde, webklare documenten

Tag de logische structuur van een document, en exporteer het vervolgens naar semantische HTML die correct doorstromt voor weblezers — de export doorloopt dezelfde structuurboom die de tagging-fase opbouwt:

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');

Zie ook

 Nederlands