7

Как искать и заменять разрывы страниц в Libre Office Writer? Например, я могу удалить все вставленные вручную разрывы страниц (^ m в MS Word). Я могу искать разрывы строк и разрывы абзацев с помощью регулярных выражений, но нигде не вижу символа разрыва страницы.

6 ответов6

4

Этот пост в списке рассылки LibreOffice предлагает плагин AltSearch . На странице плагина написано, что он способен

  • Поиск справочной страницы и разрыв столбцов и их настройка или деактивация
2

Довольно хак, но я бы предложил 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.

1

Попробуйте использовать \n или \r или s/\r \n/\r/g в своем регулярном выражении. \n - для новостных лент, \r - для возвратов.

Я не знаю, будет ли это работать в офисе Libre. Альтернативный вариант - скопировать из него в текстовый редактор (gedit в linux, notepad++ в windows), выполнить поиск и замену и скопировать его обратно.

0

Я не уверен, поддерживает ли это, но я бы посмотрел на OOoPy.

OOoPy: изменить документы OpenOffice.org в Python

0

Хотя это и не совсем то , что вы просите, я подошел довольно близко (с помощью функции «Найти и заменить» и форматирования абзаца), потому что у меня была похожая проблема. Я понял, что разрывы страниц на самом деле не являются специальными символами, а являются частью форматирования / стиля абзаца следующего абзаца (или в очень редких случаях предыдущего - в этом случае этот метод должен быть слегка изменен).

Если у вас всегда есть разрывы страниц после специально отформатированного текста, вы можете искать эти места по:

  • Изменить> Найти и заменить ... (Ctrl + H)
  • Открыть Другие варианты
  • Нажмите Формат ...
  • Выберите конкретное форматирование, которое выделяет отдельные абзацы из всего другого текста в документе
  • Отметьте Incuding Styles (после закрытия окна текстового формата (поиска) )
  • Нажмите «Найти все» и закройте окно « Найти и заменить»
  • Формат> График ...
  • в текстовом потоке снимите флажок Разрывы> Вставить (или, если он не отмечен, сначала отметьте его, примените и повторите этот шаг)

Интересно, почему раздел Text Flow> Breaks выделен серым цветом в текстовом формате (поиск), было бы гораздо точнее, если бы его можно было искать напрямую:-/

-2

Как удалить «ручной разрыв страницы» из документа «писатель»? Что ж, когда вы смотрите в Интернет, вряд ли есть что-то, что могло бы справиться с пакетным удалением для разрывов страниц. Скажи 50 с лишним или больше. Решение очень простое. Вы сохраняете файл .doc как файл .xml. Снова откройте файл .xml с помощью «Writer», и вот, все разрывы страниц исчезли. Не спрашивай меня как.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .