Kasus Penggunaan

Kasus Penggunaan

Panduan ini menunjukkan kasus penggunaan dunia nyata untuk Aspose.PDF FOSS untuk TypeScript, mencakup pembuatan dokumen, alur kerja tinjauan, penyensoran, distribusi aman, pengumpulan data berbasis formulir, dan penerbitan web berlabel. Diperlukan Node.js 22 atau lebih baru.

Pembuatan Dokumen dan Perakitan Halaman

Bangun PDF dari awal dengan memulai Document kosong pada PageFormat yang diberikan, menempatkan teks dengan Page.AddText(), dan menambahkan halaman lebih lanjut. Pola ini menjadi dasar pembuatan faktur, pencetakan sertifikat, dan alur produksi laporan:

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

Meninjau dan Menandai dengan Anotasi

Tandai draf bersama dengan penyorotan, catatan tempel, dan komentar teks bebas, lalu gabungkan tinjauan menjadi halaman final yang tidak dapat diedit setelah disetujui:

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

Menyensor Data Sensitif Sebelum Distribusi

Tandai dan kemudian hapus secara destruktif bidang sensitif — ID karyawan, nomor rekening bank — sebelum dokumen meninggalkan organisasi:

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

Mengamankan dan Menandatangani Dokumen untuk Distribusi

Sertifikasi dokumen yang selesai, lalu enkripsi dengan sertifikat penerima tertentu sehingga hanya penerima itu yang dapat membukanya:

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

Mengumpulkan Data Terstruktur dengan Formulir yang Dapat Diisi

Buat formulir intake yang dapat diisi, lalu baca nilai yang dikirim kembali dari salinan yang dikembalikan — berguna untuk memproses formulir aplikasi yang terisi tanpa server pengiriman formulir terpisah:

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

Menerbitkan Dokumen yang Ditandai, Siap Web

Tandai struktur logis dokumen, lalu ekspor ke HTML semantik yang mengalir kembali dengan benar untuk pembaca web — proses ekspor menelusuri pohon struktur yang sama yang dibangun pada tahap penandaan:

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

Lihat Juga

 Bahasa Indonesia