예제 #1
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <param name="html">the HTML as a String</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(String baseUri, String html, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            HtmlConverter.ConvertToPdf(html, new FileStream(dest, FileMode.Create), properties);
        }
예제 #2
0
        public FileStream Create()
        {
            string filePath = DEST + "Receipt_" + Date.ToString("yyyyMMddHHmmss") + ".pdf";
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(BASEURI);

            var file = new FileStream(SRC, FileMode.Open);

            string fileContents;

            using (StreamReader reader = new StreamReader(file))
            {
                fileContents = reader.ReadToEnd();
            }

            fileContents = fileContents.Replace("{{fullReceiptNumber}}", PointOfSaleNumber + "-" + ReceiptNumber);
            fileContents = fileContents.Replace("{{date}}", Date.ToString("dd/MM/yyyy"));
            fileContents = fileContents.Replace("{{customerFullName}}", CustomerFullName);
            fileContents = fileContents.Replace("{{totalAmount}}", ReceiptConcepts.Sum(x => x.Amount).ToString());
            fileContents = fileContents.Replace("{{concepts}}", GetConceptsRows());

            HtmlConverter.ConvertToPdf(fileContents, new FileStream(filePath, FileMode.Create), properties);

            var finalFile = new FileStream(filePath, FileMode.Open);

            return(finalFile);
        }
예제 #3
0
        public void ManipulatePdf(string htmlSource, string pdfDest, string resourceLoc, PageSize pageSize, float screenWidth)
        {
            PdfWriter   writer = new PdfWriter(pdfDest);
            PdfDocument pdfDoc = new PdfDocument(writer);

            // Set the result to be tagged
            pdfDoc.SetTagged();
            pdfDoc.SetDefaultPageSize(pageSize);

            ConverterProperties converterProperties = new ConverterProperties();

            // Set media device description details
            MediaDeviceDescription mediaDescription = new MediaDeviceDescription(MediaType.SCREEN);

            mediaDescription.SetWidth(screenWidth);
            converterProperties.SetMediaDeviceDescription(mediaDescription);

            FontProvider fp = new DefaultFontProvider();

            // Register external font directory
            fp.AddDirectory(resourceLoc);

            converterProperties.SetFontProvider(fp);
            // Base URI is required to resolve the path to source files
            converterProperties.SetBaseUri(resourceLoc);

            // Create acroforms from text and button input fields
            converterProperties.SetCreateAcroForm(true);

            HtmlConverter.ConvertToPdf(new FileStream(htmlSource, FileMode.Open, FileAccess.Read, FileShare.Read),
                                       pdfDoc, converterProperties);

            pdfDoc.Close();
        }
예제 #4
0
        public void ManipulatePdf(string HtmlContent, string basePath)
        {
            string FONTTABLEHEADER  = basePath + @"fonts\Metric-Bold.otf";
            string FONTTABLEGENERAL = basePath + @"fonts\Metric-Regular.otf";
            string FONTPAGEHEADING  = basePath + @"fonts\Indian Type Foundry - Zahrah Bold Italic.otf";
            string HOMEPAGEHEADING  = basePath + @"fonts\Indian Type Foundry - Zahrah Light.otf";

            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(basePath);
            FontProvider fontProvider     = new DefaultFontProvider(false, false, false);
            FontProgram  fontTableHeader  = FontProgramFactory.CreateFont(FONTTABLEHEADER);
            FontProgram  fontTableGeneral = FontProgramFactory.CreateFont(FONTTABLEGENERAL);
            FontProgram  fontPageHeading  = FontProgramFactory.CreateFont(FONTPAGEHEADING);
            FontProgram  homePageHeading  = FontProgramFactory.CreateFont(HOMEPAGEHEADING);

            fontProvider.AddFont(homePageHeading);
            fontProvider.AddFont(fontTableHeader);
            fontProvider.AddFont(fontTableGeneral);
            fontProvider.AddFont(fontPageHeading);
            properties.SetFontProvider(fontProvider);
            PdfDocument pdfDoc = new PdfDocument(new PdfWriter(basePath + @"Pdf\Test.pdf"));

            pdfDoc.SetDefaultPageSize(iText.Kernel.Geom.PageSize.LETTER.Rotate());
            HtmlConverter.ConvertToPdf(HtmlContent, pdfDoc, properties);
        }
예제 #5
0
        public FileContentResult Imprimir(string registros)
        {
            string html = "";

            if (registros == "TabelaAluno")
            {
                html = RenderRazorViewToString("TabelaAluno", new AlunoDal().ObterTodos().ToList());
            }
            if (registros == "TabelaCidade")
            {
                html = RenderRazorViewToString("TabelaCidade", new CidadeDal().ObterTodos().ToList());
            }
            if (registros == "TabelaAlunoCidade")
            {
                html = RenderRazorViewToString("TabelaAlunoCidade", new CidadeDal().ObterTodos().ToList());
            }

            var properties = new ConverterProperties();
            var baseUrl    = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));

            properties.SetBaseUri(baseUrl);

            MediaDeviceDescription med = new MediaDeviceDescription(MediaType.ALL);

            med.SetOrientation("landscape");
            properties.SetMediaDeviceDescription(med);

            using (var stream = new MemoryStream())
            {
                HtmlConverter.ConvertToPdf(html, stream, properties);

                return(File(stream.ToArray(), "application/pdf"));
            }
        }
예제 #6
0
        private void ExistingWebURL()
        {
            //Initialize PDF writer
            PdfWriter writer = new PdfWriter("wikipedia.pdf");
            //Initialize PDF document
            PdfDocument pdf = new PdfDocument(writer);

            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");

            Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);

            Paragraph header = new Paragraph("HEADER")
                               .SetTextAlignment(TextAlignment.CENTER)
                               .SetFontSize(16);

            document.Add(header);

            for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
            {
                Rectangle pageSize = pdf.GetPage(i).GetPageSize();
                float     x        = pageSize.GetWidth() / 2;
                float     y        = pageSize.GetTop() - 20;
                document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
            }

            document.SetTopMargin(50);
            document.SetBottomMargin(50);

            document.Close();
        }
예제 #7
0
        private void Chart()
        {
            //Initialize PDF writer
            PdfWriter writer = new PdfWriter("chart.pdf");
            //Initialize PDF document
            PdfDocument pdf = new PdfDocument(writer);

            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri("https://bl.ocks.org/mbostock/4062006");

            Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);

            Paragraph header = new Paragraph("HEADER")
                               .SetTextAlignment(TextAlignment.CENTER)
                               .SetFontSize(16);

            document.Add(header);

            for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
            {
                Rectangle pageSize = pdf.GetPage(i).GetPageSize();
                float     x        = pageSize.GetWidth() / 2;
                float     y        = pageSize.GetTop() - 20;
                document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
            }

            document.Close();
        }
예제 #8
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open, FileAccess.Read),
                                       new FileStream(dest, FileMode.Create), properties);
        }
예제 #9
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter writer = new PdfWriter(dest, new WriterProperties().SetFullCompressionMode(true));

            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open, FileAccess.Read), writer, properties);
        }
예제 #10
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(byte[] html, String baseUri, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            OutlineHandler outlineHandler = OutlineHandler.CreateStandardHandler();

            properties.SetOutlineHandler(outlineHandler);
            HtmlConverter.ConvertToPdf(new MemoryStream(html), new FileStream(dest, FileMode.Create),
                                       properties);
        }
예제 #11
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            MediaDeviceDescription mediaDeviceDescription = new MediaDeviceDescription(MediaType.PRINT);

            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open, FileAccess.Read),
                                       new FileStream(dest, FileMode.Create), properties);
        }
예제 #12
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter   writer = new PdfWriter(dest);
            PdfDocument pdf    = new PdfDocument(writer);

            pdf.SetTagged();
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open, FileAccess.Read), pdf, properties);
        }
예제 #13
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="dest">the path to the resulting PDF</param>
        /// <param name="intent">the path to the output intent</param>
        public void CreatePdf(byte[] html, String baseUri, String dest, String intent)
        {
            PdfWriter    writer = new PdfWriter(dest);
            PdfADocument pdf    = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B,
                                                   new PdfOutputIntent("Custom", "", "http://www.color.org",
                                                                       "sRGB IEC61966-2.1", new FileStream(intent, FileMode.Open, FileAccess.Read)));
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            HtmlConverter.ConvertToPdf(new MemoryStream(html), pdf, properties);
        }
예제 #14
0
        internal static ConverterProperties InitConverterProperties()
        {
            ConverterProperties converterProperties = new ConverterProperties();

            converterProperties.SetBaseUri(SOURCE_FOLDER);
            FontProvider fontProvider = new FontProvider();

            fontProvider.AddDirectory(RESOURCES);
            fontProvider.AddStandardPdfFonts();
            converterProperties.SetFontProvider(fontProvider);
            return(converterProperties);
        }
예제 #15
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="stationery">the path to a single-page PDF file that will act as stationery</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(byte[] html, String baseUri, String stationery, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter     writer  = new PdfWriter(dest);
            PdfDocument   pdf     = new PdfDocument(writer);
            IEventHandler handler = new Background(pdf, stationery);

            pdf.AddEventHandler(PdfDocumentEvent.START_PAGE, handler);
            HtmlConverter.ConvertToPdf(new MemoryStream(html), pdf, properties);
        }
예제 #16
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(byte[] html, String baseUri, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            OutlineHandler outlineHandler = new OutlineHandler();

            outlineHandler.PutTagPriorityMapping("h1", 1);
            outlineHandler.PutTagPriorityMapping("p", 2);
            properties.SetOutlineHandler(outlineHandler);
            HtmlConverter.ConvertToPdf(new MemoryStream(html), new FileStream(dest, FileMode.Create),
                                       properties);
        }
예제 #17
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter   writer   = new PdfWriter(dest);
            PdfDocument pdf      = new PdfDocument(writer);
            Document    document = HtmlConverter.ConvertToDocument(new FileStream(src, FileMode.Open, FileAccess.Read),
                                                                   pdf, properties);

            document.Add(new Paragraph("Goodbye!"));
            document.Close();
        }
예제 #18
0
        protected override void SaveDocument(SwaggerPdfDocumentModel swaggerDocumentModel)
        {
            var documentString = _document.GetDocumentString();

            var pdfDocument = new PdfDocument(new PdfWriter(swaggerDocumentModel.PdfDocumentPath));
            var properties  = new ConverterProperties();

            if (!string.IsNullOrEmpty(swaggerDocumentModel.WelcomePageImage))
            {
                var imageFile = new FileInfo(swaggerDocumentModel.WelcomePageImage);
                properties.SetBaseUri(imageFile.DirectoryName + "\\");
            }
            HtmlConverter.ConvertToDocument(documentString, pdfDocument, properties);
            pdfDocument.Close();
        }
예제 #19
0
        public void CreatePdf(BaseRequest request)
        {
            string basePath = Environment.CurrentDirectory;
            string htmlPath = Path.Combine(basePath, "html", "input.html");
            string pdfPath  = Path.Combine(basePath, "pdf", "output" + $"{DateTime.Now.ToString("yy-MM-dd_hhmmss_ffff")}" + ".pdf");

            using (FileStream htmlSource = File.Open(htmlPath, FileMode.Open))
                using (FileStream pdfDest = File.Open(pdfPath, FileMode.OpenOrCreate))
                {
                    ConverterProperties converterProperties = new ConverterProperties();
                    string assertPath = Path.Combine(basePath, "html");
                    converterProperties.SetBaseUri(assertPath);
                    HtmlConverter.ConvertToPdf(htmlSource, pdfDest, converterProperties);
                }
        }
예제 #20
0
        public void createPdf(String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(css);
            //FontProvider dfp = new DefaultFontProvider();
            CssStyleCollection style = new Panel().Style;



            MediaDeviceDescription mediaDeviceDescription = new MediaDeviceDescription(MediaType.PRINT);

            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open), new FileStream(dest, FileMode.Create), properties);
        }
예제 #21
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="xml">a byte array with XML data</param>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="dest">the path to the resulting PDF</param>
        /// <param name="intent">a path to the output intent</param>
        public void CreatePdf(byte[] xml, byte[] html, String baseUri, String dest, String intent)
        {
            PdfWriter    writer = new PdfWriter(dest);
            PdfADocument pdf    = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_3A,
                                                   new PdfOutputIntent("Custom", "", "http://www.color.org",
                                                                       "sRGB IEC61966-2.1", new FileStream(intent, FileMode.Open, FileAccess.Read)));

            pdf.SetTagged();
            pdf.AddFileAttachment("Movie info",
                                  PdfFileSpec.CreateEmbeddedFileSpec(pdf, xml, "Movie info", "movies.xml",
                                                                     PdfName.ApplicationXml, new PdfDictionary(), PdfName.Data));
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            HtmlConverter.ConvertToPdf(new MemoryStream(html), pdf, properties);
        }
예제 #22
0
        public void ManipulatePdf(string src, string dest)
        {
            WriterProperties writerProperties = new WriterProperties();

            writerProperties.AddXmpMetadata();

            PdfWriter   pdfWriter = new PdfWriter(dest, writerProperties);
            PdfDocument pdfDoc    = new PdfDocument(pdfWriter);

            pdfDoc.GetCatalog().SetLang(new PdfString("en-US"));

            pdfDoc.SetTagged();
            pdfDoc.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true));

            PdfDocumentInfo pdfMetaData = pdfDoc.GetDocumentInfo();

            pdfMetaData.SetAuthor("Samuel Huylebroeck");
            pdfMetaData.AddCreationDate();
            pdfMetaData.GetProducer();
            pdfMetaData.SetCreator("iText Software");
            pdfMetaData.SetKeywords("example, accessibility");
            pdfMetaData.SetSubject("PDF accessibility");

            // Title is derived from html

            // pdf conversion
            ConverterProperties props        = new ConverterProperties();
            FontProvider        fontProvider = new FontProvider();

            fontProvider.AddStandardPdfFonts();
            fontProvider.AddDirectory(SRC);

            // The noto-nashk font file (.ttf extension) is placed in the resources
            props.SetFontProvider(fontProvider);
            // Base URI is required to resolve the path to source files
            props.SetBaseUri(SRC);

            // Setup custom tagworker factory for better tagging of headers
            DefaultTagWorkerFactory tagWorkerFactory = new AccessibilityTagWorkerFactory();

            props.SetTagWorkerFactory(tagWorkerFactory);

            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open), pdfDoc, props);

            pdfDoc.Close();
        }
예제 #23
0
        public virtual void InlineBlockInsideTableCellTest()
        {
            // IO setup
            PdfWriter   writer      = new PdfWriter(new FileInfo(destinationFolder + "inlineBlockInsideTableCellTest.pdf"));
            PdfDocument pdfDocument = new PdfDocument(writer);

            pdfDocument.SetDefaultPageSize(new PageSize(1000f, 1450f));
            // properties
            ConverterProperties props = new ConverterProperties();

            props.SetBaseUri(sourceFolder);
            HtmlConverter.ConvertToPdf(new FileStream(sourceFolder + "inlineBlockInsideTableCellTest.html", FileMode.Open
                                                      , FileAccess.Read), pdfDocument, props);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(destinationFolder + "inlineBlockInsideTableCellTest.pdf"
                                                                             , sourceFolder + "cmp_inlineBlockInsideTableCell.pdf", destinationFolder, "diffinlineBlockInsideTableCellTest_"
                                                                             ));
        }
예제 #24
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            IList <IElement> elements = HtmlConverter.ConvertToElements(
                new FileStream(src, FileMode.Open, FileAccess.Read), properties);
            PdfDocument pdf      = new PdfDocument(new PdfWriter(dest));
            Document    document = new Document(pdf);

            foreach (IElement element in elements)
            {
                document.Add(new Paragraph(element.GetType().FullName));
                document.Add((IBlockElement)element);
            }

            document.Close();
        }
예제 #25
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <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 baseUri, String src, String dest)
        {
            PdfWriter   writer = new PdfWriter(dest);
            PdfDocument pdf    = new PdfDocument(writer);

            pdf.SetTagged();
            PageSize pageSize = new PageSize(440, 2000);

            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            MediaDeviceDescription mediaDeviceDescription = new MediaDeviceDescription(MediaType.SCREEN);

            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open, FileAccess.Read), pdf, properties);
        }
예제 #26
0
        public static void Create(string dest)
        {
            PdfWriter pdfWriter = new PdfWriter(dest);

            PdfDocument pdfDoc = new PdfDocument(pdfWriter);

            // pdf conversion
            ConverterProperties props = new ConverterProperties();
            FontProvider        fp    = new FontProvider();

            fp.AddStandardPdfFonts();
            fp.AddDirectory(@"fonts");//The noto-nashk font file (.ttf extension) is placed in the resources

            props.SetFontProvider(fp);
            props.SetBaseUri(@"fonts");
            //Setup custom tagworker factory for better tagging of headers
            HtmlConverter.ConvertToPdf(@"<h1>Hello</h1><p>world</p>", pdfDoc, props);
            pdfDoc.Close();
        }
예제 #27
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="html">the HTML file as a byte array</param>
        /// <param name="baseUri">the base URI</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(byte[] html, String baseUri, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter   writer = new PdfWriter(dest);
            PdfDocument pdf    = new PdfDocument(writer);

            pdf.SetDefaultPageSize(new PageSize(595, 14400));
            Document      document    = HtmlConverter.ConvertToDocument(new MemoryStream(html), pdf, properties);
            EndPosition   endPosition = new EndPosition();
            LineSeparator separator   = new LineSeparator(endPosition);

            document.Add(separator);
            document.GetRenderer().Close();
            PdfPage page = pdf.GetPage(1);
            float   y    = endPosition.GetY() - 36;

            page.SetMediaBox(new Rectangle(0, y, 595, 14400 - y));
            document.Close();
        }
예제 #28
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <param name="src">an array with the paths to different source HTML files</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(String baseUri, String[] src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter   writer = new PdfWriter(dest);
            PdfDocument pdf    = new PdfDocument(writer);
            PdfMerger   merger = new PdfMerger(pdf);

            foreach (String html in src)
            {
                MemoryStream baos = new MemoryStream();
                PdfDocument  temp = new PdfDocument(new PdfWriter(baos));
                HtmlConverter.ConvertToPdf(new FileStream(html, FileMode.Open, FileAccess.Read), temp, properties);
                temp = new PdfDocument(new PdfReader(new MemoryStream(baos.ToArray())));
                merger.Merge(temp, 1, temp.GetNumberOfPages());
                temp.Close();
            }

            pdf.Close();
        }
예제 #29
0
        /// <summary>
        /// Creates the PDF file.
        /// </summary>
        /// <param name="baseUri">the base URI</param>
        /// <param name="src">an array with the paths to different source HTML files</param>
        /// <param name="dest">the path to the resulting PDF</param>
        public void CreatePdf(String baseUri, String[] src, String dest)
        {
            ConverterProperties properties = new ConverterProperties();

            properties.SetBaseUri(baseUri);
            PdfWriter   writer   = new PdfWriter(dest);
            PdfDocument pdf      = new PdfDocument(writer);
            Document    document = new Document(pdf);

            foreach (String html in src)
            {
                IList <IElement> elements = HtmlConverter.ConvertToElements(
                    new FileStream(html, FileMode.Open, FileAccess.Read), properties);
                foreach (IElement element in elements)
                {
                    document.Add((IBlockElement)element);
                }
            }

            document.Close();
        }
예제 #30
0
        public void ProcessRequest(HttpContext context)
        {
            string[] FONTS =
            {
                // msjh.ttc[0], the first one ttf in msjh.ttc.
                @"C:\Windows\Fonts\msjh.ttc,0",
            };
            // If the POST body has uncoded symbols,such as "<" and ">",
            // it will be judged as potentially dangerous. And put the POST
            // body to Request.Unvalidated.Form.
            String HTML = context.Request.Unvalidated.Form["content"] == null ? context.Request.Form["content"]: context.Request.Unvalidated.Form["content"];

            // Check whether the HTML has content.
            if (HTML != null && HTML != "")
            {
                // Define the date as the pdf file name.
                String strDate  = DateTime.Now.ToString("yyyyMMddHHmmss");
                String filename = "D:\\" + strDate + ".pdf";

                ConverterProperties properties = new ConverterProperties();
                // Deal with font provider.
                FontProvider fontProvider = new DefaultFontProvider(false, false, false);
                foreach (string font in FONTS)
                {
                    FontProgram fontProgram = FontProgramFactory.CreateFont(font);
                    fontProvider.AddFont(fontProgram);
                }
                // Set font type
                properties.SetFontProvider(fontProvider);
                // Set the base uri (that is, the root) of the website.
                // HttpContext.Current.Server.MapPath("~") : the root of website.
                properties.SetBaseUri(HttpContext.Current.Server.MapPath("~"));

                // Convert html to pdf.
                HtmlConverter.ConvertToPdf(WebUtility.HtmlDecode(HTML), new FileStream(filename, FileMode.Create), properties);
                Download(filename, strDate + ".pdf");
            }
        }