Example #1
0
 public Document FileExport(
     DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings,
     System.IO.FileStream fileStream,
     IList <DocTemplateVers.Domain.DTO.ServiceExport.DTO_Signature> Signatures)
 {
     return(ExportTo(settings, fileStream, false, Signatures, ""));
 }
Example #2
0
        public Document GetErrorDocument(
            Boolean openCloseConnection, Boolean addContentDisposition,
            String fileName,
            System.Web.HttpResponse webResponse, System.Web.HttpCookie cookie,
            DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings,
            IList <DocTemplateVers.Domain.DTO.ServiceExport.DTO_Signature> Signatures)
        {
            if (openCloseConnection)
            {
                webResponse.Clear();
            }
            if (cookie != null)
            {
                webResponse.AppendCookie(cookie);
            }
            if (addContentDisposition || openCloseConnection)
            {
                webResponse.AddHeader("Content-Disposition", "attachment; filename=" + HtmlCheckFileName(fileName) + "." + ExportFileType.pdf.ToString());
                webResponse.ContentType = "application/pdf";
            }

            Document doc = ExportTo(settings, webResponse.OutputStream, true, Signatures, "");

            if (doc != null && openCloseConnection)
            {
                webResponse.End();
            }
            return(doc);
        }
Example #3
0
 public iTS.Document WebExport(
     String fileName,
     DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings Settings,
     System.Web.HttpResponse webResponse)
 {
     return(WebExport(false, fileName, Settings, webResponse, null));
 }
Example #4
0
 public iTS.Document WebExport(
     Boolean openCloseConnection,
     String fileName,
     DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings,
     System.Web.HttpResponse webResponse)
 {
     return(WebExport(openCloseConnection, fileName, settings, webResponse, null));
 }
Example #5
0
 //Settings!
 public Document WebExport(
     String fileName,
     DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings Settings,
     System.Web.HttpResponse webResponse,
     IList <DocTemplateVers.Domain.DTO.ServiceExport.DTO_Signature> Signatures,
     string waterMark = "")
 {
     return(WebExport(false, fileName, Settings, webResponse, null, Signatures, waterMark));
 }
Example #6
0
 public Document WebExport(
     Boolean openCloseConnection,
     String fileName,
     DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings,
     System.Web.HttpResponse webResponse,
     IList <DocTemplateVers.Domain.DTO.ServiceExport.DTO_Signature> Signatures,
     string waterMark = "")
 {
     return(WebExport(openCloseConnection, fileName, settings, webResponse, null, Signatures, waterMark));
 }
Example #7
0
        private static Document InitializeDocument(ref DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings)
        {
            // ATTENZIONE!
            // Nell'esportazione in PDF PRIMA di arrivare qui i margini dei settings vengono
            // REIMPOSTATI! Quindi i SETTINGS DEVONO essere già stati impostati!
            // E' possibile comunque recuperare i DefaultSettings direttamente qui,
            // MA questo comporta che nell'output PDF l'header andrà a sovrapporsi al contenuto.
            // Almeno in fase di TEST, quindi, ho lasciato l'eccezione!

            if (settings == null)
            {
                settings = Export.ExportBaseHelper.GetDefaultPageSettings();
            }

            //settings.Size != DocTemplateVers.PageSize.none ||
            if (settings.Size != DocTemplateVers.PageSize.custom)
            {
                lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.PageSizeValue PgSzV =
                    lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.GetSize(settings.Size, "px");
                settings.Width  = PgSzV.Width;
                settings.Height = PgSzV.Height;
            }

            if (settings.Width < lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5))
            {
                settings.Width = lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5);
            }
            if (settings.Height < lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5))
            {
                settings.Height = lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5);
            }

            if ((settings.MarginLeft + settings.MarginRight) > settings.Width)
            {
                settings.MarginLeft  = 0;
                settings.MarginRight = 0;
            }

            if ((settings.MarginTop + settings.MarginBottom) > settings.Height)
            {
                settings.MarginTop    = 0;
                settings.MarginBottom = 0;
            }

            Rectangle Page = new Rectangle(settings.Width, settings.Height);

            if (settings.BackgroundAlpha > 0)
            {
                Page.BackgroundColor = new BaseColor(settings.BackgroundRed, settings.BackgroundGreen, settings.BackgroundBlue);
            }

            Document doc = new Document(Page, settings.MarginLeft, settings.MarginRight, settings.MarginTop, settings.MarginBottom);

            return(doc);
        }
Example #8
0
        public static DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings GetPageSettings(
            iTS.Rectangle pageSize,
            float marginLeft,
            float marginRight,
            float marginTop,
            float marginBottom) //Boolean showPageNumber,
        {
            DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings = GetDefaultPageSettings();

            settings.MarginBottom = marginBottom;
            settings.MarginLeft   = marginLeft;
            settings.MarginRight  = marginRight;
            settings.MarginTop    = marginTop;
            //settings.ShowPageNumber = showPageNumber;
            settings.Height = pageSize.Height;
            settings.Width  = pageSize.Width;
            return(settings);
        }
Example #9
0
        //adding -START-...
        private static iTS.Document InitializeDocument(ref DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings)
        {
            if (settings == null)
            {
                settings = ExportBaseHelper.GetDefaultPageSettings();
            }

            //settings.Size != DocTemplateVers.PageSize.none ||
            if (settings.Size != DocTemplateVers.PageSize.custom)
            {
                DocTemplateVers.Helpers.PageSizeValue PgSzV = DocTemplateVers.Helpers.Measure.GetSize(settings.Size, "px");
                settings.Width  = PgSzV.Width;
                settings.Height = PgSzV.Height;
            }

            if (settings.Width < lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5))
            {
                settings.Width = lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5);
            }
            if (settings.Height < lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5))
            {
                settings.Height = lm.Comol.Core.DomainModel.DocTemplateVers.Helpers.Measure.cm_To_Px(5);
            }

            if ((settings.MarginLeft + settings.MarginRight) > settings.Width)
            {
                settings.MarginLeft  = 0;
                settings.MarginRight = 0;
            }

            if ((settings.MarginTop + settings.MarginBottom) > settings.Height)
            {
                settings.MarginTop    = 0;
                settings.MarginBottom = 0;
            }


            return(new iTS.Document(new iTS.Rectangle(settings.Width, settings.Height), settings.MarginLeft, settings.MarginRight, settings.MarginTop, settings.MarginBottom));
        }
Example #10
0
        public iTS.Document WebExport(Boolean openCloseConnection, String fileName, DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings, System.Web.HttpResponse webResponse, System.Web.HttpCookie cookie)
        {
            if (openCloseConnection)
            {
                webResponse.Clear();
            }
            if (cookie != null)
            {
                webResponse.AppendCookie(cookie);
            }
            webResponse.AddHeader("Content-Disposition",
                                  "attachment; filename=" + HtmlCheckFileName(fileName) + ".rtf");
            // + ExportFileType.rtf.ToString());
            webResponse.ContentType = "application/rtf";

            iTS.Document doc = ExportTo(settings, webResponse.OutputStream, false);

            if (doc != null && openCloseConnection)
            {
                webResponse.End();
            }
            return(doc);
        }
Example #11
0
        /// <summary>
        /// Effettiva creazione di TUTTO il documento. TUTTE le fuzioni passano da qui.
        /// </summary>
        /// <param name="ValSettings">I SETTINGS. INTERNAMENTE vengono CLONATI, in modo da evitare il ricalcolo dei margini passando lo stesso oggetto.</param>
        /// <param name="stream"></param>
        /// <param name="forErrorContent"></param>
        /// <param name="Signatures"></param>
        /// <returns></returns>
        private Document ExportTo(DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings ValSettings, System.IO.Stream stream, Boolean forErrorContent, IList <DocTemplateVers.Domain.DTO.ServiceExport.DTO_Signature> Signatures,
                                  string waterMark)
        {
            DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings = null;

            if (ValSettings != null)
            {
                try
                {
                    settings = (DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings)ValSettings.Clone();
                }
                catch (Exception ex)
                {
                }
            }



            Document doc = null;

            try
            {
                //MODIFICA DI MARGIN TOP E MARGIN BOTTOM!!!
                //Necessario creare tale oggetto PRIMA di inizializzare la pagina per avere i margini corretti.

                //NOTA - POSSIBILE BUG!!!

                // Nel caso la prima pagina non presenti Header e Footer
                // è da rivedere COME impostare i margini SENZA HEADER/FOOTER
                // ed impostarli correttamente per le pagine successive.
                // Al momento può anche andare così, ma ci sarà una maggiore spaziatura nella prima pagina.

                //NOTA - IMPLEMENTAZIONI FUTURE
                // NON è previsto il numero di pagina ed ancor meno il numero pagine totali,
                // per le quali sono necessari ulteriori approfondimenti.

                // Lo inizializzo qui ed ora,
                // perchè internamente vengono controllati i settings,
                // e settate le dimensioni a seconda del formato.
                doc = InitializeDocument(ref settings);



                float marginTop    = settings.MarginTop;
                float marginBottom = settings.MarginTop;

                Pdf5PageEventHandler ev = new Pdf5PageEventHandler(
                    GetHeader(), GetFooter(),
                    ref settings, Signatures,
                    waterMark);

                //REIMPOSTO I BORDI!!!
                // NON posso farlo prima, per altre logiche, tipo dimensione pagina.
                if (settings.MarginTop > doc.PageSize.Height / 3)
                {
                    settings.MarginTop = doc.PageSize.Height / 3;
                }

                if (settings.MarginBottom > doc.PageSize.Height / 3)
                {
                    settings.MarginBottom = doc.PageSize.Height / 3;
                }

                if (settings.MarginLeft > doc.PageSize.Width / 3)
                {
                    settings.MarginLeft = doc.PageSize.Width / 3;
                }

                if (settings.MarginRight > doc.PageSize.Width / 3)
                {
                    settings.MarginRight = doc.PageSize.Width / 3;
                }



                doc.SetMargins(settings.MarginLeft, settings.MarginRight, settings.MarginTop, settings.MarginBottom);

                PdfWriter pdfWriter = PdfWriter.GetInstance(doc, stream);

                pdfWriter.PageEvent = ev;
                doc.Open();

                //Non serve più,
                //if (settings.HasHeaderOnFirstPage)
                //    doc.Open();

                ////Compilazione documento
                if (forErrorContent)
                {
                    RenderErrorDocument(doc);
                }
                else
                {
                    RenderDocument(doc, pdfWriter);
                }

                //Serve per poter mettere il footer sull'ultima pagina.
                //L'evento OnEndDocument non aggiunge nulla al documento...
                ev.LastPageEnd(pdfWriter, doc);

                doc.Close();
            }
            catch (Exception ex)
            {
                doc = null;
                if (stream != null)
                {
                    stream.Close();
                }
            }
            finally
            {
                if (doc != null && doc.IsOpen())
                {
                    doc.Close();
                }
            }
            return(doc);
        }
Example #12
0
        private iTS.Document ExportTo(DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings, System.IO.Stream stream, Boolean forErrorContent)
        {
            iTS.Document doc = null;
            try
            {
                doc = InitializeDocument(ref settings);

                DocTemplateVers.Domain.DTO.ServiceExport.DTO_HeaderFooter Header = GetHeader();
                DocTemplateVers.Domain.DTO.ServiceExport.DTO_HeaderFooter Footer = GetFooter();

                float ContentWidth = settings.Width - (settings.MarginLeft + settings.MarginRight);


                iTS.rtf.RtfWriter2 rtfWriter = iTS.rtf.RtfWriter2.GetInstance(doc, stream);

                doc.Open();



                //Add Header
                iTS.Table table = null;
                if (Header != null)
                {
                    table = ConvertHeaderFooter(Header, ContentWidth);
                    if (table != null)
                    {
                        try
                        {
                            doc.Add(table);
                        }
                        catch { }
                    }
                }

                ////Compilazione documento

                if (forErrorContent)
                {
                    RenderErrorDocument(doc);
                }
                else
                {
                    RenderDocument(doc, rtfWriter);
                }

                if (Footer != null)
                {
                    table = ConvertHeaderFooter(Footer, ContentWidth);
                    if (table != null)
                    {
                        try
                        { doc.Add(table); }
                        catch { }
                    }
                }


                doc.Close();
            }
            catch (Exception ex)
            {
                doc = null;
            }
            finally
            {
                if (doc != null && doc.IsOpen())
                {
                    doc.Close();
                }
            }
            return(doc);
            //DocTemplateVers.Domain.DTO.ServiceExport.DTO_HeaderFooter Header = GetHeader();
            ////DocTemplate.TemplateHeaderFooter Header = GetHeader();
            ////DocTemplate.TemplateHeaderFooter Footer = GetFooter();
            //DocTemplateVers.Domain.DTO.ServiceExport.DTO_HeaderFooter Footer = GetFooter();

            //float ContentWidth = settings.Width - (settings.MarginLeft + settings.MarginRight);

            //Document doc = null;
            //try
            //{
            //    doc = InitializeDocument(settings);

            //    iTextSharp.text.rtf.RtfWriter2 rtfWriter = iTextSharp.text.rtf.RtfWriter2.GetInstance(doc, stream);

            //    doc.Open();



            //    //Add Header
            //    iTextSharp.text.Table table = null;
            //    if (!settings.HTMLheader && Header != null)
            //    {
            //        table = ConvertHeaderFooter(Header, ContentWidth);
            //        if (table != null)
            //            doc.Add(table);
            //    }

            //    ////Compilazione documento

            //    if (forErrorContent)
            //        RenderErrorDocument(doc);
            //    else
            //        RenderDocument(doc, rtfWriter);

            //    if (!settings.HTMLfooter && Footer != null) {
            //        table = ConvertHeaderFooter(Footer, ContentWidth);
            //        if (table!=null)
            //            doc.Add(table);
            //    }


            //    doc.Close();
            //}
            //catch (Exception ex)
            //{
            //    doc = null;
            //}
            //finally{
            //    if (doc != null && doc.IsOpen())
            //        doc.Close();
            //}
            //return doc;
        }
Example #13
0
 public iTS.Document FileExport(DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings, System.IO.FileStream fileStream)
 {
     return(ExportTo(settings, fileStream, false));
 }