LibreOffice Writerでドキュメント内のすべての画像を削除する方法


10

Ubuntu 12.04

LibreOffice Writerのドキュメントからすべての画像を削除したい。私のドキュメントには〜350枚の画像が含まれています。1つずつではなくまとめて削除する方法はありますか?[ツール]> [オプション]> [LibreOffice Writer]> [表示]> [表示]> [グラフィックスとオブジェクト]をオフにしてみました。しかし、プレースホルダーはまだ見えています。

編集:ページをプレーンテキストファイルとして保存する方法を知っていますが、ドキュメントで書式を設定する必要があります。


@Chelia:(「保存」設定で)テキストのみのファイルとしてドキュメントを保存してみましたか?
stephenmyall

しかし、なぜ「オプション」>「libreofficeライター」>「ビュー」>「表示」>「グラフィックスとオブジェクト」のチェックを外しても機能しないのですか?私はそれを試してみました。わたしにはできる。その設定がチェックされていると、次にグラフィックスを含むドキュメントを開いたときに、プレースホルダーが表示されます。

彼は依然としてプレースホルダー@ vasa1を削除する必要があります:)
Rinzwind 2013

ほんとだ!しかし、最終的な目的が何であるか、OPが画像を見たくない理由が明確ではありません。テキストのみのファイルとしてエクスポートすると、多くのフォーマットが失われる可能性があります。

丁度..!テキストのみで保存すると、すべての書式が失われます。
Chella、2013

回答:


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の基本

コードは、ライブラリに編成されたモジュールに配置されます。独自に作成することもできますが、ほとんどの目的で、組み込みのMyMacrosライブラリと組み込みのModule1を使用できます

マクロダイアログが開いたら、Module1を強調表示、[ 編集 ] を押します。IDEが開きます。

コードはサブと関数に編成されています。VBAから借用した関数は値を返すために使用され、Subsは値を返しません。Mainの下の任意の場所に独自のサブと関数を定義できます。したがって、このコードを使用して画像を削除するには、モジュールに貼り付けるだけです。

マクロの使用

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次の画面では、odt形式ではなく同意します。
  • LibreOfficeを閉じます。

  • 上記で作成した一時フォルダを開きます。あなたは見るべき1つの htmlファイルや画像の束を。

    • それ以上必要がなければ、画像を削除します。
  • 次に、.html適切なテキストエディタでファイルを開いて、タグを削除すると、タグが残っていると、ドキュメントにギャップが生じます。

    • たとえば、Geanyでは<IMG SRC="[^>]+>検索式として使用し、[置換]ボックスには何も使用していませんでした。

げんき

  • .htmlファイルを保存します。これで、ブラウザーまたはLibreOfficeで表示した場合、画像、プレースホルダー、フォーマットされたテキストは表示されなくなります。

編集:GUIベースのテキストエディターを使用する代わりに、関連するフォルダーにあり、それcli.htmlhtmlLibreOfficeでの保存中に指定された名前であると想定して、コマンドラインを次のように使用できます。

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

念のためcli.html.bak、バックアップファイルが作成されます...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.