Search results
Suggest a FeaturePDF

How to use a frame border-image for PDF exported documentation

This articles explains to use the frame border-image for PDF exported documentation using Bold Report Report Writer component with Syncfusion® PDF libraries.

You can refer the Report Writer documentation for getting the PDF document from Report.

You have to use Syncfusion.Pdf for use the frame border-image for PDF exported documentation. You can refer the following code snippet for how to use the frame border-image for PDF exported documentation.

        [HttpPost]
        public IActionResult RDLPDF()
        {

            // Export the RDL To PDF.
            FileStream mainReportStream = new FileStream(_hostingEnvironment.WebRootPath + @"\Reports\SampleReport.rdl", FileMode.Open, FileAccess.Read);
            BoldReports.Writer.ReportWriter writer = new BoldReports.Writer.ReportWriter();
            writer.LoadReport(mainReportStream);
            MemoryStream memoryStream = new MemoryStream();
            writer.Save(memoryStream, BoldReports.Writer.WriterFormat.PDF);

            // Download the generated export document to the client side.
            memoryStream.Position = 0;
            FileStreamResult fileStreamResult = new FileStreamResult(memoryStream, "application/pdf");

            var fileStream1 = fileStreamResult.FileStream;


            // Combine the Exported PDF and templatecombine
            PdfDocument finalDoc = new PdfDocument();

            FileStream fileStream2 = new FileStream(_hostingEnvironment.WebRootPath + @"\PDF\Template.pdf", FileMode.Open, FileAccess.Read);

            // Creates a PDF stream for merging

            Stream[] streams = { fileStream1, fileStream2 };

            // Merges the PDF Document.

            PdfDocumentBase.Merge(finalDoc, streams);

            //Save the document into the stream

            MemoryStream combinestream = new MemoryStream();

            finalDoc.Save(combinestream);

            combinestream.Position = 0;

            FileStreamResult fileStreamResult1 = new FileStreamResult(combinestream, "application/pdf");

            var pagenumber = fileStreamResult1.FileStream;

            // Add a Page number for combined PDF
            PdfLoadedDocument loadedDoc = new PdfLoadedDocument(pagenumber);

            // Create a new PDF document
            PdfDocument doc = new PdfDocument();
            doc.PageSettings.Margins.All = 0;

            //Add a page to the document
            PdfPage page = doc.Pages.Add();

            //Create PDF graphics for the page
            PdfGraphics graphics = page.Graphics;

            FileStream fileStream3 = new FileStream(_hostingEnvironment.WebRootPath + @"\f25e9269edfa67ef53e840eea0a98c30.jpg", FileMode.Open, FileAccess.Read);

            //Load the image from the disk
            PdfBitmap image = new PdfBitmap(fileStream3);

            //Draw the image
            graphics.DrawImage(image, 0, 0, page.GetClientSize().Width, page.GetClientSize().Height);

            //Save the document
            MemoryStream ms = new MemoryStream();
            doc.Save(ms);

            //Close the document
            doc.Close(true);

            //Load the border design PDF document
            PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(ms);

            //Create a new document
            PdfDocument document = new PdfDocument();
            document.PageSettings.Margins.All = 0;

            //Add the border design in each page of an existing PDF document
            for (int i = 0; i < loadedDoc.Pages.Count; i++)
            {
                //Add a PDF page
                PdfPage pdfPage = document.Pages.Add();

                //Create a template from the first document
                PdfPageBase loadedPage = loadedDocument1.Pages[0];
                PdfTemplate template = loadedPage.CreateTemplate();

                //Draw the loaded template into a new document
                pdfPage.Graphics.DrawPdfTemplate(template, PointF.Empty, page.GetClientSize());

                //Create a template from the second document
                loadedPage = loadedDoc.Pages[i];
                template = loadedPage.CreateTemplate();

                //Draw the loaded template into a new document
                pdfPage.Graphics.DrawPdfTemplate(template, PointF.Empty, page.GetClientSize());
            }

            MemoryStream pagenumberstream = new MemoryStream();

            document.Save(pagenumberstream);
            //Close the PDF documents
            document.Close(true);
            loadedDocument1.Close(true);
            loadedDoc.Close(true);

            string contentType = "application/pdf";

            //Define the file name
            string fileName = "Combinewithpagenumber.pdf";

            //Creates a FileContentResult object by using the file contents, content type, and file name
            pagenumberstream.Position = 0;

            return File(pagenumberstream, contentType, fileName);

        }

PDF document with the frame border sample