LibreOffice Writer'da bir belgedeki tüm görüntüler nasıl kaldırılır?


10

Ubuntu 12.04

LibreOffice Writer'daki bir belgeden tüm görüntüleri kaldırmak istiyorum. Belgem ~ 350 resim içeriyor. Bunları tek tek değil, toplu olarak silmenin bir yolu var mı ? Araçlar> Seçenekler> LibreOffice Writer> Görünüm> Ekran> "Grafikler ve nesneler" in işaretini kaldırmayı denedim. Ancak yer tutucular hala görülebilir.

Düzenleme: Sayfayı düz metin dosyası olarak kaydetmeyi biliyorum, ama belgemde biçimlendirmeye ihtiyacım var.


@Chelia: Belgeyi salt metin dosyası olarak kaydetmeyi denediniz mi ("farklı kaydet" tercihlerinde)?
stephenmyall

Peki "seçenekler> libreoffice yazarı> görünüm> Ekran>" Grafikler ve nesneler "" öğesinin tekrarı neden çalışmıyor? Denedim. Benim için çalışıyor. Bu ayar işaretlendiğinde, bir sonraki grafiği grafikle açtığımda, yer tutucuları görüyorum.

hala @ vasa1 yer tutucularını kaldırması gerekir :)
Rinzwind

Doğru! Ancak nihai hedefin ne olduğu veya OP'nin neden görüntüleri görmek istemediği açık değil. Salt metin dosyası olarak dışa aktarma çok fazla biçimlendirmeye neden olabilir.

kesinlikle..! Yalnızca metinle kaydedersem tüm biçimlendirmeyi kaybedeceğim.
Chella

Yanıtlar:


12

Belgedeki tüm görüntüleri kaldırmak için LibreOffice içinden kısa bir makro da kullanabilirsiniz:

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

Bu örnek ayrıca, resimlerin özelliklerini (tümünü tek boyutlu bir boyut haline getirmek gibi) değiştirmek ve şekil nesnelerini işlemek için de değiştirilebilir.

Makrolar Oluşturma

LibreOffice, IDE'nin yanı sıra kod oluşturmak, hata ayıklamak, depolamak ve çalıştırmak için Temel bir dil sağlar.

Makro iletişim kutusunu açmak için, Alt+ F11veya, menüden Araçlar > Makrolar > Makroları Düzenle > LibreOffice Basic'i kullanın.

Kod, kütüphaneler halinde düzenlenmiş modüllere yerleştirilir . Kendi oluşturabilir, ancak çoğu amaçlar için kullanabileceğiniz dahili MyMacros kütüphane ve dahili Module1 .

Makro iletişim kutusu açıldığında, Module1 öğesini vurgulayın ve Edit düğmesine basın . Bu IDE'yi açar.

Kod, Subs and Functions olarak düzenlenmiştir. VBA'dan borçlanma, İşlevler bir değer döndürmek için kullanılır ve Subs bir değer döndürmez. Main'in altında herhangi bir yerde kendi subs ve fonksiyonlarınızı tanımlayabilirsiniz. Bu nedenle, görüntüleri kaldırmak için bu kodu kullanmak için, modülü modüle yapıştırmanız yeterlidir.

Makroları Kullanma

Çalıştırmak istediğiniz Sub içinde herhangi bir yeri tıklatarak kodu doğrudan IDE'den çalıştırabilirsiniz F5. (İşlevler, bir değer döndürdüğünden, bir Sub'dan çağrılması gerekir.) Kodu çalıştırmak için iletişim düğmelerini veya menüyü de kullanabilirsiniz. IDE, yeni kod yazarken çok önemli olan entegre bir hata ayıklayıcı içerir.

Makro iletişim kutusunu bir sonraki açışınızda, alt listenin bir makro olarak listelendiğini görürsünüz ve daha sonra IDE açılmadan çalıştırılabilir. Ayrı ayrı makrolar menü veya araç çubuğu öğelerine de atanabilir.

Not: Bu makro, etkin belge ne olursa olsun çalışır. Menüden veya makro iletişim kutusundan bir makro çalıştırırken, bunun yalnızca düğmeye bastığınız belge olduğu varsayılabilir; ancak kod oluşturmak, çalıştırmak veya hata ayıklamak için IDE'yi kullanırken, etkin belgeyi başka bir belge yapmadığınızdan emin olun.

LibreOffice Basic

LibreOffice Basic, VBA'ya çok benzer, ancak nesne modeli tamamen farklı olduğu ve sözdiziminin de birçok farklılığı olduğu için benzerlik de aldatıcı olabilir.

Örneğin, VBA'da, bir görüntü nesnesine başvurunuz olduğunda, görüntü nesnesinin bir silme yöntemi olacaktır. Burada nesnelerin çok az yöntemi vardır veya devralınır. Resim nesnesini silmek için, tarayıcı tabanlı bir DOM'a çok benzeyen bir yapıya ve sözdizimine sahip belge öğesini kullanırsınız.

LibreOffice Yardım'ın LibreOffice Basic kullanmaya başlamak için bağlantıları vardır.


Çok fazla sorun yoksa, kodu gerçekten bir makroya nasıl dönüştürdüğüne dair küçük bir talimat yardımcı olabilir. Java ile ilgili tüm ağlamalar göz önüne alındığında, insanlar makroların çalışmasına izin vermek için bir JRE'ye ihtiyaç olduğunu da bilmelidir. Umarız LibreOffice'in sonunda Java içermez.

Cin. :) Ve hala LibO Writer 5.1'de çalışıyor, eklemeye değer olabilir.
Mart'ta Dɑvïd

5

Belgenin metninin biçimlendirildiğini ve salt metin olarak kaydetmenin ideal olmadığını varsayıyorum. Bu durumda, kişi biraz uzunca bir yaklaşım alabilir:

  • Geçici bir klasör oluşturun.

  • Belgeyi LibreOffice'te normal olarak açın.

  • Seçin Save Asve HTML Document (Writer) (.html)format olarak seçin .

    • Ayrıca, hedef için geçici klasörü belirtin ve önerilen html dosyasına uygun bir ad verin. Save as htmlBir sonraki ekranda kabul edilip format biçimini kabul etmeyin.
  • LibreOffice'i kapatın.

  • Yukarıda oluşturulan geçici klasörü açın. Bir html dosyası ve bir grup resim görmelisiniz .

    • Daha fazla ihtiyaç duyulmuyorsa görüntüleri silin.
  • Ardından, .htmlaksi takdirde bırakılırsa belgedeki boşluklara neden olacak etiketleri çıkarmak için dosyayı uygun bir metin düzenleyicisinde açın .

    • Örneğin, Geany'de <IMG SRC="[^>]+>arama ifadesi olarak kullandım ve "ile değiştir" kutusunda hiçbir şey kullanmadım.

geany

  • .Html dosyasını kaydedin. Şimdi, bir tarayıcıda veya hatta LibreOffice'te görüntülendiğinde, hiçbir görüntü, yer tutucu yok, sadece biçimlendirilmiş metin olmayacak.

Düzenleme: GUI tabanlı bir metin düzenleyicisi kullanmak yerine, birinin ilgili klasörde olduğu ve LibreOffice'e cli.htmlkaydedilirken verilen ad olduğu varsayılarak html, komut satırı şu şekilde kullanılabilir:

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

Her cli.html.bakihtimale karşı bir yedekleme dosyası oluşturulur, ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.