/// <summary> /// Método unificado para exportación a word, a partir de este formato se exporta al mismo word, a pdf /// o a html /// <summary> /// <param name="instancia">Datos del documento de instancia a exportar</param> /// <returns>Documento de word con el contenido a exportar</returns> /// @throws Exception public Document exportarDocumentoAWordInterno(DocumentoInstanciaXbrlDto instancia, ReporteXBRLDTO reporteXBRLDTO) { //StopWatch w = new StopWatch(); //w.start(); if (UbicacionPlantillaExportacion == null) { throw new Exception("La ubicación de la plantilla del archivo word es nula"); } Stream streamPlantilla = null; Document word = null; try{ streamPlantilla = Assembly.GetExecutingAssembly().GetManifestResourceStream(UbicacionPlantillaExportacion); if (streamPlantilla == null) { throw new Exception("La plantilla del archivo word es nula"); } word = new Document(streamPlantilla); DocumentBuilder docBuilder = new DocumentBuilder(word); docBuilder.MoveToDocumentEnd(); for (int iIndice = 0; iIndice < reporteXBRLDTO.Indices.Count(); iIndice++) { IndiceReporteDTO rolExportar = reporteXBRLDTO.Indices[iIndice]; if (ExportadorPorRol.ContainsKey(rolExportar.Uri)) { ExportadorPorRol[rolExportar.Uri].exportarRolAWord(docBuilder, instancia, rolExportar, reporteXBRLDTO); } } } catch (Exception ex) { LogUtil.Error(ex); throw; } finally { if (streamPlantilla != null) { streamPlantilla.Close(); } } return(word); }
/// <summary> /// Método unificado para exportación a word, a partir de este formato se exporta al mismo word, a pdf /// o a html /// <summary> /// <param name="instancia">Datos del documento de instancia a exportar</param> /// <returns>Documento de word con el contenido a exportar</returns> /// @throws Exception public virtual Document exportarDocumentoAWordInterno(DocumentoInstanciaXbrlDto instancia, ReporteXBRLDTO reporteXBRLDTO) { //StopWatch w = new StopWatch(); //w.start(); if (UbicacionPlantillaExportacion == null) { throw new Exception("La ubicación de la plantilla del archivo word es nula"); } Stream streamPlantilla = null; Document word = null; try{ streamPlantilla = Assembly.GetExecutingAssembly().GetManifestResourceStream(UbicacionPlantillaExportacion); if (streamPlantilla == null) { throw new Exception("La plantilla del archivo word es nula"); } word = new Document(streamPlantilla); var tituloTablaContenido = reporteXBRLDTO.ObtenValorEtiquetaReporte("INFORMACION_FINANCIERA_TRIMESTRAL"); if (!String.IsNullOrEmpty(tituloTablaContenido)) { word.Range.Replace("Información Financiera Trimestral", tituloTablaContenido, false, true); } DocumentBuilder docBuilder = new DocumentBuilder(word); docBuilder.MoveToDocumentEnd(); for (int iIndice = 0; iIndice < reporteXBRLDTO.Indices.Count(); iIndice++) { IndiceReporteDTO rolExportar = reporteXBRLDTO.Indices[iIndice]; if (ExportadorPorRol.ContainsKey(rolExportar.Uri)) { if (iIndice == 0) { ((ExportadorRolDocumentoBase)ExportadorPorRol[rolExportar.Uri]).escribirEncabezado(docBuilder, instancia, reporteXBRLDTO, false); } docBuilder.InsertBreak(BreakType.SectionBreakNewPage); ExportadorPorRol[rolExportar.Uri].exportarRolAWord(docBuilder, instancia, rolExportar, reporteXBRLDTO); } } for (int i = 0; i < word.Sections.Count; i++) { FieldCollection fields = word.Sections[i].Range.Fields; for (int j = 0; j < fields.Count; j++) { if (fields[j].Type == FieldType.FieldTOC || fields[j].Type == FieldType.FieldHyperlink) { fields[j].Update(); } } } //word.UpdateFields(); //word.UpdatePageLayout(); } catch (Exception ex) { LogUtil.Error(ex); throw; } finally { if (streamPlantilla != null) { streamPlantilla.Close(); } } //w.stop(); //log.info("Tiempo en exportarDocumentoAWordInterno() : " + ReporteXBRLUtil.obtenerTiempos(w)); return(word); }
public override Document exportarDocumentoAWordInterno(DocumentoInstanciaXbrlDto instancia, ReporteXBRLDTO reporteXBRLDTO) { if (UbicacionPlantillaExportacion == null) { throw new Exception("La ubicación de la plantilla del archivo word es nula"); } Stream streamPlantilla = null; Document word = null; try { streamPlantilla = Assembly.GetExecutingAssembly().GetManifestResourceStream(UbicacionPlantillaExportacion); if (streamPlantilla == null) { throw new Exception("La plantilla del archivo word es nula"); } word = new Document(streamPlantilla); DocumentBuilder docBuilder = new DocumentBuilder(word); docBuilder.MoveToDocumentEnd(); for (int iIndice = 0; iIndice < reporteXBRLDTO.Indices.Count(); iIndice++) { IndiceReporteDTO rolExportar = reporteXBRLDTO.Indices[iIndice]; if (ExportadorPorRol.ContainsKey(rolExportar.Uri)) { ExportadorPorRol[rolExportar.Uri].exportarRolAWord(docBuilder, instancia, rolExportar, reporteXBRLDTO); try { docBuilder.InsertBreak(BreakType.SectionBreakNewPage); } catch (Exception ex) { LogUtil.Error(ex); } } } for (int i = 0; i < word.Sections.Count; i++) { FieldCollection fields = word.Sections[i].Range.Fields; for (int j = 0; j < fields.Count; j++) { if (fields[j].Type == FieldType.FieldTOC || fields[j].Type == FieldType.FieldHyperlink) { fields[j].Update(); } } } //word.UpdateFields(); word.UpdatePageLayout(); } catch (Exception ex) { LogUtil.Error(ex); throw; } finally { if (streamPlantilla != null) { streamPlantilla.Close(); } } return(word); }