Cara Bekerja dengan Core PDF API di TypeScript
Panduan ini menunjukkan cara membuka, membuat, mengedit, memecah, dan menyimpan dokumen PDF dengan Aspose.PDF FOSS untuk TypeScript. Kelas Document dan Page adalah titik masuk untuk setiap operasi dalam perpustakaan — membuka dan membuat file, mengedit halaman secara langsung, memecah dan menggabungkan dokumen, serta menyimpan hasilnya. Hanya memerlukan Node.js 22 atau yang lebih baru.
Panduan Langkah-demi-Langkah
Langkah 1: Instal Paket
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildVerifikasi instalasi dengan mengimpor kelas Document dalam file TypeScript baru — baris ini harus dapat diselesaikan tanpa error setelah paket diinstal:
import { Document } from '@asposefoss/pdf';Langkah 2: Impor Kelas yang Diperlukan
Impor Document untuk memuat atau membuat PDF, dan PageFormat jika Anda berencana memulai dokumen dari awal:
import { Document, PageFormat } from '@asposefoss/pdf';Langkah 3: Buka PDF yang Ada dan Edit Halaman
Document.OpenFile() membuka PDF dari jalur file; Document.Open() menerima Uint8Array dalam memori. Halaman dapat diperiksa dan diedit di tempat, dan Document.WriteTo() menulis hasilnya kembali.
import { Document } from '@asposefoss/pdf';
// Open from disk (or Document.Open(uint8array) for in-memory data)
const doc = Document.OpenFile('input.pdf');
// Inspect and edit pages
const pages = doc.Pages;
console.log(pages.length);
pages[0].Rotate = 90;
doc.RemovePage(2); // 1-based page number
doc.Reorder([3, 1, 2]);
// Save
doc.WriteTo('output.pdf'); // or: const bytes = doc.Save();
Langkah 4: Buat PDF Baru dari Awal
Document.New() memulai dokumen kosong pada PageFormat yang diberikan. Page.AddText() menempatkan teks yang diposisikan, dan Document.AddPage() menambahkan halaman lebih lanjut.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4); // one blank A4 page
doc.Pages[0].AddText('Hello', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape()); // append more as you go
doc.WriteTo('scratch.pdf');Langkah 5: Membagi, Mengekstrak, dan Menggabungkan Halaman
Document.Split() mengembalikan satu Document per halaman. Document.ExtractPages() mengambil daftar halaman berbasis-1, memperbolehkan pengulangan, dan mengembalikan Document baru dengan hanya halaman tersebut. Document.Append() dan Document.InsertPage() menyalin halaman antar dokumen, dan Document.Merge() menggabungkan beberapa dokumen menjadi satu.
const parts = doc.Split(); // one Document per page
const chapter = doc.ExtractPages([3, 4, 5]); // subset (1-based, repeats allowed) as a new Document
docA.Append(docB); // copy all of docB's pages onto docA
docA.InsertPage(1, docB.Pages[0]); // copy a single page across documents
Masalah Umum dan Perbaikan
Document.OpenFile() throws InvalidPasswordError. PDF dilindungi kata sandi dan tidak ada kata sandi (atau kata sandi yang salah) yang diberikan. Pass { password: '...' } to Document.OpenFile() / Document.Open().
RemovePage() or ExtractPages() menghapus atau mengekstrak halaman yang salah. Metode ini menggunakan nomor halaman berbasis 1, sementara doc.Pages adalah array berbasis 0 biasa — dua skema pengindeksan ini mudah tercampur.
WriteTo() output lebih besar dari yang diharapkan. Penyimpanan default tidak menggunakan kompresi xref/object-stream. Pass { compressed: true } to Document.WriteTo() untuk mengaktifkannya.
Suntingan yang dibuat pada doc.Pages[i] tidak muncul dalam file yang disimpan. Edit halaman harus dilakukan sebelum pemanggilan ke Document.WriteTo() / Document.Save() — tidak ada langkah “commit” terpisah, tetapi edit yang dilakukan setelah penyimpanan tidak akan tercermin dalam file yang sudah ditulis ke disk.
Pertanyaan yang Sering Diajukan
Bagaimana cara memuat PDF dari buffer memori alih-alih jalur file?
Berikan Uint8Array ke Document.Open() alih-alih jalur ke Document.OpenFile().
Bagaimana cara memutar halaman?
Setel page.Rotate ke 90, 180, atau 270, kemudian simpan dokumen dengan Document.WriteTo().
Bisakah saya menyalin satu halaman dari satu dokumen ke dokumen lain?
Ya — Document.InsertPage(at, sourcePage) menyalin satu halaman dari dokumen lain pada posisi berbasis 1 yang diberikan, tanpa menyalin seluruh dokumen.
Apakah Document.ExtractPages() memungkinkan halaman yang sama muncul dua kali?
Ya. Daftar nomor halaman yang diberikan ke Document.ExtractPages() memperbolehkan pengulangan, sehingga halaman sumber yang sama dapat muncul lebih dari sekali dalam hasil.