Kullanım Durumları
Bu kılavuz, Aspose.PDF FOSS for TypeScript için gerçek dünya kullanım senaryolarını gösterir; belge oluşturma, inceleme iş akışları, redaksiyon, güvenli dağıtım, form tabanlı veri toplama ve etiketli web yayıncılığını kapsar. Node.js 22 veya daha yenisini gerektirir.
Belge Oluşturma ve Sayfa Montajı
Belirli bir PageFormat üzerine boş bir Document başlatarak sıfırdan bir PDF oluşturun, Page.AddText() ile metin yerleştirin ve ek sayfalar ekleyin. Bu desen, fatura oluşturma, sertifika baskısı ve rapor üretim hatlarının temelini oluşturur:
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');Notlarla İnceleme ve Redline İşlemi
Paylaşılan bir taslağı vurgulamalar, yapışkan notlar ve serbest metin yorumlarıyla işaretleyin, ardından onaylandığında incelemeyi son, düzenlenemez bir sayfaya dönüştürün:
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');Dağıtımdan Önce Hassas Verileri Kırpma
Bir belgenin bir organizasyondan çıkmadan önce hassas alanları — bir çalışan kimliği, bir banka hesabı numarası — işaretleyin ve ardından yıkıcı bir şekilde kaldırın:
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');Dağıtım İçin Belgeleri Güvence Altına Alma ve İmzalama
Tamamlanmış bir belgeyi onaylayın, ardından yalnızca o alıcı açabilir şekilde belirli bir alıcının sertifikasına şifreleyin:
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);
}Doldurulabilir Formlarla Yapılandırılmış Veri Toplama
Doldurulabilir bir giriş formu oluşturun, ardından gönderilen değerleri geri dönen bir kopyadan okuyun — ayrı bir form gönderim sunucusu olmadan doldurulmuş başvuru formlarını işlemek için faydalıdır:
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);
}Etiketli, Web’e Hazır Belgeleri Yayınlama
Bir belgenin mantıksal yapısını etiketleyin, ardından web okuyucular için doğru şekilde akış sağlayan semantik HTML’a aktarın — dışa aktarma, etiketleme adımının oluşturduğu aynı yapı ağacını izler:
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');