/// <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);
        }