예제 #1
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="src">the path to the source HTML file</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(String src, String dest)
        {
            ConverterProperties converterProperties = new ConverterProperties();

            converterProperties.SetCssApplierFactory(new CustomCssApplierFactory());
            HtmlConverter.ConvertToPdf(new FileInfo(src), new FileInfo(dest), converterProperties);
        }
예제 #2
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="src">the path to the source HTML file</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties
            .SetCssApplierFactory(new QRCodeTagCssApplierFactory())
            .SetTagWorkerFactory(new QRCodeTagWorkerFactory());
            HtmlConverter.ConvertToPdf(new FileInfo(src), new FileInfo(dest), properties);
        }
예제 #3
0
        public void ManipulatePdf(string html, string pdfDest)
        {
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(pdfDest));

            pdfDoc.AddNewPage();

            DefaultCssApplierFactory cssApplierFactory = new CellTagCssApplierFactory();

            ConverterProperties converterProperties = new ConverterProperties();

            // Using custom css applier with OverflowPropertyValue.FIT set,
            // we can achieve that text content of table's cell suits their width
            converterProperties.SetCssApplierFactory(cssApplierFactory);

            HtmlConverter.ConvertToPdf(html, pdfDoc, converterProperties);

            pdfDoc.Close();
        }
예제 #4
0
        public void ManipulatePdf(string htmlSource, string pdfDest, string resourceLoc)
        {
            // Base URI is required to resolve the path to source files
            ConverterProperties converterProperties = new ConverterProperties().SetBaseUri(resourceLoc);

            // Create custom css applier factory.
            // Current custom css applier factory handle <div> and <span> tags of html and returns corresponding css applier.
            // All of that css appliers change value of RGB colors
            // to simulate color blindness of people (like Tritanopia, Achromatopsia, etc.)
            DefaultCssApplierFactory cssApplierFactory =
                new ColorBlindnessCssApplierFactory(ColorBlindnessTransforms.DEUTERANOMALY);

            converterProperties.SetCssApplierFactory(cssApplierFactory);

            HtmlConverter.ConvertToPdf(
                new FileStream(htmlSource, FileMode.Open, FileAccess.Read, FileShare.Read),
                new FileStream(pdfDest, FileMode.Create, FileAccess.Write),
                converterProperties);
        }
예제 #5
0
        public virtual void AlterOrphansWidowsTest()
        {
            ConverterProperties      converterProperties = new ConverterProperties();
            DefaultCssApplierFactory cssApplierFactory   = new OrphansWidowsUnitTest.CustomBlockCssApplierFactory();

            converterProperties.SetCssApplierFactory(cssApplierFactory);
            IList <IElement> elements = HtmlConverter.ConvertToElements(new FileStream(sourceFolder + "orphansWidows.html"
                                                                                       , FileMode.Open, FileAccess.Read), converterProperties);
            Div div = (Div)elements[0];

            NUnit.Framework.Assert.IsNotNull(div);
            Paragraph paragraph = (Paragraph)div.GetChildren()[0];

            NUnit.Framework.Assert.IsNotNull(paragraph);
            ParagraphWidowsControl paragraphWidowsControl = paragraph.GetProperty <ParagraphWidowsControl>(Property.WIDOWS_CONTROL
                                                                                                           );

            NUnit.Framework.Assert.IsNotNull(paragraphWidowsControl);
            NUnit.Framework.Assert.AreEqual(3, paragraphWidowsControl.GetMaxLinesToMove());
            NUnit.Framework.Assert.IsTrue(paragraphWidowsControl.IsOverflowOnWidowsViolation());
        }
예제 #6
0
        /// <summary>
        /// Convierte texto html de entrada en un archivo pdf.
        /// </summary>
        /// <param name="html">Html a convertir en pdf.</param>
        /// <param name="orientation">Orientación.</param>
        /// <param name="fontData">Byte content of the font program file.</param>
        /// <returns>Datos binarios del pdf.</returns>
        public byte[] GetPdfFormHtml(string html,
                                     string orientation = "PORTRAIT", byte[] fontData = null)
        {
            QRCodeTagWorkerFactory = new QRCodeTagWorkerFactory();

            ConverterProperties properties = new ConverterProperties();

            properties.SetTagWorkerFactory(QRCodeTagWorkerFactory);
            properties.SetCssApplierFactory(new QRCodeTagCssApplierFactory());

            if (fontData != null)
            {
                FontProvider fontProvider = new FontProvider();
                fontProvider.AddFont(fontData, PdfEncodings.IDENTITY_H);

                properties.SetFontProvider(fontProvider);
            }

            byte[] result = null;

            using (var ms = new MemoryStream())
            {
                using (var pdfDocument = new PdfDocument(new PdfWriter(ms)))
                {
                    if (orientation.ToUpper() == "LANDSCAPE")
                    {
                        pdfDocument.SetDefaultPageSize(PageSize.A4.Rotate());
                    }

                    HtmlConverter.ConvertToPdf(html, pdfDocument, properties);
                    result = ms.ToArray();
                }
            }

            return(result);
        }