PHP + Microsoft Graph APIでエクセルをPDFへ変換します
業務内容
webアプリケーションの開発をしていると、帳票をPDFで出力したいといった要望を頻繁に受けます。
これまでは、帳票をエクセルで生成してダウンロードしてもらい、
それを手動でPDFへ変換するようにクライアントにお願いしていましたが、
請求書フォーマットをそのまま請求先へメールで送信する処理になり、
どうしても自動でPDF化する必要がでてきました。
請求書なので、フォントやレイアウトの崩れがない、
手動で変更したような綺麗なPDFを生成しないといけません。
あれこれ調べているうちに、Microsoft Graph APIを知り、
PHPExcelで生成した請求書のエクセルをSharepointへアップロードして、
PDF形式でダウンロードすることで、綺麗なPDFへ変換できることを知りました。
他にもPDFへ変換したり、PDFを生成する手段はありそうでしたが、
安定して綺麗なPDFを作れるのはこのAPIだと思います。
下記はエクセル、ワード、パワーポイントなどの
オフィス系ファイルをPDFへ変換するデモサイトです。
こちらでPDFの変換レベルをご確認ください。
https://lolipop-25751b1484531f40.ssl-lolipop.jp/ms_graph_api/office_to_pdf.php
APIに必要なキー値:
1.ディレクトリ (テナント) ID
2.アプリケーション (クライアント) ID
3.クライアント シークレットの値(シークレットIDは要らない)
4.ユーザーID
エクセルファイルをPDFへ変換する大まかな処理工程です。
エクセルファイルのサイズなどにもよりますが、概ね数秒でPDFファイルが作成できます。
1)PHPExcelなどでエクセルファイルを生成。
↓
2)APIでアクセストークンを取得
↓
3)API + Curlでsharepointサーバーへエクセルファイルをアップロード
↓
4)APIでアップしたエクセルをPDFフォーマットでダウンロードし、file_put_contentsでサーバー内に保存
↓
5)APIでsharepointへアップした元のエクセルファイルを削除
- 業務
- Webアプリケーション構築
- プログラミング言語
- PHP