Как я могу использовать библиотеку DocX для глобального изменения шрифта, удаления лишних пробелов и удаления или добавления дополнительных разрывов строк?

Я хочу, используя библиотеку DocX [https://docx.codeplex.com/pting, преобразовать документ .docx, чтобы использовать другой шрифт. Кто-нибудь знает, как это сделать? Образцов проектов очень мало, а документации нет.

Я также обнаружил, что в документах часто бывают лишние пробелы, и я хочу перебирать все это до тех пор, пока не будет двух смежных пробелов. Я могу сделать это в цикле, я полагаю, заменяя "" (2 пробела) на "" (1 пробел), пока "" (2 пробела) больше не будет найдено.

Однако я также хочу удалить лишние разрывы строк, которые иногда возникают при копировании и вставке текста в документ. Я могу сделать это «вручную» (в Libre Office, не знаю, как это делается в MS Word), так как получил ответ на этот вопрос: (выберите" Регулярные выражения ", а затем замените" $ "(без кавычек) с пробелом)

... а как программно, с DocX?

Кроме того, в некоторых случаях я хочу ДОБАВИТЬ разрывы строк / «возврат абзацев», когда между концом одного абзаца и началом другого есть допустимые разрывы строк, но нет дополнительных строк для их визуального разделения. Согласно это:

... Я могу добавить разрыв абзаца / строки к допустимому разрыву строки, выполнив поиск «$» и заменив его на «\ n \ n»

Это тоже работает (вручную, в Libre Office); но опять же ... как это сделать с библиотекой DocX?


person B. Clay Shannon    schedule 31.12.2013    source источник
comment
Что касается удаления лишних пробелов, я ответил, что здесь: stackoverflow.com/questions/20910408/. Однако меня все еще интересует остальное, и я с нетерпением жду ответа от кого-нибудь.   -  person B. Clay Shannon    schedule 03.01.2014


Ответы (1)


Похоже, что не все это возможно с текущей версией библиотеки DocX, которую вы используете. Если это не указано в документации, функции также могут не существовать, и вам не следует использовать недокументированные функции.

Однако существует гораздо более зрелая библиотека, называемая Open XML SDK, которая может делать все, что вам нужно.

Правильный способ изменить шрифт, независимо от того, делаете ли вы это с помощью редактора документов или пишете программу для управления этими файлами, - это изменить соответствующий атрибут стиля текста или изменить определение используемого стиля.

Вы никогда, никогда, никогда не должны напрямую менять шрифт любого текста. Лично я считаю, что меню «Тип шрифта» и «Размер шрифта» должны быть полностью удалены из word / libreoffice / etc и должны быть доступны только в диалоговом окне «Изменить свойства стиля»; единственная причина для прямого применения шрифта - это если вы действительно предоставляете пример обсуждаемого шрифта!

См. Практическое руководство. Замена частей стилей в текстовом документе (Open XML SDK ) из документации MSDN для описания того, как это работает.

Для поиска и замены текста соответствующая страница MSDN выглядит как Как выполнить поиск и заменить текст в части документа (Open XML SDK). Для конкретной замены нескольких пробелов одним пробелом в Google есть множество результатов, которые все должны работать, по крайней мере, в какой-то степени.

person AJMansfield    schedule 08.01.2014
comment
Я не понимаю / не согласен с этим комментарием: вы никогда, никогда, никогда не должны напрямую менять шрифт любого текста. Лично я считаю, что меню «Тип шрифта» и «Размер шрифта» должны быть полностью удалены из word / libreoffice / etc и должны быть доступны только в диалоговом окне «Изменить свойства стиля»; единственная причина для непосредственного применения шрифта - это если вы на самом деле предоставляете пример обсуждаемого конкретного шрифта! - person B. Clay Shannon; 08.01.2014
comment
Если я копирую и вставляю некрасивый документ (например, Courier или Times New Roman) в новый документ, первое, что я делаю, это меняю шрифт. Шрифт по умолчанию должен быть отличным от шрифта Times New Roman 9X-uglier-чем-a-bag-of-butts. Вердана была бы в порядке (легко читается, не так уродливо). - person B. Clay Shannon; 08.01.2014
comment
@ B.ClayShannon, я хотел сказать, что если вы хотите изменить внешний вид текста, вы должны сделать это не путем выбора шрифта в раскрывающемся списке шрифтов, а путем перехода в редактор стилей и изменения начертания шрифта для соответствующего стиля, аналогично о том, как следует отредактировать файл .css, чтобы изменить шрифт текста на веб-странице, а не заставлять его использовать тег <font> (который, не случайно, был полностью удален из html5). - person AJMansfield; 11.01.2014
comment
Справедливо; Я в достаточной степени неандерталец, разбирающийся в одежде текстового процессора, что никогда даже не думал (или не подозревал) об изменении стиля. - person B. Clay Shannon; 11.01.2014