PDFKit を使用して Node.js で PDF を作成する方法
PDFKit は、開発者が PDF ファイルを簡単に作成して操作できるようにする Node.js ライブラリです。PDF を作成し、テキスト、画像、図形などのさまざまな種類のコンテンツを PDF に追加するための、簡単で効果的な API を提供します。
PDF Kit を使用して Node.js で PDF を作成する方法を学びます。
PDFkitの設定
手順を進めるには、マシンに Node.js と npm (Node.js パッケージ マネージャー) がインストールされている必要があります。
次の端末コマンドを実行して、これらのツールがインストールされていることを確認します。
node -v
npm -v
Node.js プロジェクトで PDFKit の使用を開始するには、次の npm コマンドを実行してインストールします。
npm install pdfkit
このコマンドは PDFKit をインストールし、プロジェクトの依存関係に追加します。
PDFKit で PDF ドキュメントを作成する
PDFKit を使用して PDF ドキュメントを作成するには、スクリプト ファイルにpdfkitパッケージとfs (ファイル システム) モジュールが必要です。
const PDFDocument = require('pdfkit');
const fs = require('fs');
次に、PDFDocumentクラスの新しいインスタンスを作成します。このクラスは PDF ファイルを表します。
const doc = new PDFDocument();
作成されたインスタンスは読み取り可能なストリームです。つまり、pipe()メソッドを使用してその内容をファイルに保存できます。
これを行うには、docインスタンスをfs.createWriteStreamによって作成された書き込み可能なストリームにパイプします。
doc.pipe(fs.createWriteStream('MyPDFDoc.pdf'));
createWriteStreamメソッドは、PDF ファイルの内容をローカル ファイル システムの指定された場所に保存します。
上記のコード ブロックは、結果の PDF ファイルを現在の作業ディレクトリにMyPDFDoc.pdfという名前で保存します。
PDF にコンテンツを追加した後は、常にストリームを終了することが重要です。次のコマンドを使用してそれを行うことができます。
doc.end();
ノード コマンドnode [スクリプト名]を実行して、現在の作業ディレクトリにPDF ファイルMyPDFDoc.pdfを作成します。
PDFKit でテキストを追加する
ドキュメントをパイプして保存する前に、さまざまな変更を加えることができます。PDFKit を使用すると、ドキュメントへのテキストの追加が簡単になり、出力の表示をカスタマイズするための多くのオプションが含まれます。
ドキュメントにテキストを追加するには、単にtext()メソッドを呼び出し、追加するテキストを引数として渡します。
doc.text("Coding is Easy!")
PDFKIT がドキュメントにテキストを追加すると、そのテキストの現在の X および Y 位置が追跡されます。そのため、テキスト メソッドを呼び出すたびに、PDFKit は前の行の下に新しい行を追加します。
ただし、テキスト自体の後に X 座標と Y 座標をテキスト メソッドに指定することで、その位置を変更できます。
doc.text('Coding is Easy!', 100, 100)
行を上下に移動するには、移動するテキストの行数を指定して moveDown または moveUp メソッドを呼び出します。
doc.moveDown(3);
doc.moveUp();
デフォルトでは、引数を渡さずにいずれかのメソッドを呼び出すと、1 行だけ移動します。
PDFKit は、PDF 形式で定義されている 14 の標準フォントをそれぞれサポートしています。PDFKitテキスト ドキュメントには、これらの標準フォントの完全なリストがあります。
font()メソッドを使用して、必要なフォントを指定します。対応するフォント名を文字列として渡すだけです。
doc.font('Times-Roman')
.text('Coding is Easy!');
fontSize( ) メソッドとfillColor()メソッドをそれぞれ使用して、フォント サイズとテキストの色を変更することもできます。
例えば:
// This changes the text color to red and gives it a font size of 8
doc.fillColor('red')
.fontSize(8)
.text('Coding is Easy!');
PDFKit で画像を追加する
PDF ドキュメントに画像を追加するには、そのパスをドキュメント インスタンスのimageメソッドに渡すだけです。
doc.image('path/to/image.jpeg')
PDFKit では、JPEG または PNG 形式の画像を追加できます。
デフォルトでは、PDFKit は画像をネイティブ サイズで挿入します。image()メソッドへの引数としてキーと値のペアを含むオブジェクトを提供することで、画像のサイズを変更できます。幅、高さ、および水平方向と垂直方向の配置を指定できます。
例えば:
// Specifying the width alone
doc.image('path/to/image.jpg', { width: 300 });
// Specifying both the width and height
doc.image('path/to/image.jpg', { width: 300, height:200 })
PDFKit でページを追加する
PDF ドキュメントに新しいページを追加するには、ドキュメント インスタンスでaddPageメソッドを呼び出すだけです。
doc.addPage()
新しいページを追加するたびにコンテンツを自動的に追加するには、ドキュメント インスタンスでpageAddedイベントを使用します。
例えば:
doc.on('pageAdded', () => doc.text("Coding is Easy!"));
PDFKit では、新しいドキュメントを作成するとき、または既存のドキュメントに新しいページを追加するときに、ページのサイズを指定できます。PDFKit の紙のドキュメントで説明されている定義済みのページ サイズがいくつかあります。
これらの定義済みのページ サイズを使用するには、PDFDocumentコンストラクターまたはaddPage()メソッドにオブジェクトを渡します。size プロパティを使用して、用紙サイズの名前である文字列を指定します。
例えば:
// constructor
const doc = new PDFDocument({ size: 'A5' });
// addPage function
doc.addPage({ size: 'A7' });
このオプション オブジェクトをPDFDocumentコンストラクターに渡すと、ドキュメント全体のデフォルトのページ サイズが設定されます。addPageメソッドに別の値を渡すことで、このデフォルトを上書きできます。
ページを追加するときにmarginsプロパティにオブジェクトを渡すことで、ページの余白を設定できます。
marginsプロパティは、各マージンを表すtop、bottom、left、およびrightプロパティを持つオブジェクトを受け取ります。
例えば:
// Add different margins on each side
doc.addPage({
margins: {
top: 72,
bottom: 72,
left: 50,
right: 50
}
});
このコードは、上下の余白を 72 ポイントに、左右の余白を 50 ポイントに設定します。PDFKit で作成されたドキュメントのデフォルトの余白は、すべての辺で 1 インチ (72 ポイント) の余白であることに注意してください。
上、下、左、右の余白をすべて同じ値に設定するには、marginプロパティを持つオブジェクトをaddPageメソッドに渡すだけです。
doc.addPage({ margin: 60 }) // add a 60 point margin to each side
Node.js で PDFKit を使用して PDF を作成する利点
PDFKit を使用すると、Node.js アプリケーションから標準およびサポート対象のドキュメントを作成できます。PDFKit を使用すると、複雑なドキュメントを簡単に処理できます。さらに、ユーザーへのドキュメントの配信を容易にし、共有と印刷をより簡単にすることができます。
コメントを残す