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

Trang này chứa câu trả lời cho các câu hỏi thường gặp nhất. Vui lòng tìm hiểu trang hiện tại – có lẽ điều này sẽ cho phép bạn giải quyết vấn đề của mình một cách nhanh chóng.

Nếu bạn chưa tìm thấy câu trả lời cho câu hỏi của mình, bạn có thể hỏi trên diễn đàn hỗ trợ. Để biết thông tin về cách báo cáo chính xác câu hỏi hoặc vấn đề của bạn, hãy xem trang Hỗ trợ kỹ thuật.

Tổng quan

Hỏi: Aspose.Words là gì?

Aspose.Words cho .NET là thư viện lớp cho phép ứng dụng của bạn thực hiện nhiều tác vụ xử lý tài liệu khác nhau. Với Aspose.Words cho .NET, bạn có thể tạo, sửa đổi, chuyển đổi, kết xuất và in tài liệu mà không cần ứng dụng của bên thứ ba.

Thông tin chi tiết có thể được tìm thấy trong tài liệu của chúng tôi.


Hỏi: “Aspose.Words không yêu cầu ứng dụng của bên thứ ba” nghĩa là gì?

Aspose.Words cho .NET không cần cài đặt bất kỳ ứng dụng của bên thứ ba hoặc gói phần mềm bổ sung nào để hoạt động. Chỉ cần tải xuống và cài đặt Aspose.Words như được mô tả trong bài viết Cài đặt và bắt đầu.


Hỏi: Aspose.Words hỗ trợ những nền tảng nào?

Aspose.Words cho .NET bao gồm hầu hết các môi trường phát triển và nền tảng triển khai phổ biến. API của nó có thể được sử dụng để phát triển các ứng dụng cho nhiều hệ điều hành như Windows, Linux và Mac OS cũng như nhiều nền tảng khác nhau.

Để biết chi tiết, hãy xem trang Tổng quan về sản phẩm và phần Nền tảng và khả năng Interoperability.


Câu hỏi: Aspose.Words hỗ trợ những định dạng tài liệu nào?

Aspose.Words cho .NET hỗ trợ hầu hết các định dạng tài liệu phổ biến như DOC, DOCX, HTML, Markdown, PDF, XML và các định dạng khác.

Bạn có thể xem danh sách đầy đủ các định dạng được hỗ trợ trên trang Định dạng tài liệu được hỗ trợ.


Hỏi: Làm cách nào tôi có thể dùng thử Aspose.Words miễn phí?

Bạn có thể thực hiện việc này theo hai cách – sử dụng phiên bản dùng thử hoặc Giấy phép tạm thời 30 ngày. Phiên bản dùng thử giống như phiên bản đã mua, nó cung cấp đầy đủ chức năng của sản phẩm nhưng thêm hình mờ đánh giá ở đầu tài liệu khi tải và lưu, đồng thời giới hạn kích thước tài liệu tối đa ở mức vài trăm đoạn văn. Giấy phép tạm thời cho phép bạn kiểm tra Aspose.Words mà không bị hạn chế dùng thử trong 30 ngày.

Xem trang Cấp phép và đăng ký để biết thêm thông tin.


Hỏi: Làm cách nào tôi có thể mua Aspose.Words?

Để mua giấy phép Aspose.Words, bạn cần vào trang Mua, chọn sản phẩm “Aspose.Words” và loại giấy phép phù hợp với mình. Sau đó thêm giấy phép vào giỏ hàng của bạn và làm theo hướng dẫn Giỏ hàng.

Sau khi mua, hãy đăng ký giấy phép như được mô tả trong phần Giấy phép đã mua.

Bạn có thể đọc chi tiết về cách cài đặt Aspose.Words trên trang Cài đặt.


Hỏi: Làm thế nào tôi có thể nhận được hỗ trợ?

Sử dụng diễn đàn hỗ trợ kỹ thuật miễn phí. Để biết chi tiết về cách báo cáo sự cố đúng cách và những việc cần làm trước khi liên hệ với diễn đàn, hãy xem trang Hỗ trợ kỹ thuật.

Kết xuất một tài liệu

Hỏi: Tại sao bố cục và phông chữ trong tài liệu đầu ra khác với bản gốc?

Phông chữ có thể không có sẵn hoặc định dạng phông chữ được Microsoft Word hỗ trợ nhưng không được Aspose.Words hỗ trợ. Aspose.Words sẽ thực hiện Thao tác và thay thế phông chữ TrueType.

Để kiểm tra xem phông chữ có bị thiếu hay không:

  • Trong Aspose.Words, hãy sử dụng cảnh báo thay thế Phông chữ (để biết chi tiết, hãy xem phần “Cách nhận biết phông chữ đã được thay thế” của bài viết Thao tác và thay thế phông chữ TrueType).
  • Trong Microsoft Word, mở hộp thoại “Thay thế phông chữ” (Tệp → Tùy chọn → Nâng cao → Thay thế phông chữ).

Câu hỏi: Tôi nên lưu trữ phông chữ cho ứng dụng ASP.NET ở đâu?

Trong APS.NET, không có quyền truy cập vào thư mục phông chữ hệ thống ở mức độ tin cậy trung bình. Người dùng phải lưu trữ phông chữ trong thư mục riêng của họ.


Câu hỏi: Tại sao tính năng dự phòng phông chữ không hoạt động trên nền tảng không phải Windows và các ký tự Unicode được thay thế bằng .notdef glyph?

Chúng ta thường có thể thấy .notdef glyph thay vì một số ký tự Unicode. Đây thường là một ô hoặc một câu hỏi glyph.

Điều này là do cài đặt dự phòng của Microsoft Office được chọn theo mặc định và phông chữ Microsoft Office không có sẵn. Người dùng phải cài đặt phông chữ Microsoft Office hoặc thay đổi cài đặt dự phòng.


Hỏi: Tại sao văn bản chữ viết phức tạp, chẳng hạn như tiếng Thái hoặc tiếng Do Thái, có thể được hiển thị không chính xác vì một số lý do, chẳng hạn như vị trí dấu phụ hoặc chữ ghép không chính xác?

Một số phông chữ phức tạp yêu cầu phải xử lý các tính năng Kiểu chữ nâng cao để hiển thị chúng một cách chính xác. Kiểu chữ nâng cao bị tắt trong Aspose.Words theo mặc định. Người dùng phải kích hoạt Kiểu chữ nâng cao với TextShaperFactory.


Hỏi: Tôi có cần tệp giấy phép cho phông chữ tôi sử dụng không?

Có, bạn biết. Do đó, khi sao chép phông chữ, hãy nhớ rằng hầu hết các phông chữ đều có bản quyền. Xác định trước giấy phép phông chữ và xác minh rằng chúng có thể được chuyển tự do sang máy khác.

Mail Merge lồng nhau

Câu hỏi: Tại sao không có trường hợp nhất nào trong kết quả được tạo?

Tên ban đầu của trường hợp nhất vẫn giữ nguyên mà không bị thay thế bằng dữ liệu bắt buộc từ nguồn dữ liệu, khi đó:

  • Kiểm tra dữ liệu đang được tải đúng cách vào các bảng: đặt TableName chính xác với tất cả các khóa và mối quan hệ chính được yêu cầu.
  • Kiểm tra xem các trường hợp nhất có được đặt tên đúng không. Sử dụng phương pháp GetFieldNames để lấy tất cả tên trường hợp nhất và đảm bảo rằng tên của trường hợp nhất trong mẫu khớp với tên trong nguồn dữ liệu của bạn.

Câu hỏi: Tại sao đầu ra của việc hợp nhất lồng nhau không hiển thị dữ liệu từ bảng con cho mục nhập đầu tiên trong bảng cha nhưng lại hiển thị tất cả các mục cho mục nhập cuối cùng trong bảng cha, ngay cả những mục không thực sự được liên kết với nó?

Điều này là do các vùng hợp nhất trong mẫu không được định dạng chính xác, điều này có thể khiến tất cả các vùng mail merge lồng nhau ngừng hiển thị bất kỳ thứ gì. Thẻ mở StartTable và thẻ đóng EndTable phải khớp nhau và nằm trong cùng một hàng hoặc ô. Ví dụ: nếu bạn bắt đầu lồng các vùng hợp nhất vào một ô của bảng, bạn phải kết thúc vùng hợp nhất trong cùng hàng với ô đầu tiên.


Câu hỏi: Tại sao mỗi mục từ bảng cha lại hiển thị mọi mục trong bảng con, ngay cả những mục không thực sự được liên kết với nó?

Điều này là do mối quan hệ giữa bảng cha và bảng con chưa được thiết lập hoặc chúng được thiết lập không chính xác. Nó là cần thiết để:

  • Đảm bảo tính toàn vẹn dữ liệu trong DataSet của bạn và sử dụng đối tượng DataRelation để thể hiện mối quan hệ cha-con giữa các bảng dữ liệu liên quan.
  • Xem phần “Cách thiết lập mối quan hệ dữ liệu trong Mail Merge lồng nhau với các khu vực” trong bài viết Mail Merge lồng nhau với các vùng.

Câu hỏi: Tại sao lại có ngoại lệ: “System.ArgumentException: Không thể bật ràng buộc này vì không phải tất cả các giá trị đều có giá trị gốc tương ứng” trong khi thực thi mail merge lồng nhau?

Điều này xảy ra vì không phải mọi bản ghi cha đều có bản ghi con nên nguồn dữ liệu của bạn không đáp ứng các tiêu chí sau: mọi hàng trong bảng cha phải có mối quan hệ một-một với các hàng của bảng con dựa trên bản ghi chính và khóa ngoại.

Tắt các ràng buộc khóa ngoại khi bạn tạo DataRelation.

Nối hoặc chèn tài liệu

Hỏi: Tại sao nội dung được thêm vào tài liệu không xuất hiện trên cùng một trang?

Kết quả nối thêm xuất hiện trên một trang riêng do có sự khác biệt trong cài đặt PageSetup cho các phần mà tài liệu được nối cùng nhau. Thực hiện cài đặt PageSetup giống hệt nhau cho các phần mà tài liệu được nối với nhau.

Chuyển đổi một tài liệu

Hỏi: Làm cách nào để chuyển đổi PDF sang Word?

Rất dễ dàng, chỉ cần tải tài liệu vào mô hình và lưu nó sang bất kỳ định dạng được hỗ trợ nào.

Ví dụ mã sau đây cho thấy quá trình chuyển đổi tệp PDF sang DOC:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

// Save the file into MS document format
pdfDocument.Save(_dataDir + "PDFToDOC_out.doc", SaveFormat.Doc); // .Docx, .Rtf, .WordML, etc.

Hỏi: Làm cách nào để chuyển đổi DOCX sang PDF?

Việc này cũng rất dễ dàng, chỉ cần tải tài liệu vào mô hình và lưu nó sang bất kỳ định dạng được hỗ trợ nào.

Ví dụ mã sau đây cho thấy quá trình chuyển đổi tệp DOCX sang PDF:

// Open the source DOCX document.
Document doc = new Document(_dataDir + "input.docx");

// Save the file to PDF format.
doc.Save(_dataDir + "output.pdf", SaveFormat.Pdf);

Thao tác với một tài liệu

Hỏi: Làm cách nào để chia một trang tài liệu theo từng trang?

Aspose.Words cho phép bạn chia trang tài liệu nhiều trang theo trang.

Ví dụ mã sau đây cho thấy cách chia tài liệu và lưu từng trang dưới dạng tài liệu riêng biệt:

Document doc = new Document(MyDir + "Big document.docx");

int pageCount = doc.PageCount;

for (int page = 0; page < pageCount; page++)
{
	// Save each page as a separate document.
	Document extractedPage = doc.ExtractPages(page, 1);
	extractedPage.Save(ArtifactsDir + $"SplitDocument.PageByPage_{page + 1}.docx");
}

Hỏi: Làm thế nào để mở một tài liệu được mã hóa tài liệu?

Bạn có thể thử mở một tài liệu được mã hóa mà không cần mật khẩu, điều này sẽ dẫn đến một ngoại lệ.

Ví dụ mã sau đây cho thấy cách mở tài liệu được mã hóa bằng mật khẩu:

// Create a document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Hello world!");

//OoxmlSaveOptions only applies to Docx, Docm, Dotx, Dotm, or FlatOpc formats.
OoxmlSaveOptions options = new OoxmlSaveOptions(SaveFormat.Docx);

// Set a password with which the document will be encrypted, and which will be required to open it.
options.Password = "MyPassword";
doc.Save(ArtifactsDir + "OoxmlSaveOptions.SaveAsDocx.docx", options);

// Open the encrypted document by passing the correct password in a `LoadOptions` object.
doc = new Document(ArtifactsDir + "OoxmlSaveOptions.Password.docx", new LoadOptions("MyPassword"));

Assert.AreEqual("Hello world!", doc.GetText().Trim());

Hỏi: Làm thế nào để in một tài liệu?

Chỉ cần hai dòng mã.

Ví dụ mã sau đây cho thấy cách in tài liệu theo hai cách:

Document doc = new Document(MyDir + "PrintMe.docx");

// Below are two ways of printing our document.
// 1 -  Print using the default printer:
doc.Print();

// 2 -  Specify a printer that we wish to print the document with by name:
string myPrinter = PrinterSettings.InstalledPrinters[4];

doc.Print(myPrinter);

Hỏi: Làm cách nào để chỉnh sửa tài liệu PDF?

Chỉ cần tải PDF vào mô hình tài liệu Aspose.Words và thực hiện các thay đổi.

Ví dụ mã sau đây cho thấy cách chỉnh sửa tài liệu:

// Open the source PDF document
Document pdfDocument = new Document(_dataDir + "PDFToDOC.pdf");

DocumentBuilder builder = new DocumentBuilder(pdfDocument);
builder.MoveToDocumentEnd();
builder.Writeln("New paragraph with text");

pdfDocument.Save(_dataDir + "out.pdf", SaveFormat.Pdf);

Docker

Hỏi: Làm cách nào để sử dụng Aspose.Words trong Docker?

Để có câu trả lời chi tiết, hãy tìm hiểu bài viết Cách chạy Aspose.Words trong Docker.