Próbuję utworzyć plik PDF ze strony HTML. CMS, którego używam, to EPiServer.Potrzebujesz pomocy w tworzeniu plików PDF z HTML za pomocą itextsharp
To jest mój kod do tej pory:
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();
}
Ten wysyła treść nazwą artykułu, intra-tekst i korpusu głównego. Ale nie wstawia HTML, który jest w tekście artykułu i nie ma układu.
Próbowałem rzucić okiem na http://itextsharp.sourceforge.net/tutorial/index.html bez stania się mądrzejszym.
Wszelkie wskaźniki do prawego kierunku jest bardzo mile widziane :)
Świetnie. Dzięki. Czy 'YourHtmlDocument.html' może być adresem URL strony? – Steven
PS. Nie sądzę, że najnowsza wersja iTextSharp ma HtmlParser. Najbliżej dostaję to "iTextSharp.text.html.simpleparser.HTMLWorker' Ale używając tego, wymaga TextReader do parsowania ..... – Steven
@Steven - Masz rację! Przepraszam za to, że załadowałem stary program testowy (ze starą wersją iTextSharp), gdy odpowiedziałem na twoje pytanie. Masz jednak rację, HTMLWorker to sposób, w jaki chcesz zrobić. Edytowałem moją odpowiedź w oparciu o (ograniczone) testy, które zrobiłem z HTMLWorker i iTextSharp 5.0. –