tipos teclado seleccionar referencia quita que marcadores marcador elimina cruzada crea con como .net ms-word full-text-search extract

teclado - ¿Cómo puedo tomar cada página de texto en un documento de Word por separado(usando.NET)?



que es referencia cruzada en word (4)

¿Cómo estás definiendo una página?

Si solo cuenta secciones / páginas duras, se rompe, es complejo, pero factible. Si desea contar los saltos de página suaves, la tarea se vuelve muy difícil y algo sin sentido. Considere que la determinación de dónde se produce la rotura de la página de software se genera dinámicamente en el tiempo de ejecución y no se almacena en el archivo en sí. Depende de una gran cantidad de factores, incluido el controlador de impresora activo (sí, puede cambiar para el mismo archivo en una computadora diferente), fuentes, interletraje, espaciado de línea, márgenes, etc., etc.

Necesito determinar en qué páginas de un documento de Word aparece una palabra clave. Tengo algunas herramientas que pueden obtener el texto del documento, pero nada que me diga en qué páginas aparece el texto. ¿Alguien tiene un buen lugar de partida para mí? Estoy usando .NET

¡Gracias!

edit: restricción adicional: no puedo usar ninguna de las cosas de Interop.

edit2: si alguien sabe de bibliotecas estables que pueden hacer esto, también sería útil. Uso Aspose, pero hasta donde sé, no tiene nada.


Así es como saco el texto, creo que puedes configurar el rango de selección en una página, luego puedes probar ese texto, puede ser un poco al revés de lo que necesitas, pero podría ser un lugar para comenzar.

Microsoft.Office.Interop.Word.Application wordApplication = new Microsoft.Office.Interop.Word.Application(); object missing = Type.Missing; object fileName = @"c:/file.doc"; object objFalse = false; wordApplication.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone; Microsoft.Office.Interop.Word.Document doc = wordApplication.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,ref objFalse, ref missing, ref missing, ref missing, ref missing); //I belevie you can define a SelectionRange and insert here doc.ActiveWindow.Selection.WholeStory(); doc.ActiveWindow.Selection.Copy(); IDataObject data = Clipboard.GetDataObject(); string text = data.GetData(DataFormats.Text).ToString(); doc.Close(ref missing, ref missing, ref missing); doc = null; wordApplication.Quit(ref missing, ref missing, ref missing); wordApplication = null;


Una forma horrible de hacer esto con Aspose es convertir el archivo de Word en un PDF y luego tomar texto en cada página.

No sé nada sobre las partes internas de Aspose ni cómo definen sus páginas de software cuando las convierte, pero es lo mejor que tengo hasta ahora.


Gracias por usar Aspose.Words.

En la API pública actualmente solo tenemos la información del "documento de flujo", por ejemplo, párrafos, tablas, listas, etc. Internamente, construimos un modelo de diseño de página que tiene clases como página, bloque de texto, línea de texto, etc. Existen vínculos internos, por supuesto, entre el modelo de documento y el modelo de diseño, y es posible averiguar qué página finaliza y dónde está todo. Hacer que esta información esté disponible a través de la API pública es (bueno, todavía) una prioridad en nuestra lista de prioridades.

¿Ha registrado su solicitud en los foros de soporte de Aspose.Words? Usamos esta información para mantener un sistema de votación y trabajaremos en las características que obtienen más votos primero.