v25.10
- Class PdfExtractor: chứa tất cả các chức năng của plugin: TextExtractor, ImageExtractor, FormExporter.
- Class TextExtractor: sẽ bị xóa sớm, hãy sử dụng PdfExtractor.
- Class ImageExtractor: sẽ bị xóa sớm, hãy sử dụng PdfExtractor.
- Class FormExporter: sẽ bị xóa sớm, hãy sử dụng PdfExtractor.
- Class TextExtractorOptions: được đổi tên thành Class ExtractTextOptions.
- Class ImageExtractorOptions: được đổi tên thành Class ExtractImagesOptions.
- Class FormExportToDsvOptions: được đổi tên thành Class ExtractFormDataToDsvOptions.
- Xem Kiến trúc Plugin Mới.
Ví dụ Sử Dụng:
Ví dụ này trình bày cách trích xuất nội dung văn bản của tài liệu PDF.
// Tạo đối tượng ExtractTextOptions để thiết lập hướng dẫn
var options = new ExtractTextOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thực hiện quy trình
var results = PdfExtractor.ExtractText(options);
// Lấy văn bản đã trích xuất từ đối tượng ResultContainer
var textExtracted = results.ResultCollection[0].ToString();
Ví dụ Sử Dụng:
Ví dụ này trình bày cách trích xuất nội dung văn bản của tài liệu PDF với TextFormattingMode.
// Tạo đối tượng ExtractTextOptions để thiết lập TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thực hiện quy trình
var results = PdfExtractor.ExtractText(options);
// Lấy văn bản đã trích xuất từ đối tượng ResultContainer
var textExtracted = results.ResultCollection[0].ToString();
Ví dụ Sử Dụng:
Ví dụ này trình bày cách trích xuất hình ảnh từ tài liệu PDF.
// Tạo ExtractImagesOptions để thiết lập hướng dẫn
var options = new ExtractImagesOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn thư mục đầu ra
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Thực hiện quy trình
var results = PdfExtractor.ExtractImages(options);
// Lấy đường dẫn tới hình ảnh kết quả
var imageExtracted = results.ResultCollection[0].ToFile();
Ví dụ Sử Dụng:
Ví dụ này trình bày cách xuất giá trị Form vào file CSV.
// Tạo đối tượng ExtractFormDataToDsvOptions để thiết lập hướng dẫn
var options = new ExtractFormDataToDsvOptions(',', true);
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Thực hiện quy trình
PdfExtractor.ExtractFormData(options);
Plugin mới PDF Manager
- Class PdfManager: chứa tất cả các chức năng của plugin: Merger, Optimizer, Splitter, TableGenerator, TocGenerator.
- Class Merger: sẽ bị xóa sớm.
- Class Optimizer: sẽ bị xóa sớm, hãy sử dụng PdfManager.
- Class Splitter: sẽ bị xóa sớm, hãy sử dụng PdfManager.
- Class TableGenerator: sẽ bị xóa sớm, hãy sử dụng PdfManager.
- Class TocGenerator: sẽ bị xóa sớm, hãy sử dụng PdfManager.
- Xem Kiến trúc Plugin Mới.
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Gộp hai tài liệu PDF.
// Tạo đối tượng MergeOptions để thiết lập hướng dẫn
var options = new MergeOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.Merge(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Chia tài liệu PDF.
// Tạo đối tượng SplitOptions để thiết lập hướng dẫn
var options = new SplitOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Thực hiện quy trình
PdfManager.Split(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Tối ưu tài liệu PDF.
// Tạo đối tượng OptimizeOptions để thiết lập hướng dẫn
var options = new OptimizeOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.Optimize(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Xoay tài liệu PDF.
// Tạo đối tượng RotateOptions để thiết lập hướng dẫn
var options = new RotateOptions();
// Thiết lập Xoay mới
options.Rotation = Rotation.On90;
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.Rotate(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Thay đổi kích thước tài liệu PDF.
// Tạo đối tượng ResizeOptions để thiết lập hướng dẫn
var options = new ResizeOptions();
// Thiết lập Kích thước Trang mới
options.PageSize = PageSize.A3;
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.Resize(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Nén tài liệu PDF.
// Tạo đối tượng CompressOptions để thiết lập hướng dẫn
var options = new CompressOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.Compress(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách Thêm Bảng vào file PDF.
// Cấu hình các tùy chọn bảng
var options = new TableOptions();
options.InsertPageBefore(1)
.AddTable()
.AddRow()
.AddCell().AddParagraph("Tên")
.AddCell().AddParagraph("Tuổi")
.AddRow()
.AddCell().AddParagraph("Bob")
.AddCell().AddParagraph("12")
.AddRow()
.AddCell().AddParagraph("Sam")
.AddCell().AddParagraph("20")
.AddRow()
.AddCell().AddParagraph("Sandy")
.AddCell().AddParagraph("26")
.AddRow()
.AddCell().AddParagraph("Tom")
.AddCell().AddParagraph("12")
.AddRow()
.AddCell().AddParagraph("Jim")
.AddCell().AddParagraph("27");
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Thực hiện quy trình
PdfManager.AddTable(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách thêm Mục lục vào file PDF.
// Tạo đối tượng TocOptions để thiết lập hướng dẫn
var options = new TocOptions();
// Thiết lập Tiêu đề
options.Title = "Mục lục của tôi";
// Thiết kế Đầu đề
options.Headings.Add(new TocHeading("Giới thiệu", 2));
options.Headings.Add(new TocHeading("Chương I", 3));
options.Headings.Add(new TocHeading("Chương II", 4));
options.Headings.Add(new TocHeading("Chương III", 5));
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.AddTableOfContents(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách thêm Mục lục vào file PDF với việc tạo dấu trang.
// Tạo đối tượng TocOptions để thiết lập hướng dẫn
var options = new TocOptions();
// Thiết lập Tiêu đề
options.Title = "Mục lục của tôi";
// Tạo liên kết trong dấu trang
options.GenerateBookmarks = true;
// Thiết kế Đầu đề
options.Headings.Add(new TocHeading("Giới thiệu", 2, false, 1));
options.Headings.Add(new TocHeading("Chương I", 3, true, 1));
options.Headings.Add(new TocHeading("Chương II", 4, true, 1));
options.Headings.Add(new TocHeading("Ví dụ A", 4, true, 2));
options.Headings.Add(new TocHeading("Ví dụ B", 4, true, 2));
options.Headings.Add(new TocHeading("Ví dụ C", 4, true, 2));
options.Headings.Add(new TocHeading("Ví dụ D", 4, true, 2));
options.Headings.Add(new TocHeading("Chương III", 5, true, 1));
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quy trình
PdfManager.AddTableOfContents(options);
Ví dụ Sử Dụng:
Ví dụ này trình bày cách thêm Mục lục vào file PDF và lưu dưới dạng stream.
// Tạo đối tượng TocOptions để thiết lập hướng dẫn
var options = new TocOptions();
// Thiết lập Tiêu đề
options.Title = "Mục lục của tôi";
// Thiết kế Đầu đề
options.Headings.Add(new TocHeading("Giới thiệu", 2, false, 1));
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Thiết lập stream đầu ra
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Thực hiện quy trình
PdfManager.AddTableOfContents(options);
Nâng cao tính khả dụng của TableGenerator
- Class TableGenerator: là tĩnh và không yêu cầu sử dụng constructor.
- Class TableGenerator: được đánh dấu là Obsolete. Hãy sử dụng PdfManager thay thế.
Nâng cao tính khả dụng của PdfChatGpt
- Class PdfChatGpt: là tĩnh và không yêu cầu sử dụng constructor.
- Class PdfChatGptRequestOptions: thêm thuộc tính CancellationToken (Chuyển từ PdfChatGpt).
Ví dụ Sử Dụng:
Ví dụ này trình bày cách sử dụng plugin PdfChatGpt bằng cách thêm tin nhắn vào yêu cầu.
var options = new PdfChatGptRequestOptions();
options.AddOutput(new FileDataSource("PdfChatGPT_output.pdf")); // Thêm đường dẫn file đầu ra.
options.ApiKey = "Your API key."; // Bạn cần cung cấp khóa để truy cập API.
options.MaxTokens = 1000; // Số lượng tối đa token được tạo trong phần trả lời chat.
// để hủy
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;
// Thêm các tin nhắn yêu cầu.
options.Messages.Add(new Message
{
Content = "Bạn là một trợ lý hữu ích.",
Role = Role.System
});
options.Messages.Add(new Message
{
Content = "Đường kính pizza lớn nhất từng được làm là bao nhiêu?",
Role = Role.User
});
// Xử lý yêu cầu.
await PdfChatGpt.ProcessAsync(options);
Sửa lỗi
- Đã fix lỗi chuyển đổi html sang pdf metadata
- Đã fix lỗi định dạng văn bản PDF sang PDF/A_3b và hình ảnh bị phóng to
- Đã fix lỗi PDF sang PDFA: báo cáo PDFA kết quả bị lỗi khi in
- Đã fix lỗi PDF sang HTML: hình ảnh kết quả chứa nền
- Đã fix lỗi HTML sang PDF: Một số ký tự Trung Quốc xuất hiện dưới dạng hộp
- Đã fix lỗi HTML sang PDF: font tùy chỉnh base64 không được tôn trọng
- Đã fix lỗi HTML sang PDF: css trường biểu mẫu không được áp dụng
- Đã fix lỗi HTML sang PDF: biểu đồ không được hiển thị đúng cách
- Đã fix lỗi HTML sang PDF: Ký tự đặc biệt không được hiển thị
v25.9
Cải thiện khả năng sử dụng của DocConverter và thêm chế độ bổ sung
- Class DocConverter: là tĩnh và không yêu cầu sử dụng constructor.
- Class PdfToDocOptions: thêm thuộc tính “Mode” cho phép bạn tùy chỉnh quy trình chuyển đổi.
- Enum DocConversionMode: cho phép bạn tùy chỉnh quy trình chuyển đổi pdf-doc. Giá trị:
- TextBox: Chế độ này nhanh và tốt cho việc bảo tồn tối đa diện mạo ban đầu của tệp PDF, nhưng khả năng chỉnh sửa của tài liệu kết quả có thể bị hạn chế. Mỗi khối văn bản được nhóm lại một cách trực quan trong tệp PDF ban đầu sẽ được chuyển đổi thành một textbox trong tài liệu kết quả.
- Flow: Chế độ nhận dạng đầy đủ, động cơ thực hiện việc nhóm và phân tích đa cấp để phục hồi ý định của tác giả tài liệu ban đầu và tạo ra một tài liệu có thể chỉnh sửa tối đa.
Ví dụ Sử Dụng:
// Ví dụ minh họa cách chuyển đổi tài liệu PDF sang định dạng Doc.
// Tạo đối tượng PdfToDocOptions để thiết lập hướng dẫn
var options = new PdfToDocOptions();
// Thêm đường dẫn tệp đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Đặt đường dẫn tệp đầu ra
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// Thực hiện quá trình
DocConverter.Process(options);
Ví dụ Sử Dụng:
// Ví dụ minh họa cách chuyển đổi tài liệu PDF sang định dạng Doc với việc thiết lập Mode.
// Tạo đối tượng PdfToDocOptions để thiết lập hướng dẫn
var options = new PdfToDocOptions();
// Thêm đường dẫn tệp đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Đặt đường dẫn tệp đầu ra
options.AddOutput(new FileDataSource("path_to_result_file.doc"));
// Đặt Mode
options.Mode = DocConversionMode.Flow;
// Thực hiện quá trình
DocConverter.Process(options);
Cải thiện khả năng sử dụng của PdfAConverter
Class PdfAConverter: là tĩnh và không yêu cầu sử dụng constructor.
Ví dụ Sử Dụng:
// Ví dụ minh họa cách chuyển đổi tài liệu PDF sang định dạng PDF/A (PDF/A-3b trong trường hợp này):
// Tạo lớp tùy chọn để thiết lập quy trình chuyển đổi
var options = new PdfAConvertOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_3B
};
// Thêm tệp nguồn
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf")); // thay thế bằng đường dẫn tệp thực tế của bạn
// Thêm đường dẫn để lưu tệp đã chuyển đổi
options.AddOutput(new FileDataSource("path_to_the_converted_file.pdf"));
// Chạy chuyển đổi
PdfAConverter.Process(options);
Ví dụ Sử Dụng:
// Ví dụ minh họa cách xác thực sự tuân thủ của tài liệu PDF đối với định dạng PDF/A (PDF/A-1a trong trường hợp này):
// Tạo lớp tùy chọn để thiết lập quy trình xác thực
var options = new PdfAValidateOptions
{
PdfAVersion = PdfAStandardVersion.PDF_A_1A
};
// Thêm một hoặc nhiều tệp để được xác thực
options.AddInput(new FileDataSource("path_to_your_first_pdf_file.pdf")); // thay thế bằng đường dẫn tệp thực tế của bạn
options.AddInput(new FileDataSource("path_to_your_second_pdf_file.pdf"));
// thêm nhiều tệp nếu cần
// Chạy xác thực và nhận kết quả
var resultContainer = PdfAConverter.Process(options);
// Kiểm tra thuộc tính resultContainer.ResultCollection để lấy kết quả xác thực cho từng tệp:
for (var i = 0; i < resultContainer.ResultCollection.Count; i++)
{
var result = resultContainer.ResultCollection[i];
var validationResult = (PdfAValidationResult) result.Data;
var isValid = validationResult.IsValid; // Kết quả xác thực cho tài liệu thứ i
}
Cải thiện khả năng sử dụng của Timestamp
Class Timestamp: là tĩnh và không yêu cầu sử dụng constructor.
Ví dụ Sử Dụng:
// Ví dụ minh họa cách thêm Timestamp vào tài liệu.
// Tạo đối tượng AddTimestampOptions để thiết lập hướng dẫn
var options = new AddTimestampOptions("path_to_your_pfx_file.pfx", "password_for_your_pfx_file", "timestamp_server_url");
// Thêm đường dẫn tệp đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Đặt đường dẫn tệp đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quá trình
Timestamp.Process(options);
Tài liệu đã được cập nhật
Cập nhật ví dụ, thêm các ví dụ bổ sung:
- Thông tin về giấy phép và Đánh giá
- Trang sản phẩm
- Bộ tạo bảng PDF
- Bộ tạo TOC PDF
- Bộ thêm Timestamp PDF
- Bộ chuyển đổi PDF/A
- Trình trích xuất hình ảnh PDF
- Trình trích xuất văn bản PDF
- Bộ chuyển đổi PDF sang XLS
- Bộ chuyển đổi PDF sang HTML
Đã sửa lỗi
- Đã sửa các vấn đề với việc chuyển đổi HTML sang PDF
- Đã sửa các vấn đề với việc chuyển đổi PDF sang PDF/A-2B
- Cải thiện chuyển đổi PDF sang JPEG: một số ký tự văn bản được tạo ra dưới dạng hình vuông
- Đã sửa lỗi kết xuất PDF sang TIFF
- Đã sửa lỗi ngoại lệ không mong muốn trong chuyển đổi PDF sang JPEG
v25.8
Cải thiện tính khả dụng của JpegConverter
Class JpegConverter: là tĩnh và không yêu cầu sử dụng constructor.
Ví dụ Sử Dụng:
// Ví dụ này minh họa cách chuyển đổi tài liệu PDF sang định dạng JPEG.
// Tạo đối tượng PdfToJpegOptions để đặt hướng dẫn
var options = new PdfToJpegOptions();
// Thêm đường dẫn File đầu vào
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Đặt đường dẫn Thư mục đầu ra
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Thực hiện quá trình
JpegConverter.Process(options);
Cải thiện tính khả dụng của PngConverter
Class PngConverter: là tĩnh và không yêu cầu sử dụng constructor.
Ví dụ Sử Dụng:
// Ví dụ này minh họa cách chuyển đổi tài liệu PDF sang định dạng PNG.
// Tạo đối tượng PdfToPngOptions để đặt hướng dẫn
var options = new PdfToPngOptions();
// Thêm đường dẫn File đầu vào
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Đặt đường dẫn Thư mục đầu ra
options.AddOutput(new DirectoryDataSource("path_to_output_directory"));
// Thực hiện quá trình
PngConverter.Process(options);
Cải thiện tính khả dụng của XlsConverter
- Class XlsConverter: là tĩnh và không yêu cầu sử dụng constructor.
- Class XlsConverter: mô tả đã được sửa.
Ví dụ Sử Dụng:
// Ví dụ này minh họa cách chuyển đổi PDF sang tài liệu XLSX.
// Tạo đối tượng PdfToXlsOptions để đặt hướng dẫn
var options = new PdfToXlsOptions();
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Đặt đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_xlsx_file.xlsx"));
// Thực hiện quá trình
XlsConverter.Process(options);
Cải thiện tính khả dụng của Chữ Ký
- Class Signature: là tĩnh và không yêu cầu sử dụng constructor.
- Class Signature: mô tả đã được sửa.
- Class Signature: giao diện IPlugin đã bị xóa.
Ví dụ Sử Dụng:
// Ví dụ này minh họa cách ký tài liệu PDF.
// Tạo đối tượng SignOptions để đặt hướng dẫn
var options = new SignOptions("path_to_your_pfx_file.pfx", "password_of_your_pfx_file");
// Thêm đường dẫn file đầu vào
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Đặt đường dẫn file đầu ra
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Thực hiện quá trình
Signature.Process(options);
Sửa đổi các constructor của PdfToHtmlOptions
Các constructor và đối số đã được tối ưu hóa.
Văn bản của đánh giá đã được thay đổi.
Cập nhật tài liệu
Cập nhật ví dụ, thêm ví dụ bổ sung:
- Trình chuyển đổi PDF sang JPEG
- Trình chuyển đổi PDF sang PNG
- Trình chuyển đổi PDF sang TIFF
- Chuyển đổi Form PDF
- Trình chuyển đổi HTML
- Bảo mật PDF
- Tối ưu hóa PDF
- Hợp nhất PDF
- Chia tách PDF
Sửa lỗi
- Sửa các vấn đề với Chú thích
- Sửa các vấn đề sau khi thay đổi kích thước
- Sửa đổi PDF sang PDF/A - Chuyển đổi Tên Phông
- Sửa đổi PDF sang DOCX - Khoảng trắng được thêm vào tiêu đề, và các vấn đề khác
- Sửa đổi HTML sang PDF - Nền PNG trong suốt
- Sửa đổi PDF nén - Cải thiện cách làm việc với Adobe Acrobat