Làm việc với Enum
Làm việc với Enum
Aspose.PDF FOSS cho .NET sử dụng các enum có kiểu mạnh trên toàn bộ API của nó để cấu hình hành vi tài liệu, giao diện trang và các định dạng chuyển đổi. Thay vì các chuỗi ma thuật hoặc số nguyên, hầu hết các bề mặt cấu hình — từ cách một trình xem PDF mở tệp đến định dạng mà một Document được lưu dưới dạng — được biểu diễn dưới dạng giá trị enum. Trang này giới thiệu các kiểu enum mà bạn sẽ gặp thường xuyên nhất khi làm việc với thư viện. Đây là một giới thiệu được tuyển chọn, không phải là một danh mục đầy đủ; để xem danh sách đầy đủ các kiểu enum và mọi giá trị thành viên, hãy xem API Reference.
Hiển thị và Bố cục Trang
PageMode và PageLayout là các thuộc tính trên Document kiểm soát cách trình xem PDF trình bày tài liệu khi nó được mở lần đầu — liệu nó hiển thị dàn mục, hình thu nhỏ, hay một bố cục cột nhất định.
using var doc = Document.Open("input.pdf");
// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;
// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;
doc.Save("output.pdf");Mô hình màu trang
ColorType mô tả mô hình màu của một trang — RGB, CMYK, thang xám, v.v. Nó được hiển thị trên cả Page và Color, cho phép bạn phân nhánh logic dựa trên cách nội dung trên một trang thực sự được render.
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
if (page.ColorType == ColorType.Grayscale)
{
// Apply grayscale-specific handling, e.g. skip color-profile conversion
}Alignment
Một số lớp cung cấp HorizontalAlignment và VerticalAlignment để định vị nội dung trên trang, trong khi các lớp chú thích thêm TextAlignment và Justification để căn chỉnh văn bản cụ thể bên trong một hộp. Table, chẳng hạn, cung cấp cả hai trục căn chỉnh một cách trực tiếp.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (và kiểu cơ sở Annotation) cũng cung cấp Justification và TextAlignment cho văn bản bên trong chú thích:
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Định dạng tải và lưu
LoadFormat xác định định dạng nguồn đằng sau một lớp con LoadOptions (ví dụ, HtmlLoadOptions.LoadFormat luôn luôn là LoadFormat.HTML), trong khi SaveFormat chọn định dạng đầu ra khi gọi Document.Save.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Xoay trang
Rotation mô tả góc xoay của một trang và được cung cấp thông qua Page.Rotate.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Mẹo và Thực tiễn tốt nhất
- Ưu tiên các overload enum hơn các overload dựa trên chuỗi hoặc int khi cả hai tồn tại — chúng sẽ phát hiện giá trị không hợp lệ tại thời gian biên dịch.
- Khớp
SaveFormatvới phần mở rộng tệp mà bạn truyền choDocument.Save; sự không khớp sẽ tạo ra một tệp có nội dung gây hiểu lầm hoặc phần mở rộng không sử dụng được. - Sử dụng lớp con
LoadOptionstương ứng với định dạng nguồn của bạn (ví dụHtmlLoadOptionscho HTML) thay vì chỉ dựa vào việc tự động phát hiện định dạng. - Thiết lập đồng thời cả
HorizontalAlignmentvàVerticalAlignmentkhi định vị bảng hoặc đoạn văn — để một trong số chúng ở giá trị mặc định có thể gây ra vị trí không mong muốn. - Xem
ColorTypenhư mô tả, không phải quy định: nó báo cáo cách nội dung màu của trang hiện đang được mô hình hoá, không phải là một cài đặt bạn bật/tắt để chuyển đổi không gian màu.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
| Tệp đã lưu có nội dung không khớp với phần mở rộng của nó | Giá trị SaveFormat sai được truyền vào Document.Save | Truyền giá trị SaveFormat phù hợp với phần mở rộng tệp mục tiêu |
| Nội dung HTML/XML/etc. đã tải hiển thị không đúng | Đã sử dụng LoadOptions chung thay vì lớp con đặc thù cho định dạng | Sử dụng lớp con phù hợp với định dạng nguồn, ví dụ: HtmlLoadOptions |
| Bảng hoặc chú thích xuất hiện lệch trên trang | HorizontalAlignment/VerticalAlignment để ở giá trị mặc định | Cài đặt rõ ràng cả hai thuộc tính trước khi thêm đối tượng vào Paragraphs |
| PDF mở với hành vi trình xem không mong đợi (không có bảng điều khiển đề mục, bố cục cột sai) | Document.PageMode/Document.PageLayout không bao giờ được đặt | Đặt cả hai thuộc tính trước khi gọi Document.Save |
FAQ
Sự khác biệt giữa PageMode và PageLayout là gì?
PageMode kiểm soát trạng thái giao diện người dùng của trình xem khi mở (ví dụ, liệu bảng phác thảo hoặc bảng hình thu nhỏ có hiển thị hay không), trong khi PageLayout kiểm soát cách sắp xếp các trang (trang đơn, một cột, hai cột, v.v.).
Làm sao tôi biết giá trị SaveFormat nào cần sử dụng?
Chọn giá trị SaveFormat phù hợp với loại tệp đầu ra bạn muốn — ví dụ, SaveFormat.Html cho đầu ra HTML hoặc SaveFormat.Pdf để lưu lại dưới dạng PDF.
Tôi có thể đặt cả HorizontalAlignment và VerticalAlignment trên cùng một đối tượng không?
Có. Các lớp như Table cung cấp cả hai thuộc tính một cách độc lập, vì vậy bạn có thể kết hợp chúng để định vị nội dung trên bất kỳ trục nào.
Liệu ColorType cho phép tôi chuyển đổi không gian màu của một trang không?
Không. ColorType báo cáo mô hình màu hiện đang được liên kết với một trang hoặc giá trị màu; nó không thực hiện việc chuyển đổi.
Tôi có thể tìm thấy mọi enum và mọi giá trị ở đâu?
Trang này đề cập đến các enum được sử dụng phổ biến nhất. Đối với bộ đầy đủ, bao gồm mọi giá trị thành viên, xem API Reference.
API Reference Tóm tắt
| Enum | Mô tả |
|---|---|
PageMode | Cách trình xem PDF hiển thị tài liệu khi mở (đề mục, hình thu nhỏ, toàn màn hình, v.v.) |
PageLayout | Bố cục trang được sử dụng khi tài liệu được hiển thị (trang đơn, cột, v.v.) |
ColorType | Mô hình màu của một trang hoặc giá trị màu (RGB, CMYK, thang xám, v.v.) |
HorizontalAlignment | Căn chỉnh ngang của các đoạn văn, bảng hoặc chú thích |
VerticalAlignment | Căn chỉnh dọc của các đoạn văn, bảng hoặc chú thích |
TextAlignment | Căn chỉnh ngang cho các hộp văn bản chú thích |
Justification | Căn đều nội dung của chú thích văn bản tự do |
LoadFormat | Bộ chọn định dạng nguồn được sử dụng bởi các lớp con LoadOptions |
SaveFormat | Bộ chọn định dạng đầu ra được sử dụng bởi Document.Save |
Rotation | Góc xoay trang, được cung cấp qua Page.Rotate |