Как искать и заменять разрывы страниц в Libre Office Writer? Например, я могу удалить все вставленные вручную разрывы страниц (^ m в MS Word). Я могу искать разрывы строк и разрывы абзацев с помощью регулярных выражений, но нигде не вижу символа разрыва страницы.
6 ответов
Довольно хак, но я бы предложил unzip
ping-файл .odt и работать с необработанным XML. Представляется, что файл content.xml является правильным для редактирования.
Я подготовил тестовый файл с содержанием:
QQQQQ
-page break-
AAAAA
А вот соответствующая часть необработанного XML:
<!---*lots* of declarations--->
<office:automatic-styles>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
</style:style>
</office:automatic-styles>
<office:body>
<office:text text:use-soft-page-breaks="true">
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="Standard">QQQQQ</text:p>
<text:p text:style-name="P1">AAAAA</text:p>
</office:text>
</office:body>
<!---some happy-end--->
(Реальный файл, вероятно, будет более сложным.) Мне кажется, что "P1" - это стиль, созданный для "переноса" свойства разрыва страницы перед абзацем. Итак, две вещи приходят мне на ум:
- удалить "P1" из тегов
<text:p />
- удалить свойство разрыва страницы из стиля "P1"
Кстати, здесь я бы также рекомендовал избегать регулярных выражений в пользу какого-то реального парсера XML.
Попробуйте использовать \n или \r или s/\r \n/\r/g в своем регулярном выражении. \n - для новостных лент, \r - для возвратов.
Я не знаю, будет ли это работать в офисе Libre. Альтернативный вариант - скопировать из него в текстовый редактор (gedit в linux, notepad++ в windows), выполнить поиск и замену и скопировать его обратно.
Я не уверен, поддерживает ли это, но я бы посмотрел на OOoPy.
OOoPy: изменить документы OpenOffice.org в Python
Хотя это и не совсем то , что вы просите, я подошел довольно близко (с помощью функции «Найти и заменить» и форматирования абзаца), потому что у меня была похожая проблема. Я понял, что разрывы страниц на самом деле не являются специальными символами, а являются частью форматирования / стиля абзаца следующего абзаца (или в очень редких случаях предыдущего - в этом случае этот метод должен быть слегка изменен).
Если у вас всегда есть разрывы страниц после специально отформатированного текста, вы можете искать эти места по:
- Изменить> Найти и заменить ... (Ctrl + H)
- Открыть Другие варианты
- Нажмите Формат ...
- Выберите конкретное форматирование, которое выделяет отдельные абзацы из всего другого текста в документе
- Отметьте Incuding Styles (после закрытия окна текстового формата (поиска) )
- Нажмите «Найти все» и закройте окно « Найти и заменить»
- Формат> График ...
- в текстовом потоке снимите флажок Разрывы> Вставить (или, если он не отмечен, сначала отметьте его, примените и повторите этот шаг)
Интересно, почему раздел Text Flow> Breaks выделен серым цветом в текстовом формате (поиск), было бы гораздо точнее, если бы его можно было искать напрямую:-/
Как удалить «ручной разрыв страницы» из документа «писатель»? Что ж, когда вы смотрите в Интернет, вряд ли есть что-то, что могло бы справиться с пакетным удалением для разрывов страниц. Скажи 50 с лишним или больше. Решение очень простое. Вы сохраняете файл .doc как файл .xml. Снова откройте файл .xml с помощью «Writer», и вот, все разрывы страниц исчезли. Не спрашивай меня как.