/// <summary> /// Attaches the HTML content stored in a document node to /// an existing PDF document, using specific converter properties, /// and returning an iText /// <see cref="iText.Layout.Document"/> /// object. /// </summary> /// <param name="documentNode">the document node with the HTML</param> /// <param name="pdfDocument"> /// the /// <see cref="iText.Kernel.Pdf.PdfDocument"/> /// instance /// </param> /// <param name="converterProperties"> /// the /// <see cref="iText.Html2pdf.ConverterProperties"/> /// instance /// </param> /// <returns> /// an iText /// <see cref="iText.Layout.Document"/> /// object /// </returns> public static Document Attach(IDocumentNode documentNode, PdfDocument pdfDocument, ConverterProperties converterProperties ) { IHtmlProcessor processor = new DefaultHtmlProcessor(converterProperties); return(processor.ProcessDocument(documentNode, pdfDocument)); }
private void ConvertToPdfWithCustomRendererAndCompare(String name) { ConverterProperties properties = new ConverterProperties().SetTagWorkerFactory(new _DefaultTagWorkerFactory_166 ()); DefaultHtmlProcessor processor = new DefaultHtmlProcessor(properties); IXmlParser parser = new JsoupHtmlParser(); String outPdfPath = destinationFolder + name + ".pdf"; PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outPdfPath)); IDocumentNode doc = parser.Parse(new FileStream(sourceFolder + name + ".html", FileMode.Open, FileAccess.Read ), properties.GetCharset()); Document document = processor.ProcessDocument(doc, pdfDocument); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdfPath, sourceFolder + "cmp_" + name + ".pdf", destinationFolder)); }
/// <summary> /// Creates a new /// <see cref="HtmlTagWorker"/> /// instance. /// </summary> /// <param name="element">the element</param> /// <param name="context">the context</param> public HtmlTagWorker(IElementNode element, ProcessorContext context) { bool immediateFlush = context.IsImmediateFlush() && !context.GetCssContext().IsPagesCounterPresent(); PdfDocument pdfDocument = context.GetPdfDocument(); document = new Document(pdfDocument, pdfDocument.GetDefaultPageSize(), immediateFlush); document.SetRenderer(new HtmlDocumentRenderer(document, immediateFlush)); DefaultHtmlProcessor.SetConvertedRootElementProperties(element.GetStyles(), context, document); inlineHelper = new WaitingInlineElementsHelper(element.GetStyles().Get(CssConstants.WHITE_SPACE), element. GetStyles().Get(CssConstants.TEXT_TRANSFORM)); String lang = element.GetAttribute(AttributeConstants.LANG); if (lang != null) { pdfDocument.GetCatalog().SetLang(new PdfString(lang, PdfEncodings.UNICODE_BIG)); } }
public virtual void BatchConversionTest() { ConverterProperties properties = new ConverterProperties().SetBaseUri(sourceFolder).SetMediaDeviceDescription (new MediaDeviceDescription(MediaType.PRINT)); FontProvider fontProvider = new DefaultFontProvider(true, false, false); fontProvider.AddDirectory(sourceFolder + "fonts/"); properties.SetFontProvider(fontProvider); IHtmlProcessor processor = new DefaultHtmlProcessor(properties); IXmlParser parser = new JsoupHtmlParser(); String outPdfPath = destinationFolder + "smashing1.pdf"; PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outPdfPath)); IDocumentNode doc = parser.Parse(new FileStream(sourceFolder + "smashing01.html", FileMode.Open, FileAccess.Read ), properties.GetCharset()); Document document = processor.ProcessDocument(doc, pdfDocument); document.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdfPath, sourceFolder + "cmp_smashing1.pdf" , destinationFolder, "diff01_")); }
public virtual void DoNotResetFontProviderTest() { NUnit.Framework.Assert.That(() => { FileStream fileInputStream = new FileStream(sourceFolder + "justHelloWorld.html", FileMode.Open, FileAccess.Read ); IXmlParser parser = new JsoupHtmlParser(); IDocumentNode documentNode = parser.Parse(fileInputStream, null); ConverterProperties converterProperties = new ConverterProperties(); converterProperties.SetFontProvider(new _DefaultFontProvider_91(false, true, false)); // Do nothing here. That should result in an exception. IHtmlProcessor processor = new DefaultHtmlProcessor(converterProperties); Document doc1 = processor.ProcessDocument(documentNode, new PdfDocument(new PdfWriter(new MemoryStream())) ); doc1.Close(); Document doc2 = processor.ProcessDocument(documentNode, new PdfDocument(new PdfWriter(new MemoryStream())) ); doc2.Close(); NUnit.Framework.Assert.IsTrue(false, "The test should have failed before that assert, since it's strictly forbidden not to reset the FontProvider instance after each html to pdf conversion." ); } , NUnit.Framework.Throws.InstanceOf <PdfException>()) ; }
/// <summary> /// Attaches the HTML content stored in a document node to /// a list of /// <see cref="iText.Layout.Element.IElement"/> /// objects. /// </summary> /// <param name="documentNode">the document node with the HTML</param> /// <param name="converterProperties"> /// the /// <see cref="iText.Html2pdf.ConverterProperties"/> /// instance /// </param> /// <returns> /// the list of /// <see cref="iText.Layout.Element.IElement"/> /// objects /// </returns> public static IList <IElement> Attach(IDocumentNode documentNode, ConverterProperties converterProperties) { IHtmlProcessor processor = new DefaultHtmlProcessor(converterProperties); return(processor.ProcessElements(documentNode)); }