透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
現代のデジタル世界では、ウェブページやHTMLドキュメントをPDFファイルに変換する能力が重要です。 これは、レポートの生成、請求書の作成、またはより見栄えの良い形式で情報を共有するために役立ちます。 このブログ記事では、Googleが開発したオープンソースライブラリであるPuppeteerを使用して、Node.jsでHTMLページをPDFに変換する方法を探ります。
Puppeteerは、主にGoogle ChromeまたはChromiumといったヘッドレスブラウザを制御し、ウェブスクレイピング、スクリーンショットの撮影、PDFの生成などのさまざまな操作を行うことができる強力なNode.jsライブラリです。 Puppeteerは、ブラウザと対話するための広範なAPIを提供しており、HTMLをPDFに変換するための優れた選択肢です。
始める前に、新しいNodeJSプロジェクトを設定する必要があります。 次の手順に従って開始してください:
まだインストールしていない場合は、NodeJS をインストールしてください(NodeJS のウェブサイトからダウンロードできます)。
プロジェクト用の新しいフォルダーを作成し、Visual Studio Codeまたは特定のコードエディターで開きます。
npm init
を実行して、プロジェクト用の新しい package.json
ファイルを作成します。 プロンプトに従い、必要な情報を入力してください。
npm install puppeteer
を実行してPuppeteerをインストールします。
プロジェクトのセットアップが完了したので、コードに取り掛かりましょう。
Puppeteerを使ってHTMLテンプレートをPDFファイルに変換するには、以下の手順に従ってください:
フォルダに「HTML To PDF.js」という名前のファイルを作成します。
const puppeteer = require('puppeteer');
const fs = require('fs');
const puppeteer = require('puppeteer');
const fs = require('fs');
コードは、2つの重要なライブラリをインポートすることから始まります:puppeteer
、ChromeやChromiumのようなヘッドレスブラウザを制御するための多用途なツール、およびファイルシステム操作を処理するための組み込みNodeJSモジュールであるfs
です。 Puppeteerは、HTMLのレンダリング、スクリーンショットのキャプチャ、およびPDFファイルの生成を含む、幅広いウェブベースのタスクを自動化することを可能にします。
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
exportWebsiteAsPdf
関数は、コードスニペットの核となるものです。 この非同期関数は、入力パラメータとしてhtml
文字列とoutputPath
を受け取り、PDFファイルを返します。関数は以下のステップを実行します:
Puppeteerを使用して新しいヘッドレスブラウザーインスタンスを起動します。
新しいブラウザページを作成します。
提供されたhtml
文字列をページコンテンツとして設定し、DOMコンテンツのロードを待ちます。 私たちは、html
テンプレートをHTML文字列として読み込み、PDF形式に変換します。
画面メディアタイプをエミュレートして、印刷専用のスタイルではなく、スクリーン用に使用されるCSSを適用します。
ロードされたHTMLコンテンツからPDFファイルを生成し、余白、背景印刷、および形式(A4)を指定します。
ブラウザーインスタンスを閉じます。
// Usage example
// Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
exportWebsiteAsPdf(html, 'result.PDF').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
// Usage example
// Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
exportWebsiteAsPdf(html, 'result.PDF').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
コードの最後のセクションは、exportWebsiteAsPdf
関数の使用方法を示しています。 次の手順を実行します:
HTMLファイルからHTMLコンテンツを読み込むには、fs
モジュールのreadFileSync
メソッドを使用します。 ここでは、HTMLページからPDFを生成するためのテンプレートファイルを読み込んでいます。
読み込まれたhtml
文字列と希望するoutputPath
を使用してexportWebsiteAsPdf
関数を呼び出します。
.then
ブロックを利用して、PDF 作成の成功を処理し、成功メッセージをコンソールに記録します。
HTMLからPDFへの変換プロセス中に発生するエラーを管理するために、 .catch
ブロックを使用し、エラーメッセージをコンソールに記録します。
このコードスニペットは、NodeJSとPuppeteerを使用してHTMLテンプレートをPDFファイルに変換する方法の包括的な例を提供します。 このソリューションを導入することで、さまざまなアプリケーションやユーザーのニーズに応じて、高品質のPDFを効率的に生成できます。
HTMLテンプレートの変換に加えて、PuppeteerはURLを直接PDFファイルに変換することもできます。
const puppeteer = require('puppeteer');
const puppeteer = require('puppeteer');
コードは、まずPuppeteerライブラリをインポートすることから始まります。これは、ChromeやChromiumのようなヘッドレスブラウザを制御するための強力なツールです。 Puppeteerは、HTMLコードのレンダリング、スクリーンショットのキャプチャ、そして私たちのケースではPDFファイルの生成など、さまざまなウェブベースのタスクを自動化することができます。
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
// Open URL in current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: 'new'
});
// Create a new page
const page = await browser.newPage();
// Open URL in current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
exportWebsiteAsPdf
関数は、コードスニペットの中核です。 この非同期関数は、入力パラメータとしてwebsiteUrl
とoutputPath
を受け取り、PDFファイルを返します。この関数は次のステップを実行します:
Puppeteerを使用して新しいヘッドレスブラウザーインスタンスを起動します。
新しいブラウザページを作成します。
指定されたwebsiteUrl
に移動し、waitUntil
オプションをnetworkidle0
に設定してネットワークがアイドル状態になるのを待ちます。
スクリーン用のCSSが印刷専用のスタイルの代わりに適用されるように、'screen'メディアタイプをエミュレートします。
指定の余白、背景印刷、およびフォーマット(A4)で読み込んだウェブページをPDFファイルに変換します。
ブラウザーインスタンスを閉じます。
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
// Usage example
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
コードの最後のセクションでは、exportWebsiteAsPdf
関数の使用方法を示しています。 次の手順を実行します:
exportWebsiteAsPdf
関数を、希望するwebsiteUrl
と outputPath
で呼び出してください。
PDF の作成が成功した際は、then
ブロックを使用して処理します。 このブロック内では、成功メッセージをコンソールに記録します。
ウェブサイトからPDFへの変換プロセス中に発生するエラーを処理するには、catch
ブロックを使用します。 エラーが発生した場合、コンソールにエラーメッセージを記録します。
このコードスニペットをプロジェクトに統合することにより、Node.jsとPuppeteerを使用してURLを高品質なPDFファイルに簡単に変換することができます。
IronPDF を探索するは、PDF ファイルの生成、編集、コンテンツの抽出に使用される人気のある .NET ライブラリです。 それは、HTML、テキスト、画像、および既存のPDF文書からPDFを作成するための簡単で効率的なソリューションを提供します。 IronPDFは、.NET Core、.NET Framework、および.NET 5.0+プロジェクトをサポートしており、さまざまなアプリケーションに対して多用途な選択肢となります。
IronPDFを使用したHTMLからPDFへの変換: IronPDFは、CSSを含むHTMLコンテンツをPDFファイルに変換することができます。 この機能を利用すると、ウェブページやHTMLテンプレートからピクセルパーフェクトのPDFドキュメントを作成できます。
URLレンダリング: IronPDFは、URLを使用してサーバーから直接ウェブページを取得し、それをPDFファイルに変換できます。これにより、ウェブコンテンツのアーカイブやダイナミックなウェブページからのレポート作成が容易になります。
テキスト、画像、PDFのマージ:IronPDFを使用すると、テキスト、画像、および既存のPDFファイルを単一のPDFドキュメントにマージできます。 この機能は、複数のコンテンツソースを使用して複雑なドキュメントを作成するのに特に便利です。
PDF操作:IronPDFは、既存のPDFファイルを編集するためのツールを提供します。例えば、ページの追加や削除、メタデータの変更、さらにはPDF文書からのテキストや画像の抽出などが可能です。
結論として、PDFファイルの生成および操作は多くのアプリケーションで一般的な要件であり、適切なツールを手元に持つことが重要です。 この記事で紹介されている、NodeJSと共にPuppeteerを使用したり、.NETと共にIronPDFを使用したりするようなソリューションは、HTMLコンテンツやURLをプロフェッショナルで高品質なPDFドキュメントに変換するための強力で効率的な方法を提供します。
IronPDF は特にその豊富な機能セットで際立っており、.NET 開発者にとって最適な選択肢となっています。 IronPDFは、その機能を探索できる無料試用版を提供しています。
ユーザーは、Iron Suiteパッケージからも恩恵を受けることができます。これは、IronXL、IronPDF、IronOCRなど、5つのプロフェッショナルな.NETライブラリを含むスイートです。