Saya memiliki HTML seperti di bawah ini:

<html>
    <head>
        <title></title>
    </head>
    <body>
                        
            <p>Name:{Applicant Name}</p>
            <p>Age:{Applicant Age}</p>
    </body>
</html>

Seperti yang dapat diketahui bahwa, {Nama Pemohon} dan {Usia Pemohon} adalah pemegang tempat.

Tujuannya adalah untuk mengganti nilai placeholder tersebut saat runtime dan menghasilkan PDF menggunakan iTextSharp.

Saya dapat membuat PDF dari templat HTML tetapi tidak dapat mengganti nilai placeholder saat runtime.

Inilah yang saya coba sejauh ini:

public void HTML2PDFTest()
        {
            var name = "some name";
            var age = 27;
           
            HtmlConverter.ConvertToPdf
                (
                        new FileInfo(@"D:\test.html")
                        ,new FileInfo(@"D:\test.pdf")
                );
        }

Hasil akhir akan menjadi:

enter image description here

1
priyanka.sarkar 19 November 2020, 19:49

1 menjawab

Jawaban Terbaik

Sebelum iTextSharp membuka dan mengonversi file HTML, Anda dapat melakukan String.Replace() terhadap file HTML untuk mengubah placeholder Anda ke nilai yang Anda inginkan. Lihat contoh di bawah ini:

public void HTML2PDFTest()
{
    var name = "some name";
    var age = 27;

    string htmlFileContent = "";
    using (System.IO.StreamReader file = new System.IO.StreamReader(@"D:\test.html"))
        htmlFileContent = file.ReadToEnd();

    htmlFileContent = htmlFileContent.Replace("{Applicant Name}", name).Replace("{Applicant Age}", age.ToString());

    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"D:\test.html"))
        file.Write(htmlFileContent);
    
    HtmlConverter.ConvertToPdf
    (
        new FileInfo(@"D:\test.html"),
        new FileInfo(@"D:\test.pdf")
    );
}
2
Koa 19 November 2020, 17:39