public static void Run()
        {
            // ExStart:SingleRow
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ(); 
            string fileName = "SingleRow.doc";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);

            // Load the photo and read all bytes.
            byte[] imgdata = System.IO.File.ReadAllBytes(dataDir + "photo.png");
                       
            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();
            
            // Execute the build report.
            engine.BuildReport(doc, Common.GetManager(), "manager");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);
            // ExEnd:SingleRow
            Console.WriteLine("\nSingle row template document is populated with the data about manager.\nFile saved at " + dataDir);

        }
        public static void Run()
        {
            // ExStart:HelloWorld
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ();

            string fileName = "HelloWorld.doc";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);

            // Create an instance of sender class to set it's properties.
            Sender sender = new Sender { Name = "LINQ Reporting Engine", Message = "Hello World" };
            
            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();
            
            // Execute the build report.
            engine.BuildReport(doc, sender, "sender");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);
            // ExEnd:HelloWorld
            Console.WriteLine("\nTemplate document is populated with the data about the sender.\nFile saved at " + dataDir);

        }
        public static void Run()
        {
            // ExStart:BubbleChart
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ(); 

            string fileName = "BubbleChart.docx";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);

            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();
            
            // Execute the build report.
            engine.BuildReport(doc, Common.GetContracts(), "contracts");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);
            // ExEnd:BubbleChart

            Console.WriteLine("\nBubble chart template document is populated with the data about contracts.\nFile saved at " + dataDir);

        }
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ(); 
            string fileName = "InTableAlternateContent.doc";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);
                    
            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();
            
            // Execute the build report.
            engine.BuildReport(doc, Common.GetContracts(), "contracts");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);

            Console.WriteLine("\nIn-Table list with alternate content template document is populated with the data about clients and contract price.\nFile saved at " + dataDir);

        }
        public static void Run()
        {
            //ExStart:InTableMasterDetail
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ();
            string fileName = "InTableMasterDetail.doc";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);

            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();

            // Execute the build report.
            engine.BuildReport(doc, Common.GetManagers(), "managers");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);
            //ExEnd:InTableMasterDetail
            Console.WriteLine("\nIn-Table master detail template document is populated with the data about managers and it's contracts.\nFile saved at " + dataDir);
        }
Example #6
0
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_LINQ(); 
            string fileName = "CommonList.doc";
            // Load the template document.
            Document doc = new Document(dataDir + fileName);

            // Create a Reporting Engine.
            ReportingEngine engine = new ReportingEngine();
            
            // Execute the build report.
            engine.BuildReport(doc, Common.GetManagers(), "managers");

            dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);

            // Save the finished document to disk.
            doc.Save(dataDir);

            Console.WriteLine("\nCommon list template document is populated with the data about managers.\nFile saved at " + dataDir);

        }
        private static void BuildReport(Document document, object dataSource)
        {
            ReportingEngine engine = new ReportingEngine();

            engine.BuildReport(document, dataSource);
        }
        public void GeneratePDF(SendLetter sendLetter, Guid LetterTemplate)
        {
            MemoryStream stream;

            if (sendLetter.sendLetterFiles == null ||
                sendLetter.sendLetterFiles.Count == 0)
            {
                //Create Template and Print letter to Database
                TemplateManager templateManager = new TemplateManager();
                Template        template        = templateManager.Read(LetterTemplate);
                stream = new MemoryStream(template.File.Content);
                if (template != null)
                {
                    Document        doc    = new Document(stream);
                    ReportingEngine engine = new ReportingEngine {
                        Options = ReportBuildOptions.AllowMissingMembers
                    };

                    PrintableSendLetter printableSendLetter = new PrintableSendLetter
                    {
                        DateTime =
                            sendLetter.LetterDateTime.ToPersianTime().toPersianNumber(),
                        Appendage =
                            (sendLetter.Appendages != null &&
                             sendLetter.Appendages.Count > 0)
                                ? "دارد"
                                : "ندارد",
                        Number     = sendLetter.RowNumber.toPersianNumber(),
                        Body       = HttpUtility.HtmlDecode(sendLetter.Body).toPersianNumber(),
                        SenderName = (sendLetter.SenderEmployee?.Employee != null) ? sendLetter.SenderEmployee?.Employee.FullName() : "",
                        //DepartMentName = (sendLetter.SenderEmployee?.Post != null ? sendLetter.SenderEmployee.Post.Name : "") + " " + (sendLetter.SenderEmployee?.Department != null ? sendLetter.SenderEmployee.Department.Name : "")
                        DepartMentName = sendLetter.SenderEmployee?.Post != null?sendLetter.SenderEmployee.Post.Name:""
                    };



                    if (sendLetter.Recievers != null && sendLetter.Recievers.Count > 0 && sendLetter.Recievers.First()?.Person != null)
                    {
                        StringBuilder subtitleStbBuilder = new StringBuilder();

                        subtitleStbBuilder.Append(sendLetter.Recievers.First().Person.Gender == 0
                            ? "سرکار خانم "
                            : "جناب آقاي ");

                        subtitleStbBuilder.Append(sendLetter.Recievers.First().Person.FullName());
                        printableSendLetter.SubTitle = subtitleStbBuilder.ToString();
                    }


                    if (sendLetter.Recievers != null && sendLetter.Recievers.Count > 0 && sendLetter.Recievers.First().Organization != null)
                    {
                        StringBuilder titleStbBuilder = new StringBuilder();
                        titleStbBuilder.Append("");

                        if (sendLetter.Recievers.First().Organization != null)
                        {
                            if (sendLetter.Recievers.First().Post != null)
                            {
                                titleStbBuilder.Append(sendLetter.Recievers.First().Post.Name + " محترم ");

                                titleStbBuilder.Append(sendLetter.Recievers.First().Organization.GetFullOrganizationPath());
                            }


                            printableSendLetter.Title = titleStbBuilder.ToString();
                        }
                    }
                    // Execute the build report.
                    engine.BuildReport(doc, printableSendLetter, "s");

                    //Save letter without Appendage as pdf
                    stream = new MemoryStream();
                    doc.Save(stream, SaveFormat.Pdf);
                    sendLetter.LetterFileContent = stream.ToArray();
                }
                else
                {
                    //Should send error to User
                    throw new Exception("قالب انتخاب شده یافت نگردید");
                }
            }
            else
            {
                //Render Letter Content With Files
                Aspose.Pdf.Document contentPdf = new Aspose.Pdf.Document();
                foreach (var file in sendLetter.sendLetterFiles)
                {
                    if (file.File.ContentType.Contains("image"))
                    {
                        Aspose.Pdf.Page page = contentPdf.Pages.Add();
                        Bitmap          b    = new Bitmap(new MemoryStream(file.File.Content));
                        page.PageInfo.Width  = b.Width;
                        page.PageInfo.Height = b.Height;
                        // Set margins so image will fit, etc.
                        page.PageInfo.Margin.Bottom = 0;
                        page.PageInfo.Margin.Top    = 0;
                        page.PageInfo.Margin.Left   = 0;
                        page.PageInfo.Margin.Right  = 0;

                        page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height);

                        Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
                        // Add the image into paragraphs collection of the section
                        page.Paragraphs.Add(image1);
                        // Set the image file stream
                        image1.ImageStream = new MemoryStream(file.File.Content);
                    }
                    else if (file.File.ContentType.Contains("pdf"))
                    {
                        //Append pdf to appendages
                        Aspose.Pdf.Document thisPDF = new Aspose.Pdf.Document(new MemoryStream(file.File.Content));
                        contentPdf.Pages.Add(thisPDF.Pages);
                    }
                    else if (file.File.ContentType.Contains("word"))
                    {
                        //Convert to pdf first
                        Document     thisDoc = new Document(new MemoryStream(file.File.Content));
                        MemoryStream temp    = new MemoryStream();
                        thisDoc.Save(temp, SaveFormat.Pdf);
                        //Second append it to appendages
                        Aspose.Pdf.Document thisPDF = new Aspose.Pdf.Document(temp);
                        contentPdf.Pages.Add(thisPDF.Pages);
                    }
                }
                stream = new MemoryStream();
                contentPdf.Save(stream);
                sendLetter.LetterFileContent = stream.ToArray();
            }

            //Debug
            //Aspose.Pdf.Document letterFile = new Aspose.Pdf.Document(stream);
            //letterFile.Save(Server.MapPath("~/LetterOnly.pdf"));


            //Save letter with Appendage
            if (sendLetter.Appendages != null &&
                sendLetter.Appendages.Count > 0)
            {
                Aspose.Pdf.Document appendagePdf = new Aspose.Pdf.Document();
                foreach (var file in sendLetter.Appendages)
                {
                    if (file.File.ContentType.Contains("image"))
                    {
                        Page   page = appendagePdf.Pages.Add();
                        Bitmap b    = new Bitmap(new MemoryStream(file.File.Content));
                        page.PageInfo.Width  = b.Width;
                        page.PageInfo.Height = b.Height;
                        // Set margins so image will fit, etc.
                        page.PageInfo.Margin.Bottom = 0;
                        page.PageInfo.Margin.Top    = 0;
                        page.PageInfo.Margin.Left   = 0;
                        page.PageInfo.Margin.Right  = 0;

                        page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height);

                        Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
                        // Add the image into paragraphs collection of the section
                        page.Paragraphs.Add(image1);
                        // Set the image file stream
                        image1.ImageStream = new MemoryStream(file.File.Content);
                    }
                    else if (file.File.ContentType.Contains("pdf"))
                    {
                        //Append pdf to appendages
                        Aspose.Pdf.Document thisPDF = new Aspose.Pdf.Document(new MemoryStream(file.File.Content));
                        appendagePdf.Pages.Add(thisPDF.Pages);
                    }
                    else if (file.File.ContentType.Contains("word"))
                    {
                        //Convert to pdf first
                        Document     thisDoc = new Document(new MemoryStream(file.File.Content));
                        MemoryStream temp    = new MemoryStream();
                        thisDoc.Save(temp, SaveFormat.Pdf);
                        //Second append it to appendages
                        Aspose.Pdf.Document thisPDF = new Aspose.Pdf.Document(temp);
                        appendagePdf.Pages.Add(thisPDF.Pages);
                    }
                }
                //Return PDF from letter
                Aspose.Pdf.Document letterPdf = new Aspose.Pdf.Document(stream);

                stream = new MemoryStream();
                appendagePdf.Save(stream);
                sendLetter.AppendageContent = stream.ToArray();
                //Debug
                //appendagePdf.Save(Server.MapPath("~/AppendagesOnly.pdf"));

                letterPdf.Pages.Add(appendagePdf.Pages);
                stream = new MemoryStream();
                letterPdf.Save(stream);
                //Debug
                //letterPdf.Save(Server.MapPath("~/letterWithAppendages.pdf"));

                sendLetter.LetterFileAppendageContent = stream.ToArray();
            }
        }
Example #9
0
 private static void BuildReport(Document document, object dataSource, string dataSourceName)
 {
     ReportingEngine engine = new ReportingEngine();
     engine.BuildReport(document, dataSource, dataSourceName);
 }
Example #10
0
        public void WithAllowMissingDataFields()
        {
            Document doc = new Document();

            DocumentHelper.InsertNewRun(doc, "<<if [value == “true”] >>ok<<else>>Cancel<</if>>");

            DataSet dataSet = new DataSet();
            dataSet.ReadXml(TestDir + "DataSet.xml", XmlReadMode.InferSchema);

            ReportingEngine engine = new ReportingEngine();
            engine.Options = ReportBuildOptions.AllowMissingMembers;

            engine.BuildReport(doc, dataSet, "Bad");
        }
        private static void BuildReport(Aspose.Words.Document document, object dataSource, string dataSourceName)
        {
            ReportingEngine engine = new ReportingEngine();

            engine.BuildReport(document, dataSource, dataSourceName);
        }