Pengurusan Dokumen

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 Document dalam pernyataan using untuk 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 Save hanya sekali selepas semua pengubahsuaian — simpanan berulang lebih perlahan tetapi selamat.
  • Gunakan PageCollection.Accept(AnnotationSelector) untuk memproses anotasi secara kelompok merentasi semua halaman.

Isu Umum

IssueCauseFix
Document.Open melempar pada PDF yang sahFail disulitkan dengan kata laluanBerikan parameter kata laluan dalam konstruktor
Kiraan halaman ialah 0 selepas pembinaanDocument() baru bermula kosongPanggil doc.Pages.Add() untuk menambah halaman kosong
Fail yang disimpan lebih besar daripada yang dijangkaImej atau fon disematkan berulang kaliGunakan pengoptimuman (rujuk panduan Penukaran dan Pengoptimuman)
Pages[0] melempar ralat indeksHalaman berasaskan 1, bukan 0Gunakan 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 / MethodDescription
DocumentObjek PDF akar; menyimpan halaman, metadata, dan medan borang
Document.OpenKilang statik untuk membuka PDF daripada tatasusunan bait
Document.SaveSeriakan dokumen ke fail atau aliran
PageHalaman PDF tunggal dengan kandungan, anotasi, dan geometri
Page.SetMediaBoxTentukan kotak media halaman
Page.SetCropBoxTentukan kawasan pemotongan yang kelihatan
Page.SetRotationPutar halaman sebanyak 0, 90, 180, atau 270 darjah
PageCollectionKoleksi bertertib halaman dalam dokumen
PageCollection.AddTambah halaman kosong
OperatorCollectionOperator aliran‑kandungan mentah untuk halaman
FileSpecificationPenerangan lampiran fail terbenam
ImageStampCop gambar lapisan atas untuk halaman
XFormCollectionXObjects borang boleh guna semula dalam dokumen

Lihat Juga

 Bahasa Melayu