本文整理汇总了C#中iTextSharp.tool.xml.pipeline.html.HtmlPipelineContext.SetTagFactory方法的典型用法代码示例。如果您正苦于以下问题:C# HtmlPipelineContext.SetTagFactory方法的具体用法?C# HtmlPipelineContext.SetTagFactory怎么用?C# HtmlPipelineContext.SetTagFactory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iTextSharp.tool.xml.pipeline.html.HtmlPipelineContext
的用法示例。
在下文中一共展示了HtmlPipelineContext.SetTagFactory方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HtmlToPdf
public void HtmlToPdf(string htmlFile, string pdfFile, string htmlImageDirectory)
{
using (FileStream pdfStream = new FileStream(pdfFile, FileMode.OpenOrCreate))
{
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, pdfStream);
doc.Open();
//TODO: apply external css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
//HTML
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
htmlContext.SetImageProvider(new ImageProvider(htmlImageDirectory));
htmlContext.SetLinkProvider(new LinkProvider("/"));
//pipelines
PdfWriterPipeline pdf = new PdfWriterPipeline(doc, writer);
HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);
XMLWorker worker = new XMLWorker(css, true);
XMLParser p = new XMLParser(true, worker, Encoding.UTF8);
using (TextReader reader = File.OpenText(htmlFile))
{
p.Parse(reader);
}
doc.Close();
}
}
示例2: SetupDefaultProcessingYourself
virtual public void SetupDefaultProcessingYourself() {
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc,
new FileStream(TARGET + "columbus2.pdf", FileMode.Create));
doc.Open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext,
new PdfWriterPipeline(doc, writer)));
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser p = new XMLParser(worker);
p.Parse(File.OpenRead(RESOURCES + @"\examples\columbus.html"));
doc.Close();
}
示例3: btnGeneratePdf_Click1
protected void btnGeneratePdf_Click1(object sender, EventArgs e)
{
var sb = new StringBuilder();
sb.Append("<table>");
sb.Append("<tr>");
sb.Append("<th class=\"th\">Title</th>");
sb.Append("<th>Author</th>");
sb.Append("</tr>");
MongoDbProvider.db.LoadData<Word>().ToList().ForEach(b =>
{
sb.Append("<tr>");
sb.AppendFormat("<td>{0}</td>", b.WordName);
sb.AppendFormat("<td>{0}</td>", b.Translation);
sb.Append("</tr>");
});
sb.Append("</table>");
using (var document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document,
new FileStream(Server.MapPath("loremipsum5.pdf"), FileMode.Append));
document.Open();
var htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
//change this to your CCS file location
cssResolver.AddCssFile(Server.MapPath("style.css"), true);
var pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
var worker = new XMLWorker(pipeline, true);
var p = new XMLParser(worker);
p.Parse(new StringReader(sb.ToString()));
}
}
示例4: iTextSharp
private void iTextSharp(string html)
{
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=BookingDetails.pdf");
System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Document pdfDoc = new Document(new Rectangle(922, 1296), 7f, 7f, 7f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
pdfDoc.Open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICssFile cfile = new CssFileImpl();
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + @"App_Data\PDF.all.min.css", true);
//Pipeline
IPipeline pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(pdfDoc, writer)));
//XMLWorker
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser parser = new XMLParser();
parser.AddListener(worker);
using (TextReader sr = new StringReader(html))
{
parser.Parse(sr);
}
parser.Flush();
pdfDoc.Close();
System.Web.HttpContext.Current.Response.Write(pdfDoc);
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
}
示例5: ExecuteResult
/// <summary>
/// ExecuteResult
/// </summary>
/// <param name="context"></param>
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Clear();
context.HttpContext.Response.ContentType = "application/pdf";
if (Download)
context.HttpContext.Response.AddHeader("content-disposition", "attachment; filename=" + FileName);
Html = RenderRazorViewToString(context);
Format(context.HttpContext);
using (var document = new Document(Settings.PageSize, Settings.Margin.Left, Settings.Margin.Right, Settings.Margin.Top, Settings.Margin.Bottom))
{
var memoryStream = new MemoryStream();
TextReader textReader = new StringReader(Html);
var pdfWriter = PdfWriter.GetInstance(document, memoryStream);
var htmlPipelineContext = new HtmlPipelineContext(null);
var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
document.Open();
FontFactory.RegisterDirectories();
htmlPipelineContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
foreach (var styleSheet in StyleSheets)
{
cssResolver.AddCssFile(context.HttpContext.Server.MapPath(styleSheet), true);
}
var pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlPipelineContext, new PdfWriterPipeline(document, pdfWriter)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
xmlParse.Parse(textReader);
xmlParse.Flush();
document.Close();
document.Dispose();
context.HttpContext.Response.BinaryWrite(memoryStream.ToArray());
}
context.HttpContext.Response.End();
context.HttpContext.Response.Flush();
}
示例6: ParseToElementList
/**
* Parses an HTML string and a string containing CSS into a list of Element objects.
* The FontProvider will be obtained from iText's FontFactory object.
*
* @param html a String containing an XHTML snippet
* @param css a String containing CSS
* @return an ElementList instance
*/
public static ElementList ParseToElementList(String html, String css) {
// CSS
ICSSResolver cssResolver = new StyleAttrCSSResolver();
if (css != null) {
ICssFile cssFile = XMLWorkerHelper.GetCSS(new MemoryStream(Encoding.Default.GetBytes(css)));
cssResolver.AddCss(cssFile);
}
// HTML
CssAppliers cssAppliers = new CssAppliersImpl(FontFactory.FontImp);
HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
htmlContext.AutoBookmark(false);
// Pipelines
ElementList elements = new ElementList();
ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null);
HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, end);
CssResolverPipeline cssPipeline = new CssResolverPipeline(cssResolver, htmlPipeline);
// XML Worker
XMLWorker worker = new XMLWorker(cssPipeline, true);
XMLParser p = new XMLParser(worker);
p.Parse(new MemoryStream(Encoding.Default.GetBytes(html)));
return elements;
}
示例7: ConvertHtmlToPdf
public void ConvertHtmlToPdf(string xHtml, string css)
{
using (var stream = new FileStream(OUTPUT_FILE, FileMode.Create))
{
using (var document = new Document())
{
var writer = PdfWriter.GetInstance(document, stream);
document.Open();
// instantiate custom tag processor and add to `HtmlPipelineContext`.
var tagProcessorFactory = Tags.GetHtmlTagProcessorFactory();
tagProcessorFactory.AddProcessor(
new TableDataProcessor(),
new string[] { HTML.Tag.TD }
);
var htmlPipelineContext = new HtmlPipelineContext(null);
htmlPipelineContext.SetTagFactory(tagProcessorFactory);
var pdfWriterPipeline = new PdfWriterPipeline(document, writer);
var htmlPipeline = new HtmlPipeline(htmlPipelineContext, pdfWriterPipeline);
// get an ICssResolver and add the custom CSS
var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
cssResolver.AddCss(css, "utf-8", true);
var cssResolverPipeline = new CssResolverPipeline(
cssResolver, htmlPipeline
);
var worker = new XMLWorker(cssResolverPipeline, true);
var parser = new XMLParser(worker);
using (var stringReader = new StringReader(xHtml))
{
parser.Parse(stringReader);
}
}
}
}
示例8: GeneratePdf
public static void GeneratePdf(IList<SqlPdfFormat> data,
string pdfFullFileName, string cssFullFileName)
{
data.OrderBy(x => x.SoldDate);
DateTime oldDate = data[0].SoldDate;
StringBuilder sb = new StringBuilder();
decimal subSum = 0;
decimal totalSum = 0;
sb.Append("<table>");
sb.Append("<tr>");
sb.Append("<th colspan=\"5\" class=\"title\">Aggregated Sales Report </th>");
sb.Append("</tr>");
sb.Append("<tr class=\"grayBack\" >");
sb.AppendFormat("<th colspan=\"5\" class=\"date\">Date: {0}</th>", oldDate.ToShortDateString());
sb.Append("</tr>");
sb.Append("<tr class=\"grayBack\" >");
sb.Append("<th class=\"th\">Product</th>");
sb.Append("<th class=\"th\">Quantity</th>");
sb.Append("<th class=\"th\">Unit Price</th>");
sb.Append("<th class=\"th\">Location</th>");
sb.Append("<th class=\"th\">Sum</th>");
sb.Append("</tr>");
for (int i = 0; i < data.Count; i++)
{
if (data[i].SoldDate > oldDate)
{
sb.Append("<tr>");
sb.AppendFormat("<td colspan=\"4\" class=\"sum\">Total sum for {0}: </td>",
oldDate.ToShortDateString());
sb.AppendFormat("<td class=\"bold\">{0}</td>", subSum);
sb.Append("</tr>");
oldDate = data[i].SoldDate;
totalSum += subSum;
subSum = 0;
sb.Append("<tr class=\"grayBack\">");
sb.AppendFormat("<th colspan=\"5\" class=\"date\">Date: {0}</th>",
oldDate.ToShortDateString());
sb.Append("</tr>");
sb.Append("<tr class=\"grayBack\">");
sb.Append("<th class=\"th\">Product</th>");
sb.Append("<th class=\"th\">Quantity</th>");
sb.Append("<th class=\"th\">Unit Price</th>");
sb.Append("<th class=\"th\">Location</th>");
sb.Append("<th class=\"th\">Sum</th>");
sb.Append("</tr>");
}
subSum += data[i].Sum;
sb.Append("<tr>");
sb.AppendFormat("<td>{0}</td>", data[i].ProductName);
sb.AppendFormat("<td>{0}</td>", data[i].Quantity + " " + data[i].Measure);
sb.AppendFormat("<td>{0}</td>", data[i].UnitPrice);
sb.AppendFormat("<td>{0}</td>", data[i].SupermarketName);
sb.AppendFormat("<td>{0}</td>", data[i].Sum);
sb.Append("</tr>");
}
sb.Append("<tr>");
sb.AppendFormat("<td colspan=\"4\" class=\"sum\">Total sum for {0}: </td>",
oldDate.ToShortDateString());
sb.AppendFormat("<td class=\"bold\">{0}</td>", subSum);
sb.Append("</tr>");
totalSum += subSum;
sb.Append("<tr>");
sb.Append("<td colspan=\"4\" class=\"sum\">Grand Total: </td>");
sb.AppendFormat("<td class=\"bold\">{0}</td>", totalSum);
sb.Append("</tr>");
sb.Append("</table>");
using (Document document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document,
new FileStream(pdfFullFileName, FileMode.Create));
document.Open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
ICSSResolver cssResolver =
XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true);
//change this to your CCS file location
cssResolver.AddCssFile(cssFullFileName, true);
IPipeline pipeline =
new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext,
new PdfWriterPipeline(document, writer)));
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser p = new XMLParser(worker);
//p.Parse((TextReader)File.OpenText(@"G:\Template.html"));
p.Parse(new StringReader(sb.ToString()));
}
//.........这里部分代码省略.........