Pergunta

Eu preciso determinar quais páginas de um documento do Word que uma palavra-chave ocorre em. Tenho algumas ferramentas que podem me tirar o texto do documento, mas nada que me diz quais páginas o texto ocorre em. Alguém tem um bom começando lugar para mim? Estou usando .NET

Obrigado!

edit: restrição adicionais:. Eu não pode usar qualquer uma das coisas Interop

edit2: Se alguém sabe de bibliotecas estáveis ??que podem fazer isso, que também seria útil. Eu uso Aspose, mas tanto quanto eu sei que não tem nada.

Foi útil?

Solução

Isto é como eu obter o texto para fora, eu acredito que você pode definido o intervalo de selecção para uma página, então você pode testar esse texto, pode ser um pouco para trás do que você precisa, mas poderia ser um lugar para começar.

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;

Outras dicas

Como você está definindo uma página?

Se você só contam seção / quebras de página difícil complexas, mas factível. Se você deseja contar quebras de página suave a tarefa torna-se muito difícil e um tanto sem sentido. Considere-se que a determinação de onde soft-quebras de página terra é gerado dinamicamente em tempo de execução e não é armazenada no próprio arquivo. Depende de um grande número de fatores, incluindo o driver da impressora ativa (sim, pode mudar para o mesmo arquivo em um computador diferente), fontes, kerning, espaçamento entre linhas, margens, etc, etc, etc.

Uma forma de merda para fazer isso com Aspose é converter o arquivo do Word para um texto grab PDF e, em seguida, em cada página.

Eu não sei nada sobre os internos Aspose ou como eles definem suas páginas suaves ao converter, mas este é o melhor que eu tenho até agora.

Obrigado por usar Aspose.Words.

Na API pública atualmente temos apenas a informação "documento de fluxo" por exemplo parágrafos, tabelas, listas etc. Internamente, nós construímos um modelo de layout de página que tem aulas como página, bloco de texto, linha de texto e assim por diante. Há links internos de curso entre o modelo de documento e o modelo de layout e é possível descobrir que termina página Onde e todo o material. Tornando esta informação disponível através da API pública é (bem, ainda) no topo da nossa lista de prioridades.

Você já registrado seu pedido nos fóruns de suporte Aspose.Words? Usamos essa informação para manter um sistema de votação e vai trabalhar sobre os recursos que recebem mais votos em primeiro lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top