Manajemen Dokumen
Manajemen Dokumen
Document adalah objek akar dalam Aspose.PDF FOSS untuk .NET. Ini mewakili sebuah seluruh file PDF dan menyediakan akses ke halaman, metadata, bidang formulir, dan semua Buka file yang ada dengan Document.Open dan menciptakan yang baru, yang dengan Document Konstruksi.
Membuka dan membuat dokumen
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");Bekerja dengan halaman
PageCollection Mengelola halaman dokumen. Akses halaman dengan indeks berbasis 1, menambahkan halaman baru, atau menghapus yang sudah ada.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;Geometri halaman
Setiap halaman mendefinisikan beberapa kotak pembatas. Gunakan metode setter pada Page ke atur mereka.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Menyimpan dokumen
Simpan ke jalur file, stream, atau array byte.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);File lampiran
FileSpecification mewakili lampiran file yang tertanam dalam PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Stempel gambar
ImageStamp overlay gambar raster pada halaman di posisi yang ditentukan.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Koleksi operator
OperatorCollection pada setiap halaman berisi operator aliran konten mentah. Gunakan untuk pemeriksaan atau manipulasi konten tingkat rendah.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Tips dan Praktik Terbaik
- Wrap
Documentdalam ausingPernyataan untuk melepaskan file handle dengan segera. - Penggunaan
Document.Open(byte[])untuk alur kerja dalam memori untuk menghindari masalah kunci file. - Mengubah kotak halaman (MediaBox, CropBox) sebelum menambahkan konten untuk memastikan ruang koordinat yang benar.
- Call
Savehanya sekali setelah semua modifikasi pengaman berulang lebih lambat tetapi aman. - Penggunaan
PageCollection.Accept(AnnotationSelector)untuk mengolah secara batch-process annotations di semua halaman.
Masalah Umum
| Issue | Cause | Perbaiki |
|---|---|---|
Document.Open Memposting PDF yang valid | File dienkripsi dengan kata sandi | Masukkan parameter kata sandi di konstruktor |
| Jumlah halaman adalah 0 setelah konstruksi | Baru Document() dimulai kosong | Call doc.Pages.Add() untuk menambahkan halaman kosong |
| File yang disimpan lebih besar dari yang diharapkan | Gambar atau font yang tertanam beberapa kali | Gunakan optimasi (lihat Conversion and Optimization guide) |
Pages[0] Membuat kesalahan indeks | Halaman berbasis 1, bukan berbasis 0 | Penggunaan Pages[1] untuk halaman pertama |
FAQ
Bagaimana saya menggabungkan dua dokumen PDF?
Penggunaan PdfFileEditor.Concatenate dari API Facades, atau menyalin halaman secara manual dari satu dokumen ke yang lain menggunakan PageCollection.
Bisakah saya membuka PDF dari URL atau stream?
Ya. Baca isi URL ke dalam sebuah file yang tidak dapat dibaca oleh pengguna lain. byte[] pertama, lalu berikan ke Document.Open(byte[]).
Bagaimana saya menghapus halaman?
Call doc.Pages.Delete(pageNumber) di mana: pageNumber adalah 1 berbasis.
Apakah dokumen ini aman?
Tidak, setiap benang harus bekerja dengan sendiri. Document contoh.
Ringkasan Referensi API
| Kelas / Metode | Description |
|---|---|
Document | Obyek PDF akar; berisi halaman, metadata, dan bidang formulir |
Document.Open | Static factory untuk membuka PDF dari array byte |
Document.Save | Serialkan dokumen ke file atau stream |
Page | Halaman PDF tunggal dengan konten, catatan dan geometri |
Page.SetMediaBox | Tentukan kotak media halaman |
Page.SetCropBox | Tentukan area tanaman yang terlihat. |
Page.SetRotation | Putar halaman 0, 90, 180 atau 270 derajat |
PageCollection | Pengumpulan halaman dalam dokumen yang terurutkan |
PageCollection.Add | Menambahkan halaman kosong |
OperatorCollection | Operator aliran konten mentah untuk halaman |
FileSpecification | Deskriptor lampiran file tertanam |
ImageStamp | Stempel penutup gambar untuk halaman |
XFormCollection | Formulir XObjek yang dapat digunakan kembali dalam dokumen |