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, "")); }
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); }
public iTS.Document WebExport( String fileName, DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings Settings, System.Web.HttpResponse webResponse) { return(WebExport(false, fileName, Settings, webResponse, null)); }
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)); }
//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)); }
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)); }
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); }
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); }
//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)); }
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); }
/// <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); }
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; }
public iTS.Document FileExport(DocTemplateVers.Domain.DTO.ServiceExport.DTO_Settings settings, System.IO.FileStream fileStream) { return(ExportTo(settings, fileStream, false)); }