Sem Göksu
Sem Göksu
Yazılım · Yolculuk · Fenerbahçe
ASP.NET

ASP.NET ile HTML'den PDF'e Çevirme İşlemi

09 Ekim 2021 2 dk okuma 7 0
HTML'den PDF'e dönüşüm işlemini "wkhtmltopdf" ile çok basit bir şekilde yapabiliyoruz.

  public static string HtmlToPdf(string pdfOutputLocation, string outputFilenamePrefix, string[] urls, string[] options = null, string pdfHtmlToPdfExePath = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")

    {

        string urlsSeparatedBySpaces = string.Empty;

        try

        {

            //Determine inputs

            if ((urls == null) || (urls.Length == 0))

                throw new Exception("No input URLs provided for HtmlToPdf");

            else

                urlsSeparatedBySpaces = String.Join(" ", urls); //Concatenate URLs

            string outputFolder = pdfOutputLocation;

            string outputFilename = outputFilenamePrefix + ".PDF"; // assemble destination PDF file name

            var p = new System.Diagnostics.Process()

            {

                StartInfo =

                    {

                        FileName = pdfHtmlToPdfExePath,

                        Arguments = ((options == null) ? "" : String.Join(" ", options)) + " " + urlsSeparatedBySpaces + " " + outputFilename,

                        UseShellExecute = false, // needs to be false in order to redirect output

                        RedirectStandardOutput = true,

                        RedirectStandardError = true,

                        RedirectStandardInput = true, // redirect all 3, as it should be all 3 or none

                        WorkingDirectory = HttpContext.Current.Server.MapPath(outputFolder)

                    }

            };

            p.Start();

            // read the output here...

            var output = p.StandardOutput.ReadToEnd();

            var errorOutput = p.StandardError.ReadToEnd();

            // ...then wait n milliseconds for exit (as after exit, it can't read the output)

            p.WaitForExit(100000);

            // read the exit code, close process

            int returnCode = p.ExitCode;

            p.Close();

            // if 0 or 2, it worked so return path of pdf

            if ((returnCode == 0) || (returnCode == 2))

                return outputFolder + outputFilename;

            else

                throw new Exception(errorOutput);

        }

        catch (Exception exc)

        {

            throw new Exception("Problem generating PDF from HTML, URLs: " + urlsSeparatedBySpaces + ", outputFilename: " + outputFilenamePrefix, exc);

        }

    }


Kullanırken de aşağıdaki gibi çağırabiliriz.Parametreler hakkında bilgileri aşağıda bulabilirsiniz.

1. Parametre: PDF'in kaydedileceği klasör.
2. Parametre: PDF dosyasının adı.
3. Parametre: Hangi URL'in PDF'i oluşturulacaksa belirtiyoruz.


HtmlToPdf(
"/uplodas/", "PDFDosyasiAdi", new string[] { "http://www.semgoksu.com" });

Paylaş:

Yorumlar (0)

Henüz yorum yok. İlk yorumu sen yap!

Yorum bırak

* Yorumlar moderasyon sonrası yayınlanır. E-posta gizli tutulur.