c # читать HTML-файл и конвертировать в PDF - PullRequest
1 голос
/ 16 марта 2012

Я преобразую небольшие строки HTML в PDF, как это:

// set a path to where you want to write the PDF to.
string sPathToWritePdfTo = @"path\new_pdf.pdf";

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
sbHtml.Append("<html>");
sbHtml.Append("<html>");
sbHtml.Append("<body>");
sbHtml.Append("<font size='14'> my first pdf</font>");
sbHtml.Append("<br />");
sbHtml.Append("this is my pdf!!!!");
sbHtml.Append("</body>");
sbHtml.Append("</html>");

// create file stream to PDF file to write to
using (System.IO.Stream stream = new System.IO.FileStream
            (sPathToWritePdfTo, System.IO.FileMode.OpenOrCreate))
{
    // create new instance of Pdfizer
    Pdfizer.HtmlToPdfConverter htmlToPdf = new Pdfizer.HtmlToPdfConverter();

    // open stream to write Pdf to to
    htmlToPdf.Open(stream);

    // write the HTML to the component
    htmlToPdf.Run(sbHtml);

    // close the write operation and complete the PDF file
    htmlToPdf.Close();

Интересно, я могу выполнить приведенное выше преобразование для больших строк HTML, не используя метод добавления. Я попробовал эту строку:

string sbHtml=File.ReadAllText("mypath/pdf.html"); 

Вместо этой строки:

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();  

но это не сработало: у меня было исключение в строке:

     htmlToPdf.Run(sbHtml);

"xmlexception не обработан, но код пользователя

Я также должен упомянуть, что путь, который я прочитал в html-файле, взят с моего компьютера !! Это не от сервера или чего-либо еще. Я хотел бы получить ответы на оба пути.

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

Поможет ли это?

System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();    
sbHtml.Append(File.ReadAllText("mypath/pdf.html"));
0 голосов
/ 07 марта 2015

Что касается исключения, убедитесь, что HTML является допустимым XHTML.PDFizer требует действительный XHTML.

0 голосов
/ 16 марта 2012

Если преобразователь имеет перегрузку для строки, вы можете просто использовать:

  htmlToPdf.Run(File.ReadAllText(@"mypath/pdf.html"));

Если нет и принимает только StringBuilder:

  System.Text.StringBuilder sbHtml = new System.Text.StringBuilder();
    sbHtml.Append(File.ReadAllText(@"mypath/pdf.html"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...