React コンポーネントから PDF を生成する

Shiv Yadav 2023年10月12日
React コンポーネントから PDF を生成する

React コンポーネントから PDF ファイルを生成する必要がある場合があります。 このチュートリアルでは、React コンポーネントから PDF ファイルを作成する方法について説明します。

React コンポーネントから PDF を生成する

React は、広く使用されているフロントエンド開発フレームワークです。 オンライン アプリの設計中に PDF ドキュメントを作成する必要が生じることがありますが、それは Web ページ全体またはコンポーネントのみである可能性があります。

jspdf および react-dom/server ライブラリを使用して、React コンポーネントを使用して PDF ファイルを生成する場合があります。

まず、次のコマンドを使用して jspdf npm パッケージをインストールします。

npm install jspdf --save

デフォルトでは、react-dom/server には Create React App によって生成されたプロジェクトが含まれます。

インストールに続いて、そのパッケージを適切な React コンポーネントにインポートする必要があります。

import JsPDF from 'jspdf';
import ReactDOMServer from 'react-dom/server';

次に、PDF を生成およびエクスポートする機能を開発します。 完全な例を見てみましょう:

import jsPDF from 'jspdf';
import React from 'react';
import ReactDOMServer from 'react-dom/server';

const document = new jsPDF();
const Shiv =
    <b>You have Downlaoded a component from react<
        /b>;

export default function App() {
  const save = () => {
    document.html(ReactDOMServer.renderToStaticMarkup(Shiv), {
      callback: () => {
        document.save("yourDoc.pdf");
      },
    });
  };

  return (
    <div>
      <button onClick={save}>React Component to pdf</button><
    /div>
  );
}

新しい jsPDF 関数オブジェクト インスタンスを作成し、それを document に割り当てました。 次に、太字のテキストを表示する Shiv JSX ステートメントがあります。

それに続いて、App()save 関数を記述します。この関数は、renderToStaticMarkup メソッドによって生成された HTML 文字列を使用して document.html メソッドを呼び出します。

renderToStaticMarkup は、余分な特性を取り除き、React を主要な静的ページ ジェネレーターとして利用したい場合に、いくつかのバイトを節約する場合に便利です。 クライアントで React を使用してマークアップをインタラクティブにする場合は、このアプローチを使用しないでください。

代わりに、サーバーで ReactDOM と renderToString を使用してください。

出力:

PDFダウンロードボタン

React コンポーネントを PDF でダウンロードするのに役立つボタンが表示されます。 それをクリックすると、yourDoc. というファイルがダウンロードされます。

PDF ダウンロード済み

著者: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

関連記事 - React Component