Rumah  >  Artikel  >  pembangunan bahagian belakang  >  html kepada pdf c

html kepada pdf c

PHPz
PHPzasal
2023-05-09 11:15:07751semak imbas

HTML ke PDF C#: Cara menukar HTML kepada PDF dalam aplikasi ASP.NET MVC

Dalam era digital hari ini, semakin ramai orang menggunakan fail PDF untuk mengarkib, berkongsi dan melihat dokumen. Kadangkala, penukaran HTML kepada fail PDF boleh memudahkan pengguna anda menyemak imbas dokumen. Dalam artikel ini, kita akan belajar cara menukar HTML kepada PDF menggunakan C#.

Untuk menukar HTML kepada PDF, kita perlu menggunakan perpustakaan yang dipanggil WkHtmlToPdf. Pustaka ini berdasarkan WebKit dan boleh menukar halaman HTML kepada fail PDF. Perpustakaan menyediakan banyak pilihan konfigurasi untuk menukar HTML dengan mudah ke dalam format yang dikehendaki.

Jom mulakan! Mula-mula anda perlu memasang perpustakaan WkHtmlToPdf daripada pengurus pakej NuGet. Buka Visual Studio dan klik kanan laluan "Rujukan" dalam projek dan pilih "Urus Pakej NuGet". Taip "WkHtmlToPdf" ke dalam kotak carian dan tekan Enter. Pilih perpustakaan dan pasangkannya.

Seterusnya, kita perlu mencipta kelas yang dipanggil "HtmlToPdfConverter", yang bertanggungjawab untuk mengendalikan penukaran HTML kepada PDF. Dalam kelas ini, kita perlu menulis kaedah berikut:

public byte[] ConvertHtmlToPdf(string html)
{
    byte[] pdfBuffer; // 将转换后的PDF文件存储到字节数组中

    var options = new PdfOptions
    {
        // 设置PDF选项,包括页面大小、宽度和高度等
        PageSize = PaperKind.A4,
        Orientation = PdfOrientation.Portrait
    };

    var htmlToPdf = new HtmlToPdfConverter(options); // 创建HTML转换PDF对象

    pdfBuffer = htmlToPdf.GeneratePdf(html); // 生成PDF文件,并将其存储在缓冲区中

    return pdfBuffer;
}

Dengan kod di atas, kami menukar HTML berparameter kepada format PDF dan kemudian menyimpan fail dalam tatasusunan bait. Kelas HtmlToPdfConverter ialah kelas teras perpustakaan WkHtmlToPdf, yang menyediakan banyak pilihan berguna untuk mengkonfigurasi output PDF. Dalam kod di atas, kami menetapkan pilihan seperti saiz halaman dan orientasi halaman.

Seterusnya, mari gunakan kelas HtmlToPdfConverter kami dalam aplikasi ASP.NET MVC. Pertama, kita perlu mencipta kaedah tindakan dalam pengawal untuk memanggil penukar kita. Contohnya:

public ActionResult ConvertHtmlToPdf()
{
    string html = "<html><body><h1>测试HTML转PDF</h1></body></html>";

    byte[] pdfBuffer = new HtmlToPdfConverter().ConvertHtmlToPdf(html);

    return File(pdfBuffer, "application/pdf"); // 返回转换后的PDF文件
}

Dalam contoh ini, kami mendapat kandungan daripada rentetan HTML ringkas, hantarkannya kepada kaedah HtmlToPdfConverter kami dan dapatkan fail PDF daripada tatasusunan bait yang dikembalikan. Akhir sekali, kami menggunakan jenis pulangan MVC "Fail" untuk menghantar fail PDF kepada klien. Dalam jenis pulangan ini, parameter pertama ialah tatasusunan bait, dan parameter kedua ialah jenis MIME keluaran, iaitu "aplikasi/pdf".

Akhir sekali, kami mengkonfigurasi kaedah tindakan untuk dipanggil pada URL tertentu. Sebagai contoh, tambahkan kod berikut pada laluan lalai untuk mengakses "/Home/ConvertHtmlToPdf":

routes.MapRoute(
    name: "ConvertHtmlToPdf",
    url: "Home/ConvertHtmlToPdf",
    defaults: new { controller = "Home", action = "ConvertHtmlToPdf" });

Seterusnya, kita hanya boleh menavigasi ke URL tersebut dalam aplikasi untuk menukar HTML kepada PDF.

Dalam artikel ini, kami memperkenalkan cara menukar HTML kepada PDF menggunakan C# dalam aplikasi ASP.NET MVC. Kami menggunakan perpustakaan WkHtmlToPdf untuk melaksanakan penukaran HTML kepada PDF dan mengeluarkannya kepada klien menggunakan kaedah tindakan yang mudah. Kaedah ini boleh digunakan untuk menjana pelbagai jenis fail PDF, membantu mengoptimumkan pengalaman pengguna aplikasi dan perkongsian data.

Atas ialah kandungan terperinci html kepada pdf c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn