今回は、React プロジェクトで PDF を表示する方法についてです。
調べると、<iframe> を使ってページに埋め込む方法が出てくるのですが、こちらの方法だとダウンロードボタンや印刷ボタン等がついた操作ヘッダーが表示されてしまいます。
このヘッダーが表示されていた方が良い場合もありますが、今回は表示されてほしくなかったので、ライブラリを使って実装しました。
使用したライブラリは「React-PDF」です。
GitHub のページはこちらから。
GitHub – wojtekmaj/react-pdf: Display PDFs in your React app as easily as if they were images.
https://github.com/wojtekmaj/react-pdf
こちらのライブラリを使うと、PDF をまるで画像のように扱うことができます!
まず、下記コマンドでライブラリをインストールします。
npm install react-pdf --save
上記が完了したら、あとはプロジェクトの任意の場所に実装していきます。
サンプルコードは下記のとおりです。
import React from 'react';
import { Document, Page } from 'react-pdf';
class Example extends React.Component {
render() {
return (
<div>
<Document file="[表示したいPDFのパス]">
<Page pageNumber={1} />
</Document>
</div>
);
}
}
export default Example;
上記のように記述すると、表示したい PDF ファイルの1ページ目を表示してくれます。
なお、表示するページは .map() などを使えば複数指定できるかと思いますので、こちらは適宜修正してください。
こちらを実行すると、<img> タグで表示した画像ファイルのような感覚で、PDF ドキュメントが表示されました。
なお、今回は実装しませんでしたが、PDF ファイルの読み込みに成功した時に実行される .onLoadSuccess() や .onPassword() というパスワードで保護された PDF が読み込まれた時に呼び出される関数なども用意されています。
特にページ数が多い PDF ファイルなど、読み込みに時間がかかるファイルを読み込むときなどには、.onLoadSuccess()を使ってローディングアイコンを操作する処理を追加した方が良さそうですね。
以上、「React-PDF」ライブラリを使って PDF を表示する方法についてでした。
ご参考になれば幸いです。