Как удалить все изображения в документе в LibreOffice Writer?
Ubuntu 12.04
Я хочу удалить все изображения из документа в LibreOffice Writer. Мой документ содержит ~ 350 изображений. Есть ли способ их массового удаления, а не один за другим? Я попытался снять отметку Инструменты> Параметры> LibreOffice Writer> Вид> Показать> "Графика и объекты". Но заполнители все еще видны.
Изменить: я знаю о сохранении страницы в виде простого текстового файла, но мне нужно форматирование в моем документе.
2 ответа
Вы также можете использовать короткий макрос из LibreOffice для удаления всех изображений в документе:
Sub RemoveImages
Dim oDoc as Object
oDoc = ThisComponent
Dim oGraphics as Object
oGraphics = oDoc.getGraphicObjects()
Dim oImg as Object
For Each oImg in oGraphics
oDoc.getText().removeTextContent(oImg)
Next
End Sub
Этот пример также можно изменить, чтобы изменить свойства изображений (например, сделать их все одинакового размера), а также обработать объекты формы и т. Д.
Создание макросов
LibreOffice предоставляет базовый язык, а также IDE для создания, отладки, хранения и запуска кода.
Чтобы открыть диалоговое окно макроса, используйте Alt + F11 или, в меню, Инструменты > Макросы > Упорядочить макросы > LibreOffice Basic
Код размещается в модулях, которые организованы в библиотеки. Вы можете создать свой собственный, но для большинства целей вы можете использовать встроенную библиотеку MyMacros и встроенный модуль Module1.
Как только диалоговое окно макроса открыто, выделите Module1 и нажмите Edit. Это открывает IDE.
Код организован в подпрограммы и функции. Заимствуя из VBA, функции используются для возврата значения, а подпрограммы не возвращают значение. Вы можете определить свои собственные сабвуферы и функции в любом месте ниже Main. Таким образом, чтобы использовать этот код для удаления изображений, вы просто вставляете его в модуль.
Использование макросов
Вы можете запустить код прямо из IDE, щелкнув в любом месте внутри сабвуфера, который вы хотите запустить, и нажмите F5. (Функции, поскольку они возвращают значение, должны вызываться из Sub.) Вы также можете использовать диалоговые кнопки или меню для запуска кода. IDE включает в себя встроенный отладчик, который имеет решающее значение при написании нового кода.
В следующий раз, когда вы откроете диалоговое окно макроса, вы увидите подпрограмму, указанную в качестве макроса, и ее можно будет запустить без открытия IDE. Отдельные макросы также могут быть назначены элементам меню или панели инструментов.
Примечание. Этот макрос будет выполняться на любом активном документе. При запуске макроса из меню или диалогового окна макроса это может быть документ, в котором вы только что нажали кнопку; но при использовании IDE для создания, запуска или отладки кода убедитесь, что вы не сделали другой документ активным документом.
LibreOffice Basic
LibreOffice Basic очень похож на VBA, но это сходство также может быть обманчивым, поскольку объектная модель совершенно другая и синтаксис также имеет много различий.
Например, в VBA, если у вас есть ссылка на объект изображения, у объекта изображения будет метод удаления. Здесь объекты имеют или наследуют очень мало методов. Чтобы удалить объект изображения, вы используете элемент документа со структурой и синтаксисом, очень похожим на DOM на основе браузера.
Справка LibreOffice содержит ссылки для начала работы с LibreOffice Basic.
Я предполагаю, что текст документа отформатирован, и сохранение в виде только текста не является идеальным. В этом случае можно использовать несколько более длинный подход:
Создайте временную папку.
Откройте документ в LibreOffice как обычно.
выберите
Save As
и здесь выберитеHTML Document (Writer) (.html)
как формат.- Кроме того, укажите временную папку для назначения и дайте предлагаемому html-файлу подходящее имя. Согласиться с
Save as html
и не формат odt на следующем экране.
- Кроме того, укажите временную папку для назначения и дайте предлагаемому html-файлу подходящее имя. Согласиться с
Закройте LibreOffice.
Откройте временную папку, созданную выше. Вы должны увидеть один HTML-файл и кучу изображений.
- Удалите изображения, если они больше не нужны.
Затем откройте
.html
файл в соответствующем текстовом редакторе, чтобы удалить теги, которые в противном случае, если оставить их, вызывают пробелы в документе.- Например, в Geany я использовал
<IMG SRC="[^>]+>
в качестве поискового выражения и ничего в поле "заменить на".
- Например, в Geany я использовал
- Сохраните файл.html. Теперь при просмотре в браузере или даже в LibreOffice не будет изображений, заполнителей, только отформатированный текст.
Редактировать: вместо использования текстового редактора на основе графического интерфейса, предполагая, что он находится в соответствующей папке и что cli.html
имя, данное при сохранении в html
в LibreOffice можно просто использовать командную строку следующим образом:
perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html
Файл резервной копии, cli.html.bak
, создан на всякий случай...
Вы можете выбрать одно изображение в документе с помощью мыши, затем нажать, Ctrl + A чтобы выбрать все изображения в текущем листе и Del удалить их.