CentOS で LibreOffice を使用してドキュメント形式を変換する方法

CentOS で LibreOffice を使用してドキュメント形式を変換する方法

プロジェクト要件では、アップロードされたドキュメントの前処理が必要です。ユーザーが doc 形式でドキュメントをアップロードした場合、後続のプロセスでドキュメントのコンテンツを抽出できるように、docx または pdf 形式に処理する必要があります。

最初にphpoffice/phpwordパッケージを試してみましたが、ドキュメントの変換が理想的ではないことがわかりました。このパッケージは、ドキュメントの変換よりもコンテンツに基づいてドキュメントを生成するのに適していますが、私のニーズにはあまり適していません。

そんな時に、オープンソースツールのLibreOfficeを発見しました。使ってみて、とても効果的であることがわかったので、皆さんにシェアしたいと思います。

サーバーは CentOS7 です。yum を使用して LibreOffice を直接インストールします。約 600MB 以上のディスク容量が必要です。

# 以前にインストールされないように、インストール前に削除することができます。yum remove libreoffice-*
yum で libreoffice をインストール

インストールが完了するのを待った後、バージョンを確認します。公式バージョンは 6.1 ですが、yum パッケージは 5.3.6 のままですが、使用に問題はありません。ここでも、独自の Linux システム パッケージ管理ツールを使用してインストールすることをお勧めします。これにより、多くの手間を省くことができます。

[root@localhost /]# soffice --version
LibreOffice 5.3.6.1 30 (ビルド: 1)

使い方がわからない場合は、soffice --help を使用してヘルプを参照できます。パラメータと使用例はたくさんあります。フォーマット変換は非常に簡単です。

soffice --headless --convert-to docx /opt/upload/source/123.doc --outdir /opt/upload/source

上記のコマンドは、 /opt/upload/source/123.doc upload/source/123.doc ファイルを docx 形式に変換し、/ opt/upload/sourceフォルダーに出力します。

デフォルトでは:

  1. 出力ファイルはソースファイル名 + 新しい拡張子で保存されます。
  2. outdir 内の同じ名前の既存のファイルを上書きします。

変換が成功すると、次のような出力が表示されます。

フィルターを使用して /opt/upload/source/123.doc -> /opt/upload/source/123.docx に変換: MS Word 2007 XML
上書き: /opt/upload/source/123.docx

LibreOffice はファイル形式に応じて自動的にフォーマットフィルターをマッチングします。サポートされるフォーマットについては、公式 Web サイトを参照してください。

要約する

以上が、CentOS で LibreOffice を使用してドキュメント形式の変換を実現する方法についての編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Linux システムで Centos7 を使って ElasticSearch ミドルウェアと共通インターフェースを構築するデモ
  • Centos7 で ZooKeeper3.4 ミドルウェアを構築するための一般的なコマンドの概要

<<:  mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

>>:  Vueで親子コンポーネント通信を実装する方法

推薦する

js が CSS 属性 (値) のサポートを決定して通知する状況の分析

新しい CSS 機能を使用する場合、その互換性は常に考慮されます。おそらく、その互換性、どのブラウザ...

ORM モデル フレームワークを使用して MySQL データベースを操作する方法

ORM とは何ですか? ORM は Object Relational Mapping の略で、オブ...

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

CSSアニメーションがJSによってブロックされるかどうかについての簡単な議論

CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...

JavaScriptはすべての選択と選択解除の操作を実装します

この記事では、JavaScriptで全選択と全選択解除の操作を実装するための具体的なコードを参考まで...

CSS の vertical-align プロパティとベースラインの問題に関する深い理解

vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...

2級コンピュータ試験のMySQL知識ポイント mysql alterコマンド

テーブル構造を編集するための MySQL の alter コマンドの使用。具体的な内容は以下のとおり...

WebページでjQueryを参照する方法

CDN(コンテンツ配信ネットワーク)を通じて参照できます。 jQuery は Google と Mi...

共通要素のデフォルトのマージンとパディング値に関する議論

今日は、さまざまなブラウザでのデフォルト要素のマージン値が何であるかという問題について説明しました。...

ウェブサイトのデザイン体験のための7つの異なるカラースキーム

ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...

Dockerfile 内の予約語命令の解析処理

目次1. Dockerfile とは何ですか? 2. Dockerfile構築プロセスの分析3. D...

MySQL の削除に基づく構文エイリアスの問題

目次MySQL 削除構文エイリアスの問題mysql の delete ステートメントでエイリアスを使...

JS における for、for...in、for...of、forEach の違いと使用例

forループ基本的な構文形式: for(変数の初期化; 条件式; 演算式){ループ本体ステートメント...

MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)

目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...