Pengurusan Dokumen
Pengurusan Dokumen
Document ialah objek akar dalam Aspose.PDF FOSS untuk .NET. Ia mewakili
seluruh fail PDF dan menyediakan akses kepada halaman, metadata, medan borang, dan semua
struktur PDF yang lain. Buka fail sedia ada dengan Document.Open dan cipta yang baru
dengan konstruktor Document.
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 mengurus halaman dokumen. Akses halaman dengan indeks berasaskan 1, tambahkan halaman baru, atau buang halaman yang sedia 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 sempadan. Gunakan kaedah penetapan pada Page untuk menyesuaikannya.
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 laluan fail, aliran, atau tatasusunan bait.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Lampiran fail
FileSpecification mewakili lampiran fail terbenam dalam PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Setem imej
ImageStamp menindih imej raster pada halaman pada kedudukan yang ditentukan.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Koleksi operator
OperatorCollection pada setiap halaman menyimpan operator aliran kandungan mentah. Gunakan ia untuk pemeriksaan atau manipulasi kandungan peringkat rendah.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Petua dan Amalan Terbaik
- Balut
Documentdalam pernyataanusinguntuk melepaskan pemegang fail dengan segera. - Gunakan
Document.Open(byte[])untuk aliran kerja dalam memori bagi mengelakkan isu kunci fail. - Ubah kotak halaman (MediaBox, CropBox) sebelum menambah kandungan untuk memastikan ruang koordinat yang betul.
- Panggil
Savehanya sekali selepas semua pengubahsuaian — simpanan berulang lebih perlahan tetapi selamat. - Gunakan
PageCollection.Accept(AnnotationSelector)untuk memproses anotasi secara kelompok merentasi semua halaman.
Isu Umum
| Issue | Cause | Fix |
|---|---|---|
Document.Open melempar pada PDF yang sah | Fail disulitkan dengan kata laluan | Berikan parameter kata laluan dalam konstruktor |
| Kiraan halaman ialah 0 selepas pembinaan | Document() baru bermula kosong | Panggil doc.Pages.Add() untuk menambah halaman kosong |
| Fail yang disimpan lebih besar daripada yang dijangka | Imej atau fon disematkan berulang kali | Gunakan pengoptimuman (rujuk panduan Penukaran dan Pengoptimuman) |
Pages[0] melempar ralat indeks | Halaman berasaskan 1, bukan 0 | Gunakan Pages[1] untuk halaman pertama |
Soalan Lazim
Bagaimana saya menggabungkan dua dokumen PDF?
Gunakan PdfFileEditor.Concatenate dari Facades API, atau salin halaman secara manual dari satu dokumen ke dokumen lain menggunakan PageCollection.
Bolehkah saya membuka PDF dari URL atau aliran?
Ya. Baca kandungan URL ke dalam byte[] terlebih dahulu, kemudian serahkannya kepada
Document.Open(byte[]).
Bagaimana saya memadam halaman?
Panggil doc.Pages.Delete(pageNumber) di mana pageNumber adalah berasaskan 1.
Adakah Document thread-safe?
Tidak. Setiap thread harus berfungsi dengan contoh Document masing-masing.
Ringkasan Rujukan API
| Class / Method | Description |
|---|---|
Document | Objek PDF akar; menyimpan halaman, metadata, dan medan borang |
Document.Open | Kilang statik untuk membuka PDF daripada tatasusunan bait |
Document.Save | Seriakan dokumen ke fail atau aliran |
Page | Halaman PDF tunggal dengan kandungan, anotasi, dan geometri |
Page.SetMediaBox | Tentukan kotak media halaman |
Page.SetCropBox | Tentukan kawasan pemotongan yang kelihatan |
Page.SetRotation | Putar halaman sebanyak 0, 90, 180, atau 270 darjah |
PageCollection | Koleksi bertertib halaman dalam dokumen |
PageCollection.Add | Tambah halaman kosong |
OperatorCollection | Operator aliran‑kandungan mentah untuk halaman |
FileSpecification | Penerangan lampiran fail terbenam |
ImageStamp | Cop gambar lapisan atas untuk halaman |
XFormCollection | XObjects borang boleh guna semula dalam dokumen |