Как я могу определить отступы абзацев и строк в документах MS Word с помощью c #?

#c# #ms-word #ms-office

#c# #ms-word #ms-office

Вопрос:

Кто-нибудь, пожалуйста, скажите мне, есть ли какой-либо способ определить отступы каждой строки и абзаца в документах MS word. Я новичок в программировании Office, и я намерен написать приложение, которое преобразует документы в текст, сохраняя при этом свои стили с намерениями преобразования в пробелы.

Комментарии:

1. Привет… вы получили правильный ответ?

Ответ №1:

Взгляните на WordML, это XML-файл, который содержит документ doc. Создать и отредактировать его довольно просто. 🙂

http://msdn.microsoft.com/en-us/library/aa212812(v=office.11).aspx

http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats

Комментарии:

1. На самом деле, мне нужны документы pars, которые были созданы Word, и, как вы знаете, word генерирует настолько сложный XML-файл. Существует ли какой-либо SDK, API или что-то подобное для простого управления документами word.

2. Может быть, вы можете заглянуть в Microsoft. Библиотека взаимодействия.

Ответ №2:

XML в файлах .docx сложный, но вы можете игнорировать большую его часть (особенно если читаете его через библиотеку C #). Распакуйте docx и загляните в word/document.xml. Отступ указан в свойствах абзаца (w: pPr). например, это xml для абзаца с отступом в 540 с чем-то (примерно в ширину одной вкладки, не уверен, какие единицы измерения):

 <w:p w:rsidR="009932EC" w:rsidRDefault="009932EC" w:rsidP="000A0336">
  <w:pPr>
    <w:ind w:left="540" />
  </w:pPr>
  <w:r>
    <w:t>Indented.</w:t>
  </w:r>
</w:p>
  

Документация здесь:

http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.indentation.aspx