es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Forma más rápida de lograr la tarea de conversión/vista previa de documentos.

Creé una aplicación de formularios de Windows para convertir archivos docx a html usando Pandoc y un control de navegador web para mostrar el archivo html. Esta aplicación es muy necesaria para mis colegas en la universidad para previsualizar archivos docx, ya que ya no tenemos acceso a MS Office…

Probé esto en mi PC y funciona bien cuando se hace clic en cada elemento en el listbox, carga la vista previa en el navegador web rápidamente. Pero solo quiero hacerlo más rápido, ¿hay alguna recomendación para acelerarlo (puedo proporcionar el código completo si es necesario), pero lo siguiente es el evento principal de cambio de elemento seleccionado en el listbox:

También dime cuál de los siguientes es más rápido: establecer wb.DocumentText como vacío o navegar a la página about:blank

private void lbFiles_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        wb.DocumentText = "";

        // Dos listas de cadenas
        SelectedFile = AllFiles[lbFiles.SelectedIndex];
        NameOnly = AllNamesOnly[lbFiles.SelectedIndex];

        if (NameOnly.EndsWith(".txt") || NameOnly.EndsWith(".docx"))
        {
            #region MediaFolder
            if (Directory.Exists("MF")) Directory.Delete("MF", true);
            Directory.CreateDirectory("MF");
            #endregion

            string cmd = "pandoc --extract-media ./MF \"" + SelectedFile + "\" -o " + "output.html";

            File.WriteAllText("BatchFile.bat", cmd);

            StartHidden("BatchFile.bat"); //Proceso objeto con: ProcessWindowStyle.Hidden; y con espera de salida de 3 segundos

            wb.Navigate(Environment.CurrentDirectory + "\\" + "output.html");
        }
    }
    catch(Exception ex) { throw ex; }
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agilizar el proceso de conversión, podrías considerar utilizar programación asíncrona para ejecutar Pandoc en segundo plano mientras aún permites que el usuario interactúe con la aplicación. Además, podrías intentar optimizar el comando de Pandoc o utilizar una caché para evitar conversiones innecesarias.

    En cuanto a la segunda parte de la pregunta, establecer wb.DocumentText en blanco es más rápido que navegar a la página about:blank. Establecer wb.DocumentText en blanco simplemente borra el contenido del documento actual, mientras que navegar a la página about:blank implica una solicitud de red adicional para obtener la página en blanco.

Comments are closed.