Node.jsを使用してPDFファイルを圧縮する方法 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# Node.jsを使用してPDFファイルを圧縮する方法
大きなPDFファイルは、ファイル転送を遅くし、ストレージコストを増大させ、ドキュメントが多いアプリケーションでのパフォーマンスを低下させます。 IronPDF for Node.jsは、内蔵画像の品質を低下させ、必要に応じてドキュメント内の表示寸法に画像をリスケールする`compressSize`メソッドを提供します。これにより、ドキュメント構造を変更せずにファイルサイズを50%以上削減することができます。
*as-heading:2(クイックスタート: Node.jsでPDFを圧縮する)*
パッケージをインストールし、PDFを読み込み、`compressSize`を品質値1から100の間で呼び出します。
```javascript {.line-numbers}
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/quickstart.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// 既存のPDFを読み込む
const pdf = await PdfDocument.fromFile("report.pdf");
// 埋め込まれた画像を60%のJPEG品質で圧縮する
await pdf.compressSize(60);
// 結果を保存する
await pdf.saveAs("report-compressed.pdf");
```
<div class="hsg-featured-snippet">
<h3>最小限のワークフロー(5ステップ)</h3>
1. IronPDFをインストールする: `npm install @ironsoftware/ironpdf`
2. `@ironsoftware/ironpdf`からインポートする
3. `PdfDocument.fromFile(path)`を使用してソースファイルをロードする
4. `await pdf.compressSize(quality)`を呼び出します - 品質範囲は1-100です
5. `await pdf.saveAs(outputPath)`を使用して結果を保存します
</div>
## なぜNode.jsアプリケーションにとってPDFファイルサイズが重要なのですか?
PDFサイズは、配信速度とストレージコストに直接影響します。APIエンドポイント経由で送信される20MBのレポートPDFは、モバイル接続で顕著な遅延を追加します。 毎日数千の文書を処理するバッチ処理パイプラインでは、30%のサイズ削減だけでも大幅なストレージ節約に繋がります。
IronPDFの`compressSize`メソッドは、大きなPDFファイルの主要な原因である埋め込み画像を対象としています。 レンダリング中、PDFオブジェクトレベルでテキストとベクトルグラフィックスは十分圧縮されますが、元の解像度で埋め込まれたラスター画像は、一般的なビジネス文書での過剰な重みのほとんどを占めます。 デフォルトから(通常は95-100%)JPEG品質を60-85%に下げることで、最も目に見える品質損失なしに最大のサイズ削減が得られます。
[[t:(品質値が80以上の場合、通常の画面解像度で元のものと見分けが付きません。 60未満の値は、ファイルサイズが主な制約となるアーカイブまたはプレビュー用途に予約してください。)]]
## `compressSize`メソッドはどのように機能しますか?
`compressSize`メソッドは、2つのパラメーターを受け取ります: `scaleImages`(オプション、ブール値)。 `false`の場合、このメソッドは各埋め込みJPEGをターゲット品質で再エンコードします。 `true`である場合、PDFレイアウト内で表示されるサイズに一致するように画像がダウンサンプリングされ、小さなスケールでレンダリングされる画像の解像度が低下します。
```javascript {.line-numbers}
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-with-scaling.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// ソース文書を読み込む
const pdf = await PdfDocument.fromFile("product-catalog.pdf");
// 画像を90%の品質に圧縮し、可視サイズにスケールダウンする
await pdf.compressSize(90, true);
// 最適化された文書を保存する
await pdf.saveAs("product-catalog-optimized.pdf");
```
`scaleImages`引数は、高DPIスキャンや表示サイズに関係なく画像をフル解像度で埋め込むHTMLテンプレートから生成されたPDFに特に効果的です。これを有効にすることで、通常の印刷や画面解像度で視覚的な劣化を伴わずに、ファイルサイズを品質の調整のみよりも縮小することができます。
このメソッドは、そのまま`PdfDocument`オブジェクトを修正します。 元のファイルを保持する必要がある場合、`compressSize`を呼び出す前にドキュメントをクローンするか、別の保存パスを使用してください。
### どの品質設定を使用するべきですか?
適切な品質値は、圧縮後にPDFがどのように使用されるかに依存します:
- **90-100**: ほぼ非圧縮。 ドキュメントをフルズームで印刷または表示する場合に使用します。
- **80-89**: 高品質で明らかに小さいファイル。ほとんどのビジネス文書のデフォルトの出発点。
- **60-79**: 中品質。 画面表示、ウェブ配信、メール添付に適しています。
- **60未満**: 低品質。 プレビュのサムネイル、アーカイブコピー、またはファイルサイズが重要なケースに適しています。
[[i:(品質スケールは特にJPEG画像の再エンコードに適用されます。 PDF内のテキスト、ベクトルグラフィックス、非JPEG画像には品質設定が影響しません。)]]
## Node.jsで圧縮結果を測定するにはどうすればよいですか?
圧縮が期待される削減を達成したか確認するのは、Node.js `fs`モジュールを使用することで簡単です。 `compressSize`を呼び出す前後でファイルサイズを読み取り、その結果がアプリケーションの要件を満たすことを確認するために比率を計算します。
```javascript {.line-numbers}
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/measure-compression.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import { statSync } from "fs";
const inputPath = "annual-report.PDF";
const outputPath = "annual-report-compressed.PDF";
const beforeBytes = statSync(inputPath).size;
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(75);
await pdf.saveAs(outputPath);
const afterBytes = statSync(outputPath).size;
const reduction = (((beforeBytes - afterBytes) / beforeBytes) * 100).toFixed(1);
console.log(`Before: ${(beforeBytes / 1024).toFixed(1)} KB`);
console.log(`After: ${(afterBytes / 1024).toFixed(1)} KB`);
console.log(`Reduced by ${reduction}%`);
```
[Node.js `fs.statSync` API](https://nodejs.org/api/fs.html#fsstatsynspath-options)はバイト数で`Stats`オブジェクトを返します。 本番用パイプラインでは、この比率を文書ごとに記録し、圧縮が期待どおりにサイズを減少させなかった例外(通常はソースで既に圧縮されたスキャンされた文書)を特定できるようにします。
サーバー環境でファイルを処理する前に、`IronPdfGlobalConfig`を構成してください。 エンジン設定の詳細については、[IronPDF Node.js ドキュメント](https://ironpdf.com/nodejs/docs/)を参照してください。)}]
## バッチで複数のPDFを圧縮するにはどうすればよいですか?
本番アプリケーションは、通常、単一のドキュメントを孤立して圧縮することはありません。 以下の例は、`compressSize`操作をブロックせずにNode.jsイベントループが処理できるよう、ファイルパスの配列を同時に処理します。
```javascript {.line-numbers}
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/batch-compress.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import path from "path";
async function compressPdfFiles(inputPaths, quality = 80) {
const results = await Promise.all(
inputPaths.map(async (inputPath) => {
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(quality);
const outputPath = inputPath.replace(".pdf", "-compressed.pdf");
await pdf.saveAs(outputPath);
return { input: inputPath, output: outputPath };
})
);
return results;
}
// 使用法
const files = ["report-q1.pdf", "report-q2.pdf", "report-q3.pdf"];
const compressed = await compressPdfFiles(files, 75);
compressed.forEach(r => console.log(`Saved: ${r.output}`));
```
`compressSize`の各呼び出しは独立しており、並列化するのに安全です。非常に大規模なバッチ(数百のファイル)の場合、Node.jsのメモリ制限を超えないように配列をチャンク化することを考慮してください。 [Node.jsのイベントループに関するドキュメント](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick)は、`Promise.all`がどのようにして主スレッドをブロックせずに同時I/Oをスケジュールするかを説明しています。
## 圧縮を他のPDF操作とどのように組み合わせますか?
圧縮は、より大きなドキュメント処理チェーンに自然に組み込まれます。 一般的なパターンは、HTMLからPDFを生成し、透かしや署名を追加し、配布前に圧縮することです:
```javascript {.line-numbers}
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-after-render.js
import { PdfDocument, ChromePdfRenderer } from "@ironsoftware/IronPDF";
// HTMLをPDFにレンダリング
const renderer = new ChromePdfRenderer();
const pdf = await renderer.renderHtmlAsPDF("<h1>Invoice #1042</h1><p>Amount due: $540.00</p>");
// 保存前に圧縮する -- Chromeでレンダリングされたコンテンツから画像の重さを削減
await pdf.compressSize(85);
// 最終文書を保存する
await pdf.saveAs("invoice-1042.pdf");
```
`ChromePdfRenderer`は、背景画像やCSS参照のアセットを完全解像度で埋め込むことが多いです。 レンダリング後に`compressSize`を呼び出すことで、HTML由来のPDFのファイルサイズを一貫して削減します。 IronPDF [HTML to PDF チュートリアル](https://ironpdf.com/nodejs/tutorials/html-to-pdf/) では、レンダラーの設定を詳細に説明しています。
また、[デジタル署名](https://ironpdf.com/nodejs/examples/digitally-sign-a-pdf/)が必要な文書については、圧縮後に署名を適用してください。 署名は文書のバイトストリームをロックし、さらに変更すると署名が無効になります。
複数ページのドキュメントを扱う場合、圧縮前に[`PdfDocument.merge()`](https://ironpdf.com/nodejs/examples/merge-pdfs/)でマージします。 マージした結果を圧縮する方が、個別のファイルを圧縮してから再度マージするよりも効率的です。
[[t:(圧縮前に複数ページの文書をマージします。 マージした結果を圧縮する方が、個別のファイルを圧縮してから再度マージするよりも効率的です。)]]
## Node.jsでのPDF圧縮の次のステップは何ですか?
`compressSize`メソッドは、埋め込まれた画像の重さを減らす最も一般的な圧縮の使い方をカバーしています。 特殊なシナリオに対しては、IronPDF [PDF圧縮の例](https://ironpdf.com/nodejs/examples/pdf-compression/)で、追加の動作コードサンプルを提供しており、[APIリファレンス](https://ironpdf.com/nodejs/object-reference/api/)では利用可能なすべてのメソッドシグネチャを文書化しています。
IronPDFはさらに、[画像をPDFに変換する](https://ironpdf.com/nodejs/examples/image-to-pdf/)、[PDFテキストを読み取る](https://ironpdf.com/nodejs/examples/reading-pdf-text/)、[PDFからページを削除する](https://ironpdf.com/nodejs/examples/remove-page-from-pdf/)のサポートがあります。これらすべての操作は同じ`PdfDocument` APIと統合されています。 Node.jsでのPDF機能の完全な概要については、[IronPDF Node.js ドキュメント](https://ironpdf.com/nodejs/docs/)をご覧ください。
プロジェクトで圧縮をテストする準備はできましたか? [無料トライアルを開始](#trial-license)して、上記の例を透かしなしで実行するか、[ライセンスオプションを表示](#licensing)して本番展開について確認してください。
`PdfDocument`
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
大きなPDFファイルは、ファイル転送を遅くし、ストレージコストを増大させ、ドキュメントが多いアプリケーションでのパフォーマンスを低下させます。 IronPDF for Node.jsは、内蔵画像の品質を低下させ、必要に応じてドキュメント内の表示寸法に画像をリスケールするcompressSizeメソッドを提供します。これにより、ドキュメント構造を変更せずにファイルサイズを50%以上削減することができます。
パッケージをインストールし、PDFを読み込み、compressSizeを品質値1から100の間で呼び出します。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/quickstart.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// 既存のPDFを読み込む
const pdf = await PdfDocument.fromFile("report.pdf");
// 埋め込まれた画像を60%のJPEG品質で圧縮する
await pdf.compressSize(60);
// 結果を保存する
await pdf.saveAs("report-compressed.pdf");
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/quickstart.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// 既存のPDFを読み込む
const pdf = await PdfDocument.fromFile("report.pdf");
// 埋め込まれた画像を60%のJPEG品質で圧縮する
await pdf.compressSize(60);
// 結果を保存する
await pdf.saveAs("report-compressed.pdf");
Text
最小限のワークフロー(5ステップ)
IronPDFをインストールする: npm install @ironsoftware/ironpdf
@ironsoftware/ironpdfからインポートする
PdfDocument.fromFile(path)を使用してソースファイルをロードする
await pdf.compressSize(quality)を呼び出します - 品質範囲は1-100です
await pdf.saveAs(outputPath)を使用して結果を保存します
なぜNode.jsアプリケーションにとってPDFファイルサイズが重要なのですか?
PDFサイズは、配信速度とストレージコストに直接影響します。APIエンドポイント経由で送信される20MBのレポートPDFは、モバイル接続で顕著な遅延を追加します。 毎日数千の文書を処理するバッチ処理パイプラインでは、30%のサイズ削減だけでも大幅なストレージ節約に繋がります。
IronPDFのcompressSizeメソッドは、大きなPDFファイルの主要な原因である埋め込み画像を対象としています。 レンダリング中、PDFオブジェクトレベルでテキストとベクトルグラフィックスは十分圧縮されますが、元の解像度で埋め込まれたラスター画像は、一般的なビジネス文書での過剰な重みのほとんどを占めます。 デフォルトから(通常は95-100%)JPEG品質を60-85%に下げることで、最も目に見える品質損失なしに最大のサイズ削減が得られます。
品質値が80以上の場合、通常の画面解像度で元のものと見分けが付きません。 60未満の値は、ファイルサイズが主な制約となるアーカイブまたはプレビュー用途に予約してください。
compressSizeメソッドはどのように機能しますか?
compressSizeメソッドは、2つのパラメーターを受け取ります: scaleImages(オプション、ブール値)。 falseの場合、このメソッドは各埋め込みJPEGをターゲット品質で再エンコードします。 trueである場合、PDFレイアウト内で表示されるサイズに一致するように画像がダウンサンプリングされ、小さなスケールでレンダリングされる画像の解像度が低下します。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-with-scaling.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// ソース文書を読み込む
const pdf = await PdfDocument.fromFile("product-catalog.pdf");
// 画像を90%の品質に圧縮し、可視サイズにスケールダウンする
await pdf.compressSize(90, true);
// 最適化された文書を保存する
await pdf.saveAs("product-catalog-optimized.pdf");
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-with-scaling.js
import { PdfDocument } from "@ironsoftware/IronPDF";
// ソース文書を読み込む
const pdf = await PdfDocument.fromFile("product-catalog.pdf");
// 画像を90%の品質に圧縮し、可視サイズにスケールダウンする
await pdf.compressSize(90, true);
// 最適化された文書を保存する
await pdf.saveAs("product-catalog-optimized.pdf");
Text
scaleImages引数は、高DPIスキャンや表示サイズに関係なく画像をフル解像度で埋め込むHTMLテンプレートから生成されたPDFに特に効果的です。これを有効にすることで、通常の印刷や画面解像度で視覚的な劣化を伴わずに、ファイルサイズを品質の調整のみよりも縮小することができます。
このメソッドは、そのままPdfDocumentオブジェクトを修正します。 元のファイルを保持する必要がある場合、compressSizeを呼び出す前にドキュメントをクローンするか、別の保存パスを使用してください。
どの品質設定を使用するべきですか?
適切な品質値は、圧縮後にPDFがどのように使用されるかに依存します:
90-100 : ほぼ非圧縮。 ドキュメントをフルズームで印刷または表示する場合に使用します。
80-89 : 高品質で明らかに小さいファイル。ほとんどのビジネス文書のデフォルトの出発点。
60-79 : 中品質。 画面表示、ウェブ配信、メール添付に適しています。
60未満 : 低品質。 プレビュのサムネイル、アーカイブコピー、またはファイルサイズが重要なケースに適しています。
品質スケールは特にJPEG画像の再エンコードに適用されます。 PDF内のテキスト、ベクトルグラフィックス、非JPEG画像には品質設定が影響しません。
Node.jsで圧縮結果を測定するにはどうすればよいですか?
圧縮が期待される削減を達成したか確認するのは、Node.js fsモジュールを使用することで簡単です。 compressSizeを呼び出す前後でファイルサイズを読み取り、その結果がアプリケーションの要件を満たすことを確認するために比率を計算します。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/measure-compression.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import { statSync } from "fs";
const inputPath = "annual-report.PDF";
const outputPath = "annual-report-compressed.PDF";
const beforeBytes = statSync(inputPath).size;
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(75);
await pdf.saveAs(outputPath);
const afterBytes = statSync(outputPath).size;
const reduction = (((beforeBytes - afterBytes) / beforeBytes) * 100).toFixed(1);
console.log(`Before: ${(beforeBytes / 1024).toFixed(1)} KB`);
console.log(`After: ${(afterBytes / 1024).toFixed(1)} KB`);
console.log(`Reduced by ${reduction}%`);
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/measure-compression.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import { statSync } from "fs";
const inputPath = "annual-report.PDF";
const outputPath = "annual-report-compressed.PDF";
const beforeBytes = statSync(inputPath).size;
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(75);
await pdf.saveAs(outputPath);
const afterBytes = statSync(outputPath).size;
const reduction = (((beforeBytes - afterBytes) / beforeBytes) * 100).toFixed(1);
console.log(`Before: ${(beforeBytes / 1024).toFixed(1)} KB`);
console.log(`After: ${(afterBytes / 1024).toFixed(1)} KB`);
console.log(`Reduced by ${reduction}%`);
Text
Node.js fs.statSync API はバイト数でStatsオブジェクトを返します。 本番用パイプラインでは、この比率を文書ごとに記録し、圧縮が期待どおりにサイズを減少させなかった例外(通常はソースで既に圧縮されたスキャンされた文書)を特定できるようにします。
サーバー環境でファイルを処理する前に、IronPdfGlobalConfigを構成してください。 エンジン設定の詳細については、IronPDF Node.js ドキュメント を参照してください。)}]
バッチで複数のPDFを圧縮するにはどうすればよいですか?
本番アプリケーションは、通常、単一のドキュメントを孤立して圧縮することはありません。 以下の例は、compressSize操作をブロックせずにNode.jsイベントループが処理できるよう、ファイルパスの配列を同時に処理します。
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/batch-compress.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import path from "path";
async function compressPdfFiles(inputPaths, quality = 80) {
const results = await Promise.all(
inputPaths.map(async (inputPath) => {
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(quality);
const outputPath = inputPath.replace(".pdf", "-compressed.pdf");
await pdf.saveAs(outputPath);
return { input: inputPath, output: outputPath };
})
);
return results;
}
// 使用法
const files = ["report-q1.pdf", "report-q2.pdf", "report-q3.pdf"];
const compressed = await compressPdfFiles(files, 75);
compressed.forEach(r => console.log(`Saved: ${r.output}`));
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/batch-compress.js
import { PdfDocument } from "@ironsoftware/IronPDF";
import path from "path";
async function compressPdfFiles(inputPaths, quality = 80) {
const results = await Promise.all(
inputPaths.map(async (inputPath) => {
const pdf = await PdfDocument.fromFile(inputPath);
await pdf.compressSize(quality);
const outputPath = inputPath.replace(".pdf", "-compressed.pdf");
await pdf.saveAs(outputPath);
return { input: inputPath, output: outputPath };
})
);
return results;
}
// 使用法
const files = ["report-q1.pdf", "report-q2.pdf", "report-q3.pdf"];
const compressed = await compressPdfFiles(files, 75);
compressed.forEach(r => console.log(`Saved: ${r.output}`));
Text
compressSizeの各呼び出しは独立しており、並列化するのに安全です。非常に大規模なバッチ(数百のファイル)の場合、Node.jsのメモリ制限を超えないように配列をチャンク化することを考慮してください。 Node.jsのイベントループに関するドキュメント は、Promise.allがどのようにして主スレッドをブロックせずに同時I/Oをスケジュールするかを説明しています。
圧縮を他のPDF操作とどのように組み合わせますか?
圧縮は、より大きなドキュメント処理チェーンに自然に組み込まれます。 一般的なパターンは、HTMLからPDFを生成し、透かしや署名を追加し、配布前に圧縮することです:
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-after-render.js
import { PdfDocument, ChromePdfRenderer } from "@ironsoftware/IronPDF";
// HTMLをPDFにレンダリング
const renderer = new ChromePdfRenderer();
const pdf = await renderer.renderHtmlAsPDF("<h1>Invoice #1042</h1><p>Amount due: $540.00</p>");
// 保存前に圧縮する -- Chromeでレンダリングされたコンテンツから画像の重さを削減
await pdf.compressSize(85);
// 最終文書を保存する
await pdf.saveAs("invoice-1042.pdf");
//:path=/static-assets/pdf/content-code-examples/how-to/nodejs-compress-pdf/compress-after-render.js
import { PdfDocument, ChromePdfRenderer } from "@ironsoftware/IronPDF";
// HTMLをPDFにレンダリング
const renderer = new ChromePdfRenderer();
const pdf = await renderer.renderHtmlAsPDF("<h1>Invoice #1042</h1><p>Amount due: $540.00</p>");
// 保存前に圧縮する -- Chromeでレンダリングされたコンテンツから画像の重さを削減
await pdf.compressSize(85);
// 最終文書を保存する
await pdf.saveAs("invoice-1042.pdf");
Text
ChromePdfRendererは、背景画像やCSS参照のアセットを完全解像度で埋め込むことが多いです。 レンダリング後にcompressSizeを呼び出すことで、HTML由来のPDFのファイルサイズを一貫して削減します。 IronPDF HTML to PDF チュートリアル では、レンダラーの設定を詳細に説明しています。
また、デジタル署名 が必要な文書については、圧縮後に署名を適用してください。 署名は文書のバイトストリームをロックし、さらに変更すると署名が無効になります。
複数ページのドキュメントを扱う場合、圧縮前にPdfDocument.merge() でマージします。 マージした結果を圧縮する方が、個別のファイルを圧縮してから再度マージするよりも効率的です。
圧縮前に複数ページの文書をマージします。 マージした結果を圧縮する方が、個別のファイルを圧縮してから再度マージするよりも効率的です。
Node.jsでのPDF圧縮の次のステップは何ですか?
compressSizeメソッドは、埋め込まれた画像の重さを減らす最も一般的な圧縮の使い方をカバーしています。 特殊なシナリオに対しては、IronPDF PDF圧縮の例 で、追加の動作コードサンプルを提供しており、APIリファレンス では利用可能なすべてのメソッドシグネチャを文書化しています。
IronPDFはさらに、画像をPDFに変換する 、PDFテキストを読み取る 、PDFからページを削除する のサポートがあります。これらすべての操作は同じPdfDocument APIと統合されています。 Node.jsでのPDF機能の完全な概要については、IronPDF Node.js ドキュメント をご覧ください。
プロジェクトで圧縮をテストする準備はできましたか? 無料トライアルを開始 して、上記の例を透かしなしで実行するか、ライセンスオプションを表示 して本番展開について確認してください。
PdfDocument
よくある質問 PdfDocument.fromFile(path)を使用してPDFをロードし、品質値1から100の間でawait pdf.compressSize(quality)を呼び出し、await pdf.saveAs(outputPath)で結果を保存します。最初にnpm install @ironsoftware/ironpdfを使用してパッケージをインストールします。
品質パラメーター(整数1-100)は、埋め込まれたラスター画像のJPEG再エンコードレベルを制御します。80-89の値は、高品質でサイズが目立って小さくなる出力を生成し、ほとんどのビジネス文書の推奨開始点です。60未満の値は、ファイルサイズが主な制約となるアーカイブまたはプレビュー用途に適しています。
オプションである2番目のパラメーターscaleImages(boolean、デフォルトfalse)は、PDFレイアウトにおける埋め込まれた画像をその可視サイズにダウンサンプルします。これをtrueに設定すると、フル解像度で画像を埋め込む高DPIスキャンまたはHTMLテンプレートから生成されたPDFに効果的です。
削減はソースPDFのコンテンツによります。多くの高解像度ラスター画像を含むドキュメントは50%以上の削減が見込めます。主にテキストおよびベクターグラフィックスを含むPDFは最小限の削減となります。compressSizeはJPEG画像再エンコードを対象にしているためです。
圧縮前と後のバイト単位のファイルサイズを読み取るにはfs.statSync(path).sizeを使用します。比率を((before - after) / before) * 100として計算し、削減率を取得します。
The `scaleImages` parameter is useful for PDFs created from high-DPI scans or HTML content, as it downscales images to their visible size, further reducing file size without compromising quality.
PDF compression can be measured using the Node.js `fs` module to compare file sizes before and after calling `compressSize`, calculating the percentage reduction.
IronPDF can compress images embedded in PDFs generated from HTML using the `ChromePdfRenderer`, reducing file size by optimizing embedded images.
Digital signatures should be applied after compressing a PDF, as any modifications following signing would invalidate the signature.
IronPDF offers a detailed PDF compression example and an API reference documenting method signatures to help developers optimize PDF files effectively.
テクニカルライター
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
...
詳しく読む