IronPDFでC#を使ってPDFをリニアライズする方法
リニアライズされたPDFは、ダウンロード中に最初のページが即座に表示されるため、大きな文書のユーザーエクスペリエンスが劇的に向上します。 IronPDFは、C#でこれらを作成・検証するためのシンプルなメソッドを提供し、Web上での高速表示に最適化されたドキュメントを作成します。
線形化されたPDFは、"高速Webビュー"または"Web最適化PDF"とも呼ばれ、インターネットストリーミング用に構造的に再編成されています。 これにより、互換性のあるビューアがドキュメントの最初のページを、ファイル全体がダウンロードされる前にほぼ瞬時に表示できます。
ミッションクリティカルまたは時間に敏感なアプリケーションでは、この機能は特に有用です。 特に遅いまたはモバイルネットワーク上で、大きなドキュメントの読み込み時間を排除し、ユーザーがすぐにコンテンツと対話できるようにします。 これにより、迅速な意思決定が可能になり、プロの環境での生産性が向上します。 IronPDFのパフォーマンス最適化機能と組み合わせることで、卓越した閲覧体験を提供します。
このハウツー記事では、IronPDFが開発者に提供する、リニアライズされたPDFとしてドキュメントをエクスポートするオプションを探ります。
クイックスタート: PDF を線形化して Web 表示を高速化するIronPDFを使って、PDFを簡単に線形化する方法を始めましょう。 この簡単なコード例は、IronPDFのLinearizePdfメソッドを使用して、Webブラウザでの読み込みを高速化するためにPDFを最適化する方法を示しています。 ページをロードに合わせて表示できるようにすることで、全体の読み込みを待つのではなく、ユーザーエクスペリエンスを向上させます。 以下の手順に従って、PDFを合理化し、オンライン共有のためにより効率的にします。
-
1Install IronPDF with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
var pdf = IronPdf.PdfDocument.FromFile("input.pdf"); pdf.SaveAsLinearized(pdf.BinaryData, "linearized.pdf");C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- NuGetからIronPDF C#ライブラリをダウンロードする。
- PDFレンダラーをインスタンス化し、HTML文字列を渡します。
PdfDocumentでHTML文字列をレンダリングRenderHtmlAsPdfでPDFをリニアライズされたPDFとして保存SaveAsLinearizedでPDFがリニアライズされているかどうかを確認
PDFをリニアライズして保存するには?
IronPDFでドキュメントを線形化PDFとして保存するのは、迅速で簡単なプロセスです。 始める前に、NuGetもしくは他のインストール方法でIronPDFをインストールしていることを確認してください。
この例では、RenderHtmlAsPdfを使用して、HTML文字列をPDFにレンダリングします。 より複雑なHTML文書については、IronPDFのHTMLからPDFへの変換機能を検討するとよいでしょう。 その後、SaveAsLinearizedインスタンスメソッドを使用して線形化されたPDFとして保存し、出力ファイルパスを文字列の引数として渡します。
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>");
// Get the PDF binary data
var pdfBytes = pdf.BinaryData;
// Save the PDF binary data as a linearized PDF file
PdfDocument.SaveAsLinearized(pdfBytes, "linearize-from-bytes.pdf");Imports IronPdf
' Instantiate Renderer
Dim renderer As New ChromePdfRenderer()
' Create a PDF from an HTML string using VB.NET
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Pdf Bytes</h1>")
' Get the PDF binary data
Dim pdfBytes = pdf.BinaryData
' Save the PDF binary data as a linearized PDF file
PdfDocument.SaveAsLinearized(pdfBytes, "linearize-from-bytes.pdf")このプロセスにより、PDFの内部形式が再構成され、重要な情報がファイルの先頭に配置されるため、プログレッシブダウンロードとレンダリングが可能になります。 これは、Webアプリケーションを通じてPDFを提供する際に特に有益です。
出力はどのように見えますか?
PDFバイトをリニアライズして保存するには?
IronPDFでは、PdfDocumentオブジェクトを直接保存することに加えて、PDFバイト配列を線形化されたPDFに変換することもできます。 この柔軟性は、データベースに保存されたPDFを扱うときや、メモリ集約型のアプリケーションでPDFを処理するときに特に役立ちます。 メモリ内でPDFを扱う方法については、メモリストリームからPDFをロードするガイドをご覧ください。
この例では、HTML文字列をbyte[]入力、出力パス、およびオプションのパスワードを受け取ります。
出力はどのように見えますか?
これはコードによって生成されたファイルです:
どのように MemoryStream をリニアライズとして保存しますか?
SaveAsLinearizedオーバーロードは、指定された出力パスのファイルに線形化された出力を書き込みます。 これは、ソースPDFがすでにストリーム(データベース、ネットワーク、またはメモリ内バッファからのもの)として存在し、その線形化された結果をディスクに永続化したい場合に役立ちます。
この例では、MemoryStreamに書き込み、ストリームを線形化されたPDFファイルとして保存して、この機能を実証します。
ディスクへの書き込みを完全に回避する必要がある場合(HIPAA、PCI-DSS、サンドボックス化されたアプリ、または読み取り専用ファイルシステムを持つクラウド関数など)、次のセクションのインメモリ方式を参照してください。
これはコードによって生成されたファイルです:
メモリ内での完全な線形化を行うにはどうすればよいですか?
ストレージへの書き込みが制限または望ましくないサンドボックス環境、クラウド関数、またはコンプライアンス重視のワークフロー(HIPAA、PCI-DSS)の場合、IronPDFは線形化されたPDFを直接返すLinearizePdfToStreamメソッドを提供します。これには一時ファイルやディスクI/Oはありません。
これらのメソッドは、Stream入力を受け付ける静的メソッドとして利用可能です。
バイナリ形式の出力を取得
HTTP応答、データベースのLinearizePdfToBytesを使用してください。
using IronPdf;
// Instance method: linearize the current document, get bytes back
var pdf = PdfDocument.FromFile("input.pdf");
byte[] linearizedBytes = pdf.LinearizePdfToBytes();
// Static method: linearize from a byte array without instantiating PdfDocument
byte[] inputBytes = File.ReadAllBytes("input.pdf");
byte[] result = PdfDocument.LinearizePdfToBytes(inputBytes);
// Password-protected PDFs
byte[] decrypted = PdfDocument.LinearizePdfToBytes(encryptedBytes, password: "secret");Imports IronPdf
' Instance method: linearize the current document, get bytes back
Dim pdf = PdfDocument.FromFile("input.pdf")
Dim linearizedBytes As Byte() = pdf.LinearizePdfToBytes()
' Static method: linearize from a byte array without instantiating PdfDocument
Dim inputBytes As Byte() = File.ReadAllBytes("input.pdf")
Dim result As Byte() = PdfDocument.LinearizePdfToBytes(inputBytes)
' Password-protected PDFs
Dim decrypted As Byte() = PdfDocument.LinearizePdfToBytes(encryptedBytes, password:="secret")線形化された出力をストリームとして取得する
ファイル全体をメモリにバッファせずに他のストリームに出力をパイプする場合(クラウドブロブアップロード、HTTP応答本文、ネットワークソケット)、LinearizePdfToStreamを使用してください。
// Instance method: return a Stream
Stream linearizedStream = pdf.LinearizePdfToStream();
// Static method: linearize from a stream
using var inputStream = File.OpenRead("input.pdf");
Stream resultStream = PdfDocument.LinearizePdfToStream(inputStream);Imports System.IO
' Instance method: return a Stream
Dim linearizedStream As Stream = pdf.LinearizePdfToStream()
' Static method: linearize from a stream
Using inputStream As FileStream = File.OpenRead("input.pdf")
Dim resultStream As Stream = PdfDocument.LinearizePdfToStream(inputStream)
End Using線形化戦略の制御
6つのすべてのメソッドは、オプションのLinearizationModeパラメータを受け取ります。
| モード | 動作 | 使用すべき場面 |
|---|---|---|
Automatic(デフォルト) | まずファイルベースの方法を試行し、ディスクアクセスが制限されている場合はメモリ内処理に切り替えます | 推奨されるデフォルト設定; ほとんどの環境で動作します |
InMemory | 線形化処理をすべてメモリ内で行い、ディスクI/Oをゼロにします | HIPAA / PCI-DSS ワークフロー、サンドボックス化されたアプリ、読み取り専用ファイルシステム、クラウドファンクション |
FileBased | システムの一時ディレクトリにある一時ファイルを使用します | 一時ファイルの動作を明示的に希望し、書き込み権限がある場合 |
using IronPdf;
// Force in-memory linearization (no disk I/O at all)
byte[] linearized = pdf.LinearizePdfToBytes(LinearizationMode.InMemory);Imports IronPdf
' Force in-memory linearization (no disk I/O at all)
Dim linearized As Byte() = pdf.LinearizePdfToBytes(LinearizationMode.InMemory)ArgumentExceptionがスローされます。 入力ストリームがnullの場合、ArgumentNullExceptionがスローされます。リニアライズされたPDFをHTTPレスポンスとしてストリーミングするにはどうすればよいですか?
ASP.NETのLinearizePdfToStreamを組み合わせることで、一時ファイルを書かずにWeb最適化されたPDFをブラウザに直接提供できます。
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
public IActionResult DownloadReport()
{
var pdf = PdfDocument.FromFile("quarterly-report.pdf");
Stream linearized = pdf.LinearizePdfToStream(LinearizationMode.InMemory);
return new FileStreamResult(linearized, "application/pdf")
{
FileDownloadName = "quarterly-report.pdf"
};
}
}Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Public Class ReportController
Inherits Controller
Public Function DownloadReport() As IActionResult
Dim pdf = PdfDocument.FromFile("quarterly-report.pdf")
Dim linearized As Stream = pdf.LinearizePdfToStream(LinearizationMode.InMemory)
Return New FileStreamResult(linearized, "application/pdf") With {
.FileDownloadName = "quarterly-report.pdf"
}
End Function
End Classブラウザは線形化されたPDFを受信し、最初のページを表示し始めると同時に残りのページがストリーミングで配信されます。この際、中間ファイルがサーバーのディスクに保存されることは一切ありません。
PDFがリニアライズされているかどうかを確認するにはどうすればよいですか?
Adobe AcrobatなどのPDFビューアでドキュメントプロパティをチェックしてPDFが線形化されているか確認することに加えて、IronPDFはIsLinearizedメソッドを使ったプログラムによる方法も提供します。 ファイルパスを指定する文字列パラメータを受け取り、PDFが暗号化されている場合は、パスワードを指定するオプションの2番目の文字列パラメータを受け取ります。 この検証機能は、品質保証に不可欠であり、自動テストワークフローに統合することができます。
この例では、上記の3つの例からの出力ファイルを使用して、それらが線形化されているかどうかをテストし、メソッドの動作を紹介するために、4番目の非線形化されたPDFを含めます。 より高度なPDF操作や検証技術については、IronPDFの包括的な機能セットをご覧ください。
結果はどうなりましたか?
ご覧のとおり、最初の3つの例はIsLinearizedを返します。
IsLinearizedを介して保存されたファイルで機能します。 ストレージに書き込まずにバイトまたはストリームとして線形化された出力を生成するには、上記のLinearizePdfToStreamメソッドを使用してください。リニアライズされたPDFのベストプラクティス
リニアライズされたPDFを扱う際には、以下のベストプラクティスを考慮してください:
1.ファイルサイズの考慮:リニアライゼーションは、再構築されたフォーマットにより、ファイルサイズをわずかに増加させる可能性があります。 IronPDFの圧縮機能を使って、必要に応じてファイルサイズを最適化してください。
2.ウェブ展開:リニアライズされたPDFはウェブアプリケーションに最適です。 リニアライゼーションの利点を最大化するために、バイトレンジリクエストをサポートするようにWebサーバーを設定します。
3.パフォーマンステスト:リニアライズされたPDFは必ずターゲット環境でテストしてください。 パフォーマンスの向上は、低速接続の大容量ファイルで最も顕著です。
4.互換性:最近のほとんどのPDFビューアはリニアライズされたPDFをサポートしていますが、ユーザーの好みのビューアとの互換性を確保してください。
その他の最適化戦略や高度なPDF処理技術については、IronPDFのレンダリングオプションのドキュメントを参照してください。
よくある質問
リニアライズPDFとは何ですか?
リニアライズされたPDFは'Fast Web View'または'Web-optimized PDF'とも呼ばれ、インターネットストリーミングのために構造的に再編成されます。IronPDFのリニアライズ機能により、互換性のあるビューアーは最初のページをほぼ即座に表示し、残りのページをダウンロードすることができ、特に低速またはモバイルネットワーク上で、大きなドキュメントのユーザーエクスペリエンスを劇的に改善します。
C# で線形化 PDF を作成す る 方法は?
IronPDFを使えば、SaveAsLinearizedメソッドを使って簡単にリニアライズされたPDFを作成することができます。PDFドキュメントをロードまたは作成し、pdf.SaveAsLinearized(pdf.BinaryData, 'output.pdf')を呼び出すだけで、高速なWeb表示用に最適化された線形化PDFとして保存できます。
既存のPDFをリニアライズ形式に変換できますか?
はい、IronPDFは既存のPDFをリニアライズされたフォーマットに変換することができます。PdfDocument.FromFile('input.pdf')を使ってPDFを読み込み、SaveAsLinearizedメソッドを使ってリニアライズされたPDFとして保存することで、ウェブパフォーマンスを向上させることができます。
PDFがすでにリニアライズされているかどうかは、どのように確認できますか?
IronPDFはPDFがリニアライズされているかどうかをチェックするIsLinearizedプロパティを提供します。PDFドキュメントを読み込み、IsLinearizedブール型プロパティをチェックするだけで、ドキュメントがすでに高速なウェブ表示用に最適化されているかどうかを判断できます。
WebアプリケーションのためにPDFをリニアライズする主な利点は何ですか?
IronPDFでPDFをリニアライズすることで、最初のページが即座に表示され、大きなドキュメントの読み込みにかかるイライラが解消され、プロフェッショナルな環境での迅速な意思決定が可能になり、特にミッションクリティカルなアプリケーションや時間に制約のあるアプリケーションでのユーザーエクスペリエンスが大幅に向上します。
How can I verify if a PDF is linearized using IronPDF?
IronPDF offers the `IsLinearized` method to programmatically check if a PDF is linearized. This can be integrated into automated testing workflows for quality assurance.
What are the benefits of using IronPDF's `LinearizationMode`?
The `LinearizationMode` in IronPDF allows you to control how linearization is performed, offering options like `Automatic`, `InMemory`, and `FileBased`. These modes provide flexibility depending on the environment and requirements.
What are best practices for using linearized PDFs?
Best practices for linearized PDFs include considering file size, using web deployment strategies that support byte-range requests, performing performance testing in target environments, and ensuring viewer compatibility.
Can IronPDF linearize a PDF directly from a stream?
Yes, IronPDF can linearize a PDF directly from a stream using the `LinearizePdfToStream` method. This is useful for cloud uploads, network sockets, or HTTP response bodies.
How does linearization impact PDF file size?
Linearization may slightly increase PDF file size due to its restructured format. To manage file size, consider using IronPDF's compression features to optimize your documents.
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。