Игнорировать изображения при преобразовании текстового документа в текст, используя Interop в C # - PullRequest
0 голосов
/ 15 мая 2018

В настоящее время мой код успешно преобразует весь текст в текстовом документе (.docx) в обычный текст в файле .txt, но там, где в слове doc есть изображение, оно заменяется символом '/' в моем выходном файле. Как я могу игнорировать изображения?

Мой код заглушки:

Word.Application app = new Word.Application();
Word.Document doc;
object missing = Type.Missing;
object readOnly = true;
doc = app.Documents.Open(ref path, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 
string text = doc.Content.Text;
System.IO.File.WriteAllText(txtPath, text);
Console.WriteLine("File converted to .txt!");

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Другой подход вместо предложенного выше

Просто сохраните документ как текст

object path = txtPath; 
const int wdFormatText = 2;
object fileFormat = wdFormatText;
doc.SaveAs (ref path, ref fileFormat, ref missing, ...) // other missing parameter

Существует также метод SaveAs2, который, я полагаю, будет таким же, если вы продолжите проход missing для других параметров

0 голосов
/ 15 мая 2018

Как насчет удаления всех изображений перед доступом к Контенту?

Примерно так:

while (doc.InlineShapes.Count > 0)
{
    doc.InlineShapes(1).Delete();  //Collection is 1-based, first element is 1, not 0; at least when using it within VBA (weird language...)

}
// and with Shapes as well
while (doc.Shapes.Count > 0)
{
    doc.Shapes(1).Delete();
}

string text = doc.Content.Text;
...