Quản lý tài liệu

Quản lý tài liệu

Quản lý tài liệu

Document là đối tượng gốc trong Aspose.PDF FOSS cho .NET. Nó đại diện cho một
tệp PDF toàn bộ và cung cấp quyền truy cập vào các trang, siêu dữ liệu, trường biểu mẫu và tất cả
các cấu trúc PDF khác. Mở các tệp hiện có bằng Document.Open và tạo các
tệp mới bằng trình khởi tạo Document.


Mở và tạo tài liệu

// 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");

Làm việc với các trang

PageCollection quản lý các trang của tài liệu. Truy cập các trang bằng chỉ mục bắt đầu từ 1, thêm các trang mới hoặc xóa các trang hiện có.

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;

Hình học trang

Mỗi trang định nghĩa một số hộp bao. Sử dụng các phương thức setter trên Page để điều chỉnh chúng.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

Lưu tài liệu

Lưu vào đường dẫn tệp, một luồng, hoặc một mảng byte.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

Tệp đính kèm

FileSpecification đại diện cho các tệp đính kèm nhúng trong PDF.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

Dấu ảnh

ImageStamp chồng một hình ảnh raster lên một trang tại vị trí được chỉ định.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

Bộ sưu tập toán tử

OperatorCollection trên mỗi trang chứa các toán tử content-stream thô. Sử dụng nó để kiểm tra hoặc thao tác nội dung ở mức độ thấp.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

Mẹo và Thực hành tốt nhất

  • Bao bọc Document trong một câu lệnh using để giải phóng các tay cầm tệp kịp thời.
  • Sử dụng Document.Open(byte[]) cho các quy trình làm việc trong bộ nhớ để tránh các vấn đề khóa tệp.
  • Chỉnh sửa các hộp trang (MediaBox, CropBox) trước khi thêm nội dung để đảm bảo không gian tọa độ chính xác.
  • Gọi Save chỉ một lần sau khi hoàn tất mọi sửa đổi — việc lưu lại nhiều lần chậm hơn nhưng an toàn.
  • Sử dụng PageCollection.Accept(AnnotationSelector) để xử lý hàng loạt các chú thích trên tất cả các trang.

Các vấn đề thường gặp

IssueCauseFix
Document.Open ném lỗi trên PDF hợp lệTệp được mã hóa bằng mật khẩuCung cấp tham số mật khẩu trong hàm khởi tạo
Số trang là 0 sau khi khởi tạoDocument() mới bắt đầu rỗngGọi doc.Pages.Add() để thêm một trang trống
Tệp đã lưu lớn hơn mong đợiHình ảnh hoặc phông chữ được nhúng nhiều lầnSử dụng tối ưu hoá (xem hướng dẫn Conversion and Optimization)
Pages[0] ném lỗi chỉ mụcCác trang được đánh số bắt đầu từ 1, không phải 0Sử dụng Pages[1] cho trang đầu tiên

Câu hỏi thường gặp

Làm thế nào để hợp nhất hai tài liệu PDF?

Sử dụng PdfFileEditor.Concatenate từ Facades API, hoặc sao chép thủ công các trang từ một tài liệu sang tài liệu khác bằng cách sử dụng PageCollection.

Tôi có thể mở PDF từ URL hoặc luồng không?

Có. Đọc nội dung URL vào một byte[] trước, sau đó truyền nó cho Document.Open(byte[]).

Làm thế nào để xóa một trang?

Gọi doc.Pages.Delete(pageNumber) trong đó pageNumber được đánh số từ 1.

Document có an toàn với đa luồng không?

Không. Mỗi luồng nên làm việc với thể hiện Document riêng của nó.


Tóm tắt Tham chiếu API

Class / MethodDescription
DocumentĐối tượng PDF gốc; chứa các trang, siêu dữ liệu và trường biểu mẫu
Document.OpenPhương thức tĩnh để mở PDF từ một mảng byte
Document.SaveChuỗi hoá tài liệu thành tệp hoặc luồng
PageTrang PDF đơn với nội dung, chú thích và hình học
Page.SetMediaBoxXác định hộp media của trang
Page.SetCropBoxXác định khu vực cắt hiển thị
Page.SetRotationXoay trang theo 0, 90, 180 hoặc 270 độ
PageCollectionBộ sưu tập có thứ tự của các trang trong tài liệu
PageCollection.AddThêm một trang trống
OperatorCollectionCác toán tử luồng nội dung thô cho một trang
FileSpecificationBộ mô tả tệp đính kèm nhúng
ImageStampDấu ảnh phủ lên cho các trang
XFormCollectionXObjects biểu mẫu có thể tái sử dụng trong tài liệu

Xem Thêm

 Tiếng Việt