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; }
}
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. Establecerwb.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.