1. Các sản phẩm
  2.   PDF
  3.   .NET
  4.   QuestPDF
 
  

API .NET miễn phí để xử lý tài liệu PDF

Thư viện .NET mã nguồn mở để tạo, chỉnh sửa, tải và thao tác với các tệp PDF. Thêm các trang, bảng, hình ảnh, Văn bản và hình dạng mới vào Tệp PDF.

QuestPDF là một thư viện .NET hiện đại mã nguồn mở rất hữu ích cho phép các nhà phát triển phần mềm tạo, đọc, sửa đổi và thao tác các tài liệu PDF một cách dễ dàng. Thư viện rất phong phú về tính năng và cung cấp công cụ bố trí được thiết kế với sự hỗ trợ phân trang đầy đủ. Thư viện rất dễ xử lý và chắc chắn có thể tăng tốc vòng đời phát triển của bạn. Thư viện hỗ trợ khả năng tải lại nóng, nghĩa là nó cung cấp cho nhà phát triển kết quả thời gian thực mà không cần biên dịch lại mã.

Thư viện QuestPDF rất trôi chảy và rất dễ tạo, tùy chỉnh và quản lý một số tài liệu phức tạp nhất chỉ bằng vài dòng mã. Có một số tính năng khác của thư viện như vẽ văn bản đơn giản, vẽ văn bản với kiểu dáng tùy chỉnh, hỗ trợ phân trang, hỗ trợ phông chữ tùy chỉnh, giãn cách chữ cái, giãn cách đoạn văn tùy chỉnh, hỗ trợ Unicode, chèn hình ảnh, quản lý tỷ lệ khung hình của hình ảnh, hiển thị đường viền, chèn siêu liên kết, xoay vòng nội dung và hình ảnh, v.v.

Previous Next

Bắt đầu với QuestPDF

Thư viện QuestPDF có sẵn dưới dạng gói nuget. Vì vậy, bạn nên sử dụng NuGet để cài đặt QuestPDF cho dự án của mình. Vui lòng sử dụng lệnh sau để cài đặt thành công.

Cài đặt QuestPDF từ Nuget

// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file

Bạn cũng có thể cài đặt thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ kho lưu trữ GitHub.

Tạo PDF dễ dàng qua Thư viện .NET

Thư viện PDF mã nguồn mở QuestPDF cho phép các nhà phát triển phần mềm chỉ cần sử dụng một vài lệnh mã .NET đơn giản để tạo tài liệu PDF bên trong các ứng dụng của riêng họ. Thư viện giúp các nhà phát triển dễ dàng xác định kích thước trang, lề, màu nền, kiểu văn bản, kích thước phông chữ, đầu trang và chân trang, nội dung trang, khoảng cách, v.v. Việc cập nhật các tệp PDF hiện có của bạn cũng rất dễ dàng.

Tạo tệp PDF qua Thư viện .NET

 using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
// code in your main method
Document.Create(container =>
{
    container.Page(page =>
    {
        page.Size(PageSizes.A4);
        page.Margin(2, Unit.Centimetre);
        page.PageColor(Colors.White);
        page.DefaultTextStyle(x => x.FontSize(20));
        page.Header()
            .Text("Hello PDF!")
            .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
        page.Content()
            .PaddingVertical(1, Unit.Centimetre)
            .Column(x =>
            {
                x.Spacing(20);
                x.Item().Text(Placeholders.LoremIpsum());
                x.Item().Image(Placeholders.Image(200, 100));
            });
        page.Footer()
            .AlignCenter()
            .Text(x =>
            {
                x.Span("Page ");
                x.CurrentPageNumber();
            });
    });
})
.GeneratePdf("hello.pdf");

Quản lý văn bản & định dạng qua C# API

Thư viện QuestPDF đã cung cấp một số tính năng quan trọng để xử lý việc chèn văn bản cũng như vẽ văn bản bên trong tài liệu PDF. Nó cho phép các nhà phát triển vẽ văn bản với kiểu dáng mặc định cũng như kiểu dáng tùy chỉnh, chỉ số dưới và chỉ số trên, điều chỉnh dòng văn bản, điều chỉnh khoảng cách giữa các chữ cái, căn chỉnh phông chữ, đặt mẫu kiểu chữ, khoảng cách đoạn tùy chỉnh, đặt hướng văn bản, thêm số trang, thêm siêu liên kết, v.v. trên.

Chỉ số dưới và chỉ số trên trong tệp PDF qua thư viện .NET

 .Text(text =>
{
    text.DefaultTextStyle(x => x.FontSize(20));
    text.ParagraphSpacing(10);
    var highlight = TextStyle.Default.BackgroundColor(Colors.Green.Lighten3);
    text.Span("E=mc").Style(highlight);
    text.Span("2").Superscript().Style(highlight);
    text.Span(" is the equation of mass–energy equivalence.");
    text.EmptyLine();
    text.Span("H").Style(highlight);
    text.Span("2").Subscript().Style(highlight);
    text.Span("O").Style(highlight);
    text.Span(" is the chemical formula for water.");
}); 

Thêm & Quản lý Hình ảnh trong PDF qua Thư viện C#

Thư viện PDF mã nguồn mở QuestPDF đã bao gồm hỗ trợ đầy đủ để thêm hình ảnh tĩnh cũng như động bên trong các ứng dụng C# .NET. Các nhà phát triển phần mềm có thể dễ dàng đặt các hình ảnh tĩnh bên trong tài liệu PDF của họ ở bất kỳ định dạng hình ảnh raster phổ biến nào, như JPG, PNG, BMB, v.v. Đối với hình ảnh động, nó cung cấp bố cục linh hoạt, do đó rất khó để dự đoán độ phân giải của hình ảnh. Để có được hình ảnh rõ nét nhất, bạn nên tạo hình ảnh có độ phân giải được chỉ định. Nó rất hữu ích để tạo bản đồ/biểu đồ.

Thêm hình ảnh vào PDF qua Thư viện .NET

 // it is possible to provide an image as:
// 1) a binary array
byte[] imageData = File.ReadAllBytes("path/to/logo.png")
container.Image(imageData)
// 2) a fileName
container.Image("path/myFile.png")
// 3) a stream
using var stream = new FileStream("logo.png", FileMode.Open);
container.Image(stream); 

Chèn bảng trong PDF qua C# API

QuestPDF cho phép các lập trình viên máy tính đạt được các cấu trúc phức tạp hơn bất kỳ sự kết hợp nào của các phần tử Hàng và Cột. Để tạo một thể hiện bảng đơn giản, người dùng cần mô tả chiều rộng của mỗi cột và sau đó đặt bất kỳ số lượng hàng và cột nào bên trong nó. Thư viện hỗ trợ các tính năng như thêm đầu trang hoặc chân trang của bảng, thêm hàng mới, chèn ô mới, xóa ô, kéo dài hàng và kéo dài cột, xếp chồng ô và nhiều tính năng khác.

Tạo bảng đơn giản trong tệp PDF qua thư viện .NET

 .Border(1)
.Table(table =>
{
    table.ColumnsDefinition(columns =>
    {
        columns.RelativeColumn();
        columns.RelativeColumn();
        columns.RelativeColumn();
        columns.RelativeColumn();
    });
    // by using custom 'Element' method, we can reuse visual configuration
    table.Cell().Row(1).Column(4).Element(Block).Text("A");
    table.Cell().Row(2).Column(2).Element(Block).Text("B");
    table.Cell().Row(3).Column(3).Element(Block).Text("C");
    table.Cell().Row(4).Column(1).Element(Block).Text("D");
    // for simplicity, you can also use extension method described in the "Extending DSL" section
    static IContainer Block(IContainer container)
    {
        return container
            .Border(1)
            .Background(Colors.Grey.Lighten3)
            .ShowOnce()
            .MinWidth(50)
            .MinHeight(50)
            .AlignCenter()
            .AlignMiddle();
    }
});
 Tiếng Việt