クイックスタート
このガイドでは、noto-pdf-tsを素早く始める方法を説明します。
インストール
npm install noto-pdf-ts基本的な使い方
すべてのページをレンダリング
import { openPdf } from 'noto-pdf-ts';import fs from 'node:fs/promises';
const pdf = await openPdf('/path/to/document.pdf');
for await (const page of pdf.renderPages()) { console.log(`ページ ${page.pageNumber}/${page.totalPages} をレンダリング中`); await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer);}
await pdf.close();await usingを使用(ES2024)
ES2024の明示的リソース管理を使用すると、await usingで自動的にクリーンアップできます:
import { openPdf } from 'noto-pdf-ts';import fs from 'node:fs/promises';
await using pdf = await openPdf('/path/to/document.pdf');
for await (const page of pdf.renderPages()) { await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer);}// スコープが終了すると自動的にpdfが閉じられますワンライナー便利関数
シンプルなユースケースにはrenderPdfPagesを使用:
import { renderPdfPages } from 'noto-pdf-ts';import fs from 'node:fs/promises';
for await (const page of renderPdfPages('/path/to/document.pdf')) { await fs.writeFile(`page-${page.pageNumber}.jpg`, page.buffer);}// PDFは自動的に開かれて閉じられますレンダリングオプション
スケール
scaleオプションで出力解像度を制御:
// サムネイル(小さい、高速)for await (const page of pdf.renderPages({ scale: 0.5 })) { }
// 高解像度(大きい、詳細)for await (const page of pdf.renderPages({ scale: 3.0 })) { }フォーマット
JPEG(小さい)とPNG(ロスレス)から選択:
// JPEG(デフォルト)for await (const page of pdf.renderPages({ format: 'jpeg' })) { }
// PNGfor await (const page of pdf.renderPages({ format: 'png' })) { }品質
JPEG品質を制御(0-1):
// 高品質for await (const page of pdf.renderPages({ format: 'jpeg', quality: 0.95 })) { }
// 低品質、小さいファイルfor await (const page of pdf.renderPages({ format: 'jpeg', quality: 0.5 })) { }特定のページ
特定のページのみをレンダリング:
// 特定のページ番号for await (const page of pdf.renderPages({ pages: [1, 3, 5] })) { }
// ページ範囲for await (const page of pdf.renderPages({ pages: { start: 1, end: 5 } })) { }暗号化されたPDFを開く
const pdf = await openPdf('/path/to/encrypted.pdf', { password: 'secret'});エラーハンドリング
import { openPdf, PdfError } from 'noto-pdf-ts';
try { const pdf = await openPdf('/path/to/document.pdf'); // ...} catch (error) { if (error instanceof PdfError) { switch (error.code) { case 'FILE_NOT_FOUND': console.error('ファイルが見つかりません'); break; case 'PASSWORD_REQUIRED': console.error('パスワードが必要です'); break; case 'INVALID_PDF': console.error('無効なPDFファイルです'); break; default: console.error(`エラー: ${error.message}`); } }}