React(JSX/TSX)
ReactDOMServer を使用して JSX/TSX から HTML 文字列を生成し、それを pdfg の API に送信して PDF に変換する方法を説明します。
技術的な概要
- JSX/TSX で記述された React コンポーネントを作成
- ReactDOMServer.renderToString()を使用して HTML 文字列に変換
- 生成された HTML 文字列を pdfg の API に送信して PDF 化
サンプル
コンポーネントの定義
// Invoice.tsx
import React from "react";
interface Props {
  items: { name: string; price: number }[];
  total: number;
}
export const Invoice: React.FC<Props> = ({ items, total }) => (
  <html>
    <head></head>
    <body>
      <div className="invoice">
        <h1>請求書</h1>
        <table>
          <thead>
            <tr>
              <th>品目</th>
              <th>金額</th>
            </tr>
          </thead>
          <tbody>
            {items.map((item, i) => (
              <tr key={i}>
                <td>{item.name}</td>
                <td>{item.price}円</td>
              </tr>
            ))}
          </tbody>
        </table>
        <p className="total">合計: {total}円</p>
      </div>
    </body>
  </html>
);