Làm cách nào để xóa tất cả các hình ảnh trong tài liệu trong LibreOffice Writer?


10

Ubuntu 12.04

Tôi muốn xóa tất cả các hình ảnh khỏi một tài liệu trong LibreOffice Writer. Tài liệu của tôi chứa ~ 350 hình ảnh. Có cách nào để xóa chúng en masse chứ không phải từng người một? Tôi đã thử bỏ chọn Công cụ> Tùy chọn> Trình ghi LibreScript> Xem> Hiển thị> "Đồ họa và đối tượng". Nhưng những người giữ chỗ vẫn có thể nhìn thấy.

Chỉnh sửa: Tôi biết về việc lưu trang dưới dạng tệp văn bản thuần túy, nhưng tôi cần định dạng trong tài liệu của mình.


@Chelia: Bạn đã thử lưu tài liệu dưới dạng tệp chỉ văn bản (trong tùy chọn "lưu dưới dạng") chưa?
stephenmyall

Nhưng tại sao bỏ chọn "tùy chọn> nhà văn libreoffice> xem> Hiển thị>" Đồ họa và đối tượng "" không hoạt động? Tôi đã thử nó. Nó làm việc cho tôi. Với cài đặt đó được đánh dấu, lần sau khi tôi mở bất kỳ tài liệu nào có đồ họa, tôi chỉ thấy người giữ chỗ.

anh ấy vẫn cần xóa phần giữ chỗ @ vasa1 :)
Rinzwind

Thật! Nhưng không rõ mục đích cuối cùng là gì hoặc tại sao OP không muốn xem hình ảnh. Xuất dưới dạng tệp chỉ có văn bản có thể giết chết rất nhiều định dạng.

chính xác..! Tôi sẽ mất tất cả định dạng nếu tôi lưu nó chỉ với văn bản.
Chella

Câu trả lời:


12

Bạn cũng có thể sử dụng một macro ngắn từ bên trong LibreOffice để xóa tất cả hình ảnh trong tài liệu:

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

Ví dụ này cũng có thể được sửa đổi để thay đổi các thuộc tính của hình ảnh (chẳng hạn như làm cho tất cả chúng có kích thước đồng nhất) cũng như xử lý các đối tượng hình dạng, v.v.

Tạo macro

LibreOffice cung cấp một ngôn ngữ cơ bản cũng như trong IDE để tạo, gỡ lỗi, lưu trữ và chạy mã.

Để mở hộp thoại macro, sử dụng Alt+ F11hoặc, từ menu, Công cụ > Macro > Sắp xếp macro > LibreOffice Basic

Mã được đặt trong các mô-đun , được tổ chức thành các thư viện . Bạn có thể tự tạo, nhưng với hầu hết các mục đích, bạn có thể sử dụng thư viện MyMacros tích hợpModule1 tích hợp .

Khi hộp thoại macro được mở, tô sáng Module1 và nhấn Edit . Điều này mở IDE.

Mã được tổ chức thành Dự bị và Chức năng. Vay từ VBA, Hàm được sử dụng để trả về giá trị và Dự bị không trả lại giá trị. Bạn có thể xác định subs và hàm của riêng mình ở bất cứ đâu bên dưới Main. Vì vậy, để sử dụng mã này để loại bỏ hình ảnh, bạn chỉ cần dán nó vào mô-đun.

Sử dụng macro

Bạn có thể chạy mã ngay từ IDE bằng cách nhấp vào bất kỳ vị trí nào trong Sub bạn muốn chạy và nhấn F5. (Các hàm, vì chúng trả về một giá trị, cần được gọi từ một Sub.) Bạn cũng có thể sử dụng các nút hộp thoại hoặc menu để chạy mã. IDE bao gồm một trình gỡ lỗi tích hợp, điều này rất quan trọng khi viết mã mới.

Lần sau khi bạn mở hộp thoại macro, bạn sẽ thấy phần phụ được liệt kê dưới dạng macro và sau đó nó có thể được chạy mà không cần mở IDE. Các macro riêng lẻ cũng có thể được gán cho các mục menu hoặc thanh công cụ.

Lưu ý: Macro này sẽ chạy trên bất cứ thứ gì là tài liệu đang hoạt động. Khi chạy macro từ menu hoặc hộp thoại macro, đây có thể được coi là tài liệu mà bạn vừa nhấn nút; nhưng khi sử dụng IDE để tạo, chạy hoặc gỡ lỗi mã, hãy đảm bảo bạn chưa tạo tài liệu khác cho tài liệu đang hoạt động.

LibreScript Basic

LibreOffice Basic rất giống với VBA, nhưng sự tương đồng đó cũng có thể bị đánh lừa do mô hình đối tượng hoàn toàn khác nhau và cú pháp cũng có nhiều điểm khác biệt.

Ví dụ, trong VBA, một khi bạn có tham chiếu đến một đối tượng hình ảnh, đối tượng hình ảnh sẽ có phương thức xóa. Ở đây, các đối tượng có hoặc kế thừa rất ít phương thức. Để xóa đối tượng hình ảnh, bạn sử dụng thành phần tài liệu có cấu trúc và cú pháp rất giống với DOM dựa trên trình duyệt.

LibreScript Help có các liên kết để bắt đầu với LibreOffice Basic.


Nếu nó không quá rắc rối, một hướng dẫn nhỏ về cách thực sự chuyển đổi mã thành macro có thể hữu ích. Với tất cả các tiếng kêu về Java, mọi người cũng nên biết rằng cần có JRE để cho phép các macro hoạt động. Chúng ta hãy hy vọng rằng LibreOffice cuối cùng cũng không có Java.

Thiên tài. :) Và vẫn hoạt động trong LibO Writer 5.1, nó có thể đáng để thêm vào.
Ngày

5

Tôi giả sử rằng văn bản của tài liệu được định dạng và việc lưu dưới dạng văn bản chỉ không lý tưởng. Trong trường hợp đó, người ta có thể có một cách tiếp cận hơi dài:

  • Tạo một thư mục tạm thời.

  • Mở tài liệu trong LibreOffice bình thường.

  • Chọn Save Asvà ở đây chọn HTML Document (Writer) (.html)làm định dạng.

    • Ngoài ra, chỉ định thư mục tạm thời cho đích và đặt tên tệp html được đề xuất một tên phù hợp. Đồng ý Save as htmlvà không định dạng odt trong màn hình tiếp theo.
  • Đóng LibreScript.

  • Mở thư mục tạm thời được tạo ở trên. Bạn sẽ thấy một tệp html và một loạt các hình ảnh.

    • Xóa hình ảnh nếu chúng không cần thiết thêm.
  • Sau đó, mở .htmltệp trong trình soạn thảo văn bản thích hợp để loại bỏ các thẻ nếu không, nếu để lại, sẽ gây ra các khoảng trống trong tài liệu.

    • Ví dụ: trong Geany, tôi đã sử dụng <IMG SRC="[^>]+>làm biểu thức tìm kiếm và không có gì trong hộp "thay thế bằng".

geany

  • Lưu tệp .html. Bây giờ, khi được xem trong trình duyệt hoặc thậm chí trong LibreOffice, sẽ không có hình ảnh, không có chỗ dành sẵn, chỉ có định dạng văn bản.

Chỉnh sửa: Thay vì sử dụng trình soạn thảo văn bản dựa trên GUI, giả sử một tệp nằm trong thư mục có liên quan và đó cli.htmllà tên được đặt trong khi lưu htmlvào LibreOffice, người ta chỉ có thể sử dụng dòng lệnh theo cách này:

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

Một tập tin sao lưu cli.html.bak, được tạo ra chỉ trong trường hợp ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.