Я пытаюсь создать PDF-файл с HTML-страницы. CMS, которую я использую, - это EPiServer.Нужна помощь при создании PDF из HTML с помощью itextsharp
Это мой код до сих пор:
protected void Button1_Click(object sender, EventArgs e)
{
naaflib.pdfDocument(CurrentPage);
}
public static void pdfDocument(PageData pd)
{
//Extract data from Page (pd).
string intro = pd["MainIntro"].ToString(); // Attribute
string mainBody = pd["MainBody"].ToString(); // Attribute
// makae ready HttpContext
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/pdf";
// Create PDF document
Document pdfDocument = new Document(PageSize.A4, 80, 50, 30, 65);
//PdfWriter pw = PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
pdfDocument.Open();
pdfDocument.Add(new Paragraph(pd.PageName));
pdfDocument.Add(new Paragraph(intro));
pdfDocument.Add(new Paragraph(mainBody));
pdfDocument.Close();
HttpContext.Current.Response.End();
}
Это выводит содержание названия статьи, интро-текста и основным корпусом. Но это не соответствует HTML, который находится в тексте статьи, и нет макета.
Я попытался взглянуть на http://itextsharp.sourceforge.net/tutorial/index.html, не принимая никаких разумных решений.
Все указатели на правильном направлении очень ценится :)
Отлично. Благодарю. Может ли 'YourHtmlDocument.html' быть URL-адрес страницы? – Steven
PS. Я не думаю, что в новейшей версии iTextSharp есть HtmlParser. Самое близкое, что я получаю его 'iTextSharp.text.html.simpleparser.HTMLWorker' Но, используя это, требуется TextReader для синтаксического анализа ..... – Steven
@Steven - Вы правы! Извините, я загрузил старую тестовую программу (со старой версией iTextSharp), когда я ответил на ваш вопрос. Вы правы, хотя, HTMLWorker - это то, как вы хотите. Я отредактировал свой ответ на основе (ограниченного) тестирования, которое я сделал с HTMLWorker и iTextSharp 5.0. –