Chuyển đổi PDF sang HTML

PDF(Định dạng tài liệu di động) là một trong những định dạng tài liệu được sử dụng rộng rãi để chia sẻ thông tin và dữ liệu đa nền tảng. Một trong những khả năng độc đáo của nó bao gồm độ trung thực của tài liệu vẫn được giữ nguyên khi xem trên bất kỳ nền tảng nào sử dụng ứng dụng theo thông số kỹ thuật của Adobe. Hơn nữa, HTML(Ngôn ngữ đánh dấu siêu văn bản) cũng là định dạng tệp hàng đầu để phát triển trang web và hầu hết các trình duyệt web đều hỗ trợ định dạng này. Tuy nhiên, PDF được chấp nhận rộng rãi vì có thể xem dễ dàng trên mọi thiết bị mà không làm mất định dạng tài liệu. Do đó, trong bài viết này, chúng ta sẽ thảo luận các bước về cách chuyển đổi tệp HTML sang định dạng PDF bằng .NET API.

API C# để chuyển đổi HTML sang PDF

Để thực hiện thao tác chuyển đổi, trước tiên chúng ta cần cài đặt Aspose.PDF for .NET trên hệ thống. API có sẵn trên thư viện NuGet. Vui lòng chạy lệnh sau trên Bảng điều khiển quản lý gói để cài đặt nó:

Install-Package Aspose.Pdf

Sau khi quá trình cài đặt hoàn tất, Aspose.PDF for .NET sẽ xuất hiện trong thư mục Gói trong trình khám phá giải pháp.

Chuyển đổi HTML sang PDF trong C#

Dưới đây là các bước về cách bạn có thể Chuyển đổi HTML sang PDF bằng C#

  1. Tạo một phiên bản của lớp Giấy phép để loại bỏ mọi hạn chế trong quá trình tạo tệp PDF.
  2. Tạo một đối tượng của lớp HtmlLoadOptions trong khi chuyển url cơ sở HTML đầu vào làm đối số cho [HtmlLoadOptions(…)](https:/ /apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions).
  3. Khởi tạo đối tượng của lớp Document và chuyển [HtmlLoadOptions](https://apireference.aspose.com/pdf/net/aspose. pdf/htmlloadoptions) làm đối số cho hàm tạo của nó.
  4. Gọi phương thức Save(…) của đối tượng Document và hiển thị đầu ra ở định dạng PDF.
// tạo một đối tượng để bắt đầu giấy phép
Aspose.Pdf.License license = new Aspose.Pdf.License();

// cung cấp đường dẫn của tập tin giấy phép
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// tạo một thể hiện của lớp HtmlLoadOptions
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// tạo đối tượng Tài liệu và cung cấp đường dẫn tệp HTML đầu vào
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// lưu HTML kết quả sang định dạng PDF
document.Save("/Documents/Converted.pdf");

Nhúng phông chữ trong quá trình chuyển đổi

Hầu hết các trang HTML thường sử dụng phông chữ (phông chữ ig từ các thư mục cục bộ, Phông chữ của Google, v.v.) và để duy trì bố cục của trang, các phông chữ tương tự sẽ được nhúng trong quá trình kết xuất. Vì vậy, để kiểm soát việc nhúng phông chữ vào tài liệu thu được, chúng ta cần sử dụng thuộc tính IsEmbedFonts.

// Nhúng phông chữ trong quá trình chuyển đổi
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

Đơn vị đo lường trong Aspose.PDF là Điểm. Và chúng ta biết rằng A3 có kích thước 297 × 420 mm hoặc 11,69 × 16,54 inch. Vì vậy, kích thước được làm tròn thành 842 × 1190 điểm. Trong đoạn mã sau, chúng tôi đang điều chỉnh kích thước trang của tài liệu thu được ở dạng A3 và hướng trang ở dạng Ngang.

// Đặt Kích thước trang là A3 và hướng trang là Ngang
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

Chuyển đổi trang web sang PDF

Ngoài việc chuyển đổi tệp HTML, chúng tôi cũng có thể có yêu cầu chuyển đổi trực tiếp trang web sang định dạng PDF. Vì vậy, để thực hiện yêu cầu này, trước tiên chúng ta sẽ tìm nạp nội dung trang Web từ xa bằng cách sử dụng cá thể HttpClient, tạo một đối tượng Stream và sau đó chuyển cá thể Stream tới đối tượng Document. Lý do chúng ta cần nội dung trong Stream là vì phiên bản Document chỉ chấp nhận các tệp hoặc đối tượng steam.

Phần sau đây giải thích các bước về cách chuyển đổi một trang Web sang PDF bằng C#

  1. Đọc nội dung của trang bằng đối tượng HttpClient.
  2. Khởi tạo đối tượng HtmlLoadOptions và đặt URL cơ sở.
  3. Khởi tạo đối tượng Tài liệu và truyền đối tượng luồng và phiên bản HtmlLoadOptions làm đối số.
  4. Gọi phương thức Save(String) từ lớp Document để tạo đầu ra.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // Đặt kích thước trang A3 và hướng ngang; 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // Đặt kích thước trang
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // Tạo một thể hiện của đối tượng Document
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // Lưu kết quả
    pdfDocument.Save(_dataDir + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        // tìm nạp và trả về kết quả trong phiên bản luồng
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

Hiển thị HTML hoàn chỉnh trên một trang

Trong quá trình chuyển đổi HTML sang PDF, độ dài của tệp kết quả tùy theo độ dài nội dung của tài liệu HTML đầu vào. Do đó, nếu HTML đầu vào bao gồm nhiều trang thì tệp kết quả cũng sẽ trải rộng trên nhiều trang. Tuy nhiên, chúng tôi có thể giới hạn đầu ra ở một trang PDF. Để thực hiện yêu cầu này, có thể sử dụng thuộc tính IsRenderToSinglePage của lớp HtmlLoadOptions.

Dưới đây là đoạn mã để hiển thị nội dung HTML hoàn chỉnh trên một trang PDF bằng C#.

// Để biết các ví dụ và tệp dữ liệu đầy đủ, vui lòng truy cập https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Khởi tạo đối tượng HtmlLoadOptions
HtmlLoadOptions options = new HtmlLoadOptions();

// Đặt kết xuất thành thuộc tính trang đơn
options.IsRenderToSinglePage = true;

// Tải nội dung HTML nguồn tài liệu
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// Lưu tệp PDF kết quả
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

Nhận giấy phép miễn phí

Bạn có thể yêu cầu giấy phép tạm thời miễn phí để dùng thử API mà không có bất kỳ giới hạn đánh giá nào.

Phần kết luận

Trong bài viết này, chúng ta đã tìm hiểu về phương pháp chuyển đổi tệp HTML sang định dạng PDF bằng .NET API. Nếu bạn muốn tìm hiểu thêm về các tính năng thú vị khác đang được Aspose.PDF cung cấp cho .NET, vui lòng truy cập trang Các tính năng chính. Bạn có thể tìm thấy tập hợp đầy đủ các ví dụ trên kho GitHub.

Mẹo nhanh

Chúng tôi cũng đã phát triển các ứng dụng trực tuyến miễn phí để kiểm tra nhanh các tính năng được cung cấp bởi API của chúng tôi. Vì vậy, bạn có thể kiểm tra Ứng dụng chuyển đổi Aspose.PDF để chuyển đổi tệp HTML sang định dạng PDF. Hơn nữa, bạn cũng có thể sử dụng nhiều định dạng tệp khác và đáp ứng các yêu cầu chuyển đổi của mình.