Як видалити всі зображення з документа в LibreOffice Writer?


10

Ubuntu 12.04

Я хочу видалити всі зображення з документа в LibreOffice Writer. Мій документ містить ~ 350 зображень. Чи є спосіб їх видалити масово, а не по черзі? Я спробував зняти прапорець Інструменти> Опції> Writer LibreOffice> Перегляд> Дисплей> "Графіка та об'єкти". Але помічники місць все ще видно.

Редагувати: Я знаю про збереження сторінки як звичайний текстовий файл, але мені потрібно форматування в документі.


@Chelia: Ви намагалися зберегти документ як текстовий файл (у налаштуваннях "зберегти як")?
stephenmyall

Але чому відмітка "параметри> авторизовані програми> перегляд> Дисплей>" Графіка та об'єкти "" не працює? Я спробував це. Це працює для мене. Коли цей параметр поставлений галочкою, наступного разу, коли я відкриваю будь-який документ із графікою, я просто бачу заставки.

йому все одно потрібно буде видалити заповнювачі @ vasa1 :)
Rinzwind

Правда! Але незрозуміло, яка кінцева мета, або чому ОП не хоче бачити зображення. Експорт у текстовий файл може вбити багато форматування.

точно ..! Я втрачу все форматування, якщо збережу його лише текстом.
Челла

Відповіді:


12

Ви також можете використовувати короткий макрос з 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 та вбудований модуль1 .

Після відкриття діалогового вікна макроса виділіть Module1 і натисніть « Правка» . Це відкриває IDE.

Код організований в підсобку і функції. Запозичення від VBA, Функції використовуються для повернення значення, а Subs не повертає значення. Ви можете визначити власні підрозділи та функції де завгодно нижче Основного. Отже, щоб використовувати цей код для видалення зображень, просто вставити його в модуль.

Використання макросів

Ви можете запустити код прямо з IDE, натиснувши де-небудь всередині Sub, який потрібно запустити, і натисніть F5. (Функції, оскільки вони повертають значення, потрібно викликати з Sub.) Ви також можете скористатися кнопками діалогового вікна або меню для запуску коду. IDE включає в себе інтегрований налагоджувач, що є вирішальним при написанні нового коду.

Наступного разу, коли ви відкриєте діалогове вікно макросу, ви побачите підрозділ, вказаний як макрос, і його можна буде запустити, не відкриваючи IDE. Окремі макроси також можуть бути призначені елементам меню або панелі інструментів.

Примітка. Цей макрос працюватиме на будь-якому активному документі. Під час запуску макросу з меню чи діалогу макросів це може вважатись документом, де ви щойно натиснули кнопку; але використовуючи IDE для створення, запуску чи налагодження коду, переконайтеся, що ви не зробили інший документ активним документом.

LibreOffice Basic

LibreOffice Basic дуже схожий на VBA, але ця схожість також може обманювати, оскільки об'єктна модель зовсім інша і синтаксис також має багато відмінностей.

Наприклад, у VBA, як тільки у вас є посилання на об’єкт зображення, об’єкт зображення матиме метод видалення. Тут об’єкти мають або успадковують дуже мало методів. Щоб видалити об’єкт зображення, ви використовуєте елемент документа зі структурою та синтаксисом, дуже схожими на DOM на базі браузера.

Довідка LibreOffice містить посилання для початку роботи з LibreOffice Basic.


Якщо це не так багато проблем, може бути корисною невеликою інструкцією про те, як насправді перетворити код у макрос. Враховуючи всі вигуки щодо Java, люди також повинні знати, що потрібен JRE, щоб макроси могли працювати. Будемо сподіватися, що LibreOffice нарешті стане без Java.

Геніальність. :) І досі працює в LibO Writer 5.1, можливо, варто додати.
Dɑvïd

5

Я припускаю, що текст документа відформатований і збереження як лише тексту не є ідеальним. У цьому випадку можна скористатися дещо тривалим підходом:

  • Створіть тимчасову папку.

  • Відкрийте документ у LibreOffice звичайно.

  • Виберіть Save Asі тут виберіть HTML Document (Writer) (.html)як формат.

    • Крім того, вкажіть тимчасову папку для пункту призначення та надайте запропонованому HTML-файлу відповідне ім'я. Погодьтеся на Save as htmlформат на наступному екрані, а не його.
  • Закрийте LibreOffice.

  • Відкрийте створену вище тимчасову папку. Ви повинні побачити один html-файл і купу зображень.

    • Видаліть зображення, якщо вони більше не потрібні.
  • Потім відкрийте .htmlфайл у відповідному текстовому редакторі, щоб викреслити теги, які в іншому випадку, якщо їх залишити, спричинить прогалини в документі.

    • Наприклад, у Geany я використовував <IMG SRC="[^>]+>як пошуковий вираз, і нічого в полі "замінити на".

геній

  • Збережіть файл .html. Тепер при перегляді у веб-переглядачі або навіть у LibreOffice не буде зображень, ні заповнювачів, а лише форматований текст.

Редагування: Замість використання текстового редактора на основі GUI, якщо припустити, що він знаходиться у відповідній папці, і cli.htmlце ім'я, яке вказується під час збереження htmlв LibreOffice, можна просто використовувати командний рядок таким чином:

perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html

Файл резервної копії,, cli.html.bakстворюється на всякий випадок ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.