Inhoud
ITextSharp is onderdeel van iText, een gratis Java-bibliotheek met code voor het genereren van PDF's. Het is ontwikkeld in C # voor het .NET-platform. PDF's zijn documenten van een vast formaat die vaak worden gebruikt om afdrukbare inhoud op websites te leveren.
routebeschrijving
Converteer een HTML-document naar PDF (bestandsafbeelding door Alex White van Fotolia.com)-
Open een C # -editor.
-
Maak een C # -bestand en voeg de onderstaande code toe.
-
Gebruik een "namespace" om de iTextSharp-bibliotheek te bellen:
iTextShart.text; met iTextSharp.text.pdf;
-
Roep de embedding-klasse in iTextSharp aan en stel StringBuilder in om leeg te maken:
Document document = nieuw document (PageSize.A4, 80, 50, 30, 65); StringBuilder strData = new StringBuilder (string.Empty);
-
Voeg een pad toe om HTML te genereren vanuit GridView-inhoud:
string strHTMLpath = Server.MapPath ("MyHTML.html");
-
Stel het pad naar de constructie van het PDF-bestand in:
string strPDFpath = Server.MapPath ("MyPDF.pdf");
-
Bel de gegevens in het HTML-bestand en verwerk het bestand:
StringWriter sw = nieuwe StringWriter (); sw.WriteLine (Environment.NewLine); sw.WriteLine (Environment.NewLine); sw.WriteLine (Environment.NewLine); sw.WriteLine (Environment.NewLine); HtmlTextWriter htw = new HtmlTextWriter (sw); gvSerchResult.AllowPaging = false; gvSerchResult.AllowSorting = false; BindGridView (); gvSerchResult.RenderControl (htw);
StreamWriter strWriter = nieuwe StreamWriter (strHTMLpath, false, Encoding.UTF8); strWriter.Write ("> "+ htw.InnerWriter.ToString () +" "); strWriter.Close (); strWriter.Dispose ();
-
Gebruik de "parser" om HTML-inhoud naar een PDF te converteren:
iTextSharp.text.html.simpleparser. StyleSheet-stijlen = nieuwe iTextSharp.text.html.simpleparser.StyleSheet (); styles.LoadTagStyle ("ol", "leading", "16,0"); PdfWriter.GetInstance (document, nieuwe FileStream (strPDFpath, FileMode.Create)); document.Open ();
-
Stel de lettertypen voor de elementen op de pagina in en voeg er items aan toe:
ArrayList-objecten; styles.LoadTagStyle ("li", "face", "garamond"); styles.LoadTagStyle ("span", "size", "8px"); styles.LoadTagStyle ("body", "font-family", "times new roman"); styles.LoadTagStyle ("body", "font-size", "12px"); document.NewPage (); objects = iTextSharp.text.html.simpleparser. HTMLWorker.ParseToList (nieuwe StreamReader (strHTMLpath, Encoding.Default), stijlen); for (int k = 0; k <objects.Count; k ++) {document.Add ((IElement) -objecten [k]); }
-
Wis de geheugenvariabelen en sluit de bestanden:
{document.Close (); Response.Write (Server.MapPath ("~ /" + strPDFpath)); Response.ClearContent (); Response.ClearHeaders (); Response.AddHeader ("Content-Disposition", "attachment; bestandsnaam =" + strPDFpath); Response.ContentType = "toepassing / octet-stream"; Response.WriteFile (Server.MapPath ("~ /" + strPDFpath)); Response.Flush (); Response.Close (); if (File.Exists (Server.MapPath ("~ /" + strPDFpath))) {File.Delete (Server.MapPath ("~ /" + strPDFpath)); }}
-
Voer het C # -bestand uit om het PDF-bestand te maken vanuit het HTML-bestand.
Wat je nodig hebt
- C # -editor