v25.10

Plugin mới PDF Extractor

  • Class PdfExtractor: chứa tất cả các hàm của các plugin: TextExtractor, ImageExtractor, FormExporter.
  • Class TextExtractor: sẽ sớm bị xóa, hãy sử dụng PdfExtractor.
  • Class ImageExtractor: sẽ sớm bị xóa, hãy sử dụng PdfExtractor.
  • Class FormExporter: sẽ sớm bị xóa, hãy sử dụng PdfExtractor.
  • Class TextExtractorOptions: đổi tên thành Class ExtractTextOptions.
  • Class ImageExtractorOptions: đổi tên thành Class ExtractImagesOptions.
  • Class FormExportToDsvOptions: đổi tên thành Class ExtractFormDataToDsvOptions.
  • Xem The New Plugin Architecture.

Ví dụ sử dụng:

Ví dụ minh họa cách trích xuất nội dung văn bản từ tài liệu PDF.

// Create ExtractTextOptions object to set instructions
var options = new ExtractTextOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Perform the process
var results = PdfExtractor.ExtractText(options);
// Get the extracted text from the ResultContainer object
var textExtracted = results.ResultCollection[0].ToString();

Ví dụ sử dụng:

Ví dụ minh họa cách trích xuất nội dung văn bản từ tài liệu PDF với TextFormattingMode.

// Create ExtractTextOptions object to set TextFormattingMode
var options = new ExtractTextOptions(TextFormattingMode.Pure);
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Perform the process
var results = PdfExtractor.ExtractText(options);
// Get the extracted text from the ResultContainer object
var textExtracted = results.ResultCollection[0].ToString();

Ví dụ sử dụng:

Ví dụ minh họa cách trích xuất hình ảnh từ tài liệu PDF.

// Create ExtractImagesOptions to set instructions
var options = new ExtractImagesOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output Directory path
options.AddOutput(new DirectoryDataSource("path_to_results_directory"));
// Perform the process
var results = PdfExtractor.ExtractImages(options);
// Get path to image result
var imageExtracted = results.ResultCollection[0].ToFile();

Ví dụ sử dụng:

Ví dụ minh họa cách xuất giá trị Form ra file CSV.

// Create ExtractFormDataToDsvOptions object to set instructions
var options = new ExtractFormDataToDsvOptions(',', true);
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_csv_file.csv"));
// Perform the process
PdfExtractor.ExtractFormData(options);

Plugin mới PDF Manager

  • Class PdfManager: chứa tất cả các hàm của các plugin: Merger, Optimizer, Splitter, TableGenerator, TocGenerator.
  • Class Merger: sẽ sớm bị xóa.
  • Class Optimizer: sẽ sớm bị xóa, hãy sử dụng PdfManager.
  • Class Splitter: sẽ sớm bị xóa, hãy sử dụng PdfManager.
  • Class TableGenerator: sẽ sớm bị xóa, hãy sử dụng PdfManager.
  • Class TocGenerator: sẽ sớm bị xóa, hãy sử dụng PdfManager.
  • Xem The New Plugin Architecture.

Ví dụ sử dụng:

Ví dụ minh họa cách hợp nhất (Merge) hai tài liệu PDF.

// Create MergeOptions object to set instructions
var options = new MergeOptions();
// Add input file paths
options.AddInput(new FileDataSource("path_to_your_pdf_file_1.pdf"));
options.AddInput(new FileDataSource("path_to_your_pdf_file_2.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Merge(options);

Ví dụ sử dụng:

Ví dụ minh họa cách tách (Split) tài liệu PDF.

// Create SplitOptions object to set instructions
var options = new SplitOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file paths
options.AddOutput(new FileDataSource("path_to_result_pdf_file_1.pdf"));
options.AddOutput(new FileDataSource("path_to_result_pdf_file_2.pdf"));
// Perform the process
PdfManager.Split(options);

Ví dụ sử dụng:

Ví dụ minh họa cách tối ưu (Optimize) tài liệu PDF.

// Create OptimizeOptions object to set instructions
var options = new OptimizeOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Optimize(options);

Ví dụ sử dụng:

Ví dụ minh họa cách xoay (Rotate) tài liệu PDF.

// Create RotateOptions object to set instructions
var options = new RotateOptions();
// Set new Rotation
options.Rotation = Rotation.On90;
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Rotate(options);

Ví dụ sử dụng:

Ví dụ minh họa cách thay đổi kích thước (Resize) tài liệu PDF.

// Create ResizeOptions object to set instructions
var options = new ResizeOptions();
// Set new PageSize
options.PageSize = PageSize.A3;
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Resize(options);

Ví dụ sử dụng:

Ví dụ minh họa cách nén (Compress) tài liệu PDF.

// Create CompressOptions object to set instructions
var options = new CompressOptions();
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.Compress(options);

Ví dụ sử dụng:

Ví dụ minh họa cách thêm bảng (Table) vào file PDF.

// Configure table options
var options = new TableOptions();
options.InsertPageBefore(1)
   .AddTable()
        .AddRow()
            .AddCell().AddParagraph("Name")
            .AddCell().AddParagraph("Age")
        .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");
// Add input file path
options.AddInput(new FileDataSource("path_to_input.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_output.pdf"));
// Perform the process
PdfManager.AddTable(options);

Ví dụ sử dụng:

Ví dụ minh họa cách thêm mục lục (Table of Contents) vào file PDF.

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2));
options.Headings.Add(new TocHeading("Chapter I", 3));
options.Headings.Add(new TocHeading("Chapter II", 4));
options.Headings.Add(new TocHeading("Chapter III", 5));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.AddTableOfContents(options);

Ví dụ sử dụng:

Ví dụ minh họa cách thêm mục lục vào PDF kèm tạo bookmark.

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Generate links in bookmarks
options.GenerateBookmarks = true;
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
options.Headings.Add(new TocHeading("Chapter I", 3, true, 1));
options.Headings.Add(new TocHeading("Chapter II", 4, true, 1));
options.Headings.Add(new TocHeading("Example A", 4, true, 2));
options.Headings.Add(new TocHeading("Example B", 4, true, 2));
options.Headings.Add(new TocHeading("Example C", 4, true, 2));
options.Headings.Add(new TocHeading("Example D", 4, true, 2));
options.Headings.Add(new TocHeading("Chapter III", 5, true, 1));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output file path
options.AddOutput(new FileDataSource("path_to_result_pdf_file.pdf"));
// Perform the process
PdfManager.AddTableOfContents(options);

Ví dụ sử dụng:

Ví dụ minh họa cách thêm mục lục vào PDF và lưu dưới dạng stream.

// Create TocOptions object to set instructions
var options = new TocOptions();
// Set the Title
options.Title = "My Table of Contents";
// Design Headings
options.Headings.Add(new TocHeading("Introduction", 2, false, 1));
// Add input file path
options.AddInput(new FileDataSource("path_to_your_pdf_file.pdf"));
// Set output stream 
var outputStream = new MemoryStream();
options.AddOutput(new StreamDataSource(outputStream));
options.CloseOutputStreams = false;
// Perform the process
PdfManager.AddTableOfContents(options);

Cải tiến khả năng sử dụng của TableGenerator

  • Class TableGenerator: là tĩnh và không cần khởi tạo đối tượng.
  • Class TableGenerator: được đánh dấu là Obsolete. Hãy dùng PdfManager thay thế.

Cải tiến khả năng sử dụng của PdfChatGpt

  • Class PdfChatGpt: là tĩnh và không cần khởi tạo đối tượng.
  • Class PdfChatGptRequestOptions: thêm thuộc tính CancellationToken (được chuyển từ PdfChatGpt).

Ví dụ sử dụng:

Ví dụ minh họa 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ố token tối đa sẽ được tạo trong chat completion.
// for cancel
// var cancelTokenSource = new CancellationTokenSource();
// var cToken = cancelTokenSource.Token;
// options.CancellationToken = cToken;

// Add the request messages.
options.Messages.Add(new Message
{
    Content = "You are a helpful assistant.",
    Role = Role.System
});
options.Messages.Add(new Message
{
    Content = "What is the biggest pizza diameter ever made?",
    Role = Role.User
});

// Process the request.
await PdfChatGpt.ProcessAsync(options);

Các lỗi đã được sửa

  • Sửa lỗi meta data khi chuyển đổi html sang pdf.
  • Sửa lỗi định dạng văn bản và hình ảnh bị thu phóng khi chuyển PDF sang PDF/A_3b.
  • Sửa lỗi PDF/A tạo ra báo lỗi khi in.
  • Sửa lỗi ảnh trong PDF chuyển sang HTML vẫn còn nền.
  • Sửa lỗi một số ký tự Trung Quốc hiển thị dưới dạng hộp khi chuyển HTML sang PDF.
  • Sửa lỗi font tùy chỉnh ở dạng Base64 không được áp dụng khi chuyển HTML sang PDF.
  • Sửa lỗi CSS của trường mẫu không được áp dụng khi chuyển HTML sang PDF.
  • Sửa lỗi biểu đồ không hiển thị đúng khi chuyển HTML sang PDF.
  • Sửa lỗi ký tự đặc biệt không được hiển thị khi chuyển HTML sang PDF.
 Tiếng Việt