質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

2106閲覧

EC2でLibreOfficeを使ってエクセルからPDFにする方法

mikeko0901

総合スコア227

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2020/10/27 04:56

エクセルからPDFファイルに変換する処理を作成しています。
しかし本番環境(本番Ec2、開発環境はcloud9です)ではPDFが作成されません。
以下、コードです。

excel.php

<?php require_once ("../../vendor/autoload.php"); //PDFファイルの保存 exec('export HOME=/tmp;/opt/libreoffice7.0/program/soffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ template_receipt2.xlsx');

ちなみに、コマンドでlibreOfficeの場所を見てみましたら、以下となっていました。

イメージ説明

$ cd /usr/bin/
$ dir したとき↓
イメージ説明

ちなみに、コマンドで

/usr/bin/soffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ template_receipt.xlsx

と打っても、ディレクトリがないと出てしまいます・・・
イメージ説明

アドバイスいただけますと幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PHP+LibreOfficeでEXCELファイルをPDFファイルを作成する

OpenOfficeでドキュメント変換
を参考にされたんじゃないかなと予想しますが、

シンボリックリンク作成
実行ファイルは、「/opt/libreoffice6.4/program/soffice」にインストールされます。このままだとバージョンが異なるごとにパスが変わるので「/usr/bin/soffice」にシンボリックリンク作成します
$ sudo ln -s /opt/libreoffice6.4/program/soffice /usr/bin/soffice
$ ls -l /usr/bin/soffice
lrwxrwxrwx 1 root root 35 Jun 25 16:50 /usr/bin/soffice -> /opt/libreoffice6.4/program/soffice

の工程を忘れているか失敗していませんか?

投稿2020/10/27 15:33

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikeko0901

2020/10/27 23:02

ありがとうございます。以下、再びSSHコマンドでやってみました。 $cd html/admin/proc $ sudo ln -s /opt/libreoffice7.0/program/soffice /usr/bin/soffice ↓ In: failed to create symbolic link '/usr/bin/soffice' : File exists と出るのですでにできているのかなと思っておりますが、できていないのでしょうか。。。 続けて、 $ ls -l /usr/bin/soffice ↓ lrwxrwxrwx 1 root root 35 Oct 27 12:31 /usr/bin/soffice -> /opt/libreoffice7.0/program/soffice と出たので、これは成功したと思っていましたが、成功していないのでしょうか… 続けて、 $ /usr/bin/soffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ template_receipt.xlsx ↓をやると・・・ -bash: /usr/bin/soffice: No such file or directory と出て、ディレクトリがないとなってしまいます・・・ 一連のコマンドは、cdして、変換したいエクセルのあるフォルダまで移動してから行っていますが、最初の2つはcdしない方がいいとかあるのでしょうか… お分かりになりましたらご教示いただけますと幸いです。。
tanat

2020/10/28 01:29

$ /opt/libreoffice7.0/program/soffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir ./ template_receipt.xlsx とするとどうなりますか
mikeko0901

2020/10/29 05:30

すみません、こちら、本番環境のサーバーのCPUが、ARMで、LibreOfficeのサポート対象外のためインストールできていないことがわかりました・・・ 一旦閉じます・・・ ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問