IronPDF ハウツー PDFs to Memory PDF to MemoryStream C カーティス・チャウ 更新日:2026年1月10日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English IronPDF の Stream プロパティまたは BinaryData プロパティを使用して C# .NET で PDF を MemoryStream に変換し、Web アプリケーションやデータ処理でファイルシステムにアクセスすることなくインメモリー PDF 操作を可能にします。 ファイルシステムに触れることなく、C# .NETでPDFをMemoryStreamにエクスポートできます。 これは、System.IO .NET名前空間内に存在する MemoryStream オブジェクトを通じて可能になります。 このアプローチは、クラウドベースのアプリケーションを開発するとき、Azure Blob Storageで作業するとき、またはパフォーマンスの最適化のためにPDFをメモリ内で処理する必要があるときに特に役立ちます。 特に、ファイルシステムへのアクセスが制限されている可能性のあるAzureやその他のクラウドプラットフォームにデプロイする場合や、ディスクI/O操作のオーバーヘッドを避けたい場合などです。 IronPdfはストリーム操作のための組み込みメソッドでこのプロセスを簡単にします。 クイックスタート: PDF を MemoryStream に変換する IronPDFのAPIを使ってPDFファイルをMemoryStreamに変換してください。 このガイドは、開発者がPDFをロードし、.NETアプリケーションに統合するためにMemoryStreamにエクスポートすることから始めるのに役立ちます。 この例に従って、C#でPDF処理機能を実装してください。 IronPDF をNuGetパッケージマネージャでインストール PM > Install-Package IronPdf このコード スニペットをコピーして実行します。 using var stream = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello Stream!</h1>").Stream; 実際の環境でテストするためにデプロイする 今日プロジェクトで IronPDF を使い始めましょう無料トライアル Free 30 Day Trial 最小限のワークフロー(5ステップ) MemoryStreamをPDFに変換するIronPDF C#ライブラリをダウンロードする。 既存のPDFを**`PdfDocument`**オブジェクトとして読み込みます。 URLまたはHTML文字列/ファイルから新しいPDFをレンダリングする `Stream`メソッドと**`BinaryData`**プロパティを使用して、PDFをストリームに変換します。 MVCやASP.NETを含むWebへのMemoryStreamの提供 PDFをメモリに保存するにはどうすればよいですか? IronPdf.PdfDocument は、次の 2 つの方法のいずれかでメモリに直接保存できます。 IronPdf.PdfDocument.Streamは PDF を System.IO.MemoryStream としてエクスポートします。 IronPdf.PdfDocument.BinaryData PDF をバイト配列としてエクスポートします (byte[]) StreamとBinaryDataのどちらを使用するかは、特定のユースケースによります。 MemoryStreamは、ストリームベースのAPIを使用する必要がある場合や、他 for .NETストリーム操作との互換性を維持したい場合に最適です。 バイト配列としてのBinaryDataは、PDFデータをデータベースに格納したり、メモリにキャッシュしたり、ネットワーク経由で送信したりする必要があるシナリオに最適です。 :path=/static-assets/pdf/content-code-examples/how-to/pdf-to-memory-stream-to-stream.cs using IronPdf; using System.IO; var renderer = new ChromePdfRenderer(); // Convert the URL into PDF PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/"); // Export PDF as Stream MemoryStream pdfAsStream = pdf.Stream; // Export PDF as Byte Array byte[] pdfAsByte = pdf.BinaryData; $vbLabelText $csharpLabel 既存のPDFの操作 メモリからPDFをロードする必要がある場合、IronPDFはすでにメモリにあるPDFを扱う便利な方法を提供します: using IronPdf; using System.IO; // Load PDF from byte array byte[] pdfBytes = File.ReadAllBytes("existing.pdf"); PdfDocument pdfFromBytes = PdfDocument.FromFile(new MemoryStream(pdfBytes)); // Or directly from a MemoryStream MemoryStream memoryStream = new MemoryStream(pdfBytes); PdfDocument pdfFromStream = PdfDocument.FromFile(memoryStream); // Modify the PDF (add watermark, headers, etc.) // Then export back to memory byte[] modifiedPdfBytes = pdfFromStream.BinaryData; using IronPdf; using System.IO; // Load PDF from byte array byte[] pdfBytes = File.ReadAllBytes("existing.pdf"); PdfDocument pdfFromBytes = PdfDocument.FromFile(new MemoryStream(pdfBytes)); // Or directly from a MemoryStream MemoryStream memoryStream = new MemoryStream(pdfBytes); PdfDocument pdfFromStream = PdfDocument.FromFile(memoryStream); // Modify the PDF (add watermark, headers, etc.) // Then export back to memory byte[] modifiedPdfBytes = pdfFromStream.BinaryData; $vbLabelText $csharpLabel 高度なメモリ ストリーム操作 HTML文字列からPDFを作成するときや、複数の画像をPDFに変換するときなど、より複雑なシナリオでは、すべてをメモリ内に保持しながら複数の操作を組み合わせることができます: using IronPdf; using System.IO; using System.Collections.Generic; // Create multiple PDFs in memory var renderer = new ChromePdfRenderer(); List<MemoryStream> pdfStreams = new List<MemoryStream>(); // Generate multiple PDFs from HTML string[] htmlTemplates = { "<h1>Report 1</h1><p>Content...</p>", "<h1>Report 2</h1><p>Content...</p>" }; foreach (var html in htmlTemplates) { PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdfStreams.Add(pdf.Stream); } // Merge all PDFs in memory PdfDocument mergedPdf = PdfDocument.Merge(pdfStreams.Select(s => PdfDocument.FromFile(s)).ToList()); // Get the final merged PDF as a stream MemoryStream finalStream = mergedPdf.Stream; using IronPdf; using System.IO; using System.Collections.Generic; // Create multiple PDFs in memory var renderer = new ChromePdfRenderer(); List<MemoryStream> pdfStreams = new List<MemoryStream>(); // Generate multiple PDFs from HTML string[] htmlTemplates = { "<h1>Report 1</h1><p>Content...</p>", "<h1>Report 2</h1><p>Content...</p>" }; foreach (var html in htmlTemplates) { PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdfStreams.Add(pdf.Stream); } // Merge all PDFs in memory PdfDocument mergedPdf = PdfDocument.Merge(pdfStreams.Select(s => PdfDocument.FromFile(s)).ToList()); // Get the final merged PDF as a stream MemoryStream finalStream = mergedPdf.Stream; $vbLabelText $csharpLabel メモリから Web に PDF を提供するにはどうすればよいですか? Web 上で PDF を提供またはエクスポートするには、HTML の代わりにバイナリデータとして PDF ファイルを送信する必要があります。 このC#でのPDFドキュメントのエクスポートと保存に関するガイドに、より詳しい情報があります。 Webアプリケーション、特にASP.NET MVC環境で作業するとき、メモリストリームからPDFを提供することは、より良いパフォーマンスとサーバーディスク使用量の削減を含むいくつかの利点を提供します。 ここに、MVC および ASP.NET の簡単な例があります。 MVCでPDFをエクスポートするには? 以下のコードスニペット内のストリームは、IronPDF から取得したバイナリデータです。 レスポンスの MIME タイプは 'application/pdf' で、ファイル名は 'download.pdf' と指定されています。 このアプローチは、最新のMVCアプリケーションとシームレスに動作し、既存のコントローラに統合することができます。 using System.Web.Mvc; using System.IO; public ActionResult ExportPdf() { // Assume pdfAsStream is a MemoryStream containing PDF data MemoryStream pdfAsStream = new MemoryStream(); return new FileStreamResult(pdfAsStream, "application/pdf") { FileDownloadName = "download.pdf" }; } using System.Web.Mvc; using System.IO; public ActionResult ExportPdf() { // Assume pdfAsStream is a MemoryStream containing PDF data MemoryStream pdfAsStream = new MemoryStream(); return new FileStreamResult(pdfAsStream, "application/pdf") { FileDownloadName = "download.pdf" }; } $vbLabelText $csharpLabel Razor Pagesを使用している場合や、カスタムヘッダを実装する必要がある場合など、より高度なシナリオ向けです: using System.Web.Mvc; using IronPdf; public ActionResult GenerateReport(string reportType) { var renderer = new ChromePdfRenderer(); // Configure rendering options for better output renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait; // Generate PDF based on report type string htmlContent = GetReportHtml(reportType); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Add metadata pdf.MetaData.Author = "Your Application"; pdf.MetaData.Title = $"{reportType} Report"; // Return as downloadable file return File(pdf.Stream, "application/pdf", $"{reportType}_Report_{DateTime.Now:yyyyMMdd}.pdf"); } using System.Web.Mvc; using IronPdf; public ActionResult GenerateReport(string reportType) { var renderer = new ChromePdfRenderer(); // Configure rendering options for better output renderer.RenderingOptions.MarginTop = 50; renderer.RenderingOptions.MarginBottom = 50; renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait; // Generate PDF based on report type string htmlContent = GetReportHtml(reportType); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Add metadata pdf.MetaData.Author = "Your Application"; pdf.MetaData.Title = $"{reportType} Report"; // Return as downloadable file return File(pdf.Stream, "application/pdf", $"{reportType}_Report_{DateTime.Now:yyyyMMdd}.pdf"); } $vbLabelText $csharpLabel ASP.NETでPDFをエクスポートするには? 上記の例と同様に、ストリームは IronPDF から取得したバイナリデータです。 その後、レスポンスを設定し、クライアントに送信されるようにフラッシュします。 この方法は、ASP.NET Web Forms アプリケーションや、HTTPレスポンスをより制御する必要がある場合に特に有用です。 using System.IO; using System.Web; public class PdfHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // Assume pdfAsStream is a MemoryStream containing PDF data MemoryStream pdfAsStream = new MemoryStream(); context.Response.Clear(); context.Response.ContentType = "application/octet-stream"; context.Response.OutputStream.Write(pdfAsStream.ToArray(), 0, (int)pdfAsStream.Length); context.Response.Flush(); } public bool IsReusable => false; } using System.IO; using System.Web; public class PdfHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // Assume pdfAsStream is a MemoryStream containing PDF data MemoryStream pdfAsStream = new MemoryStream(); context.Response.Clear(); context.Response.ContentType = "application/octet-stream"; context.Response.OutputStream.Write(pdfAsStream.ToArray(), 0, (int)pdfAsStream.Length); context.Response.Flush(); } public bool IsReusable => false; } $vbLabelText $csharpLabel 最新 for .NET Coreアプリケーションの場合、プロセスはさらに合理化されます: using Microsoft.AspNetCore.Mvc; using IronPdf; using System.Threading.Tasks; [ApiController] [Route("api/[controller]")] public class PdfController : ControllerBase { [HttpGet("generate")] public async Task<IActionResult> GeneratePdf() { var renderer = new ChromePdfRenderer(); // Render HTML to PDF asynchronously for better performance PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Dynamic PDF</h1>"); // Return PDF as file stream return File(pdf.Stream, "application/pdf", "generated.pdf"); } [HttpPost("convert")] public async Task<IActionResult> ConvertHtmlToPdf([FromBody] string htmlContent) { var renderer = new ChromePdfRenderer(); // Apply custom styling and rendering options renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; renderer.RenderingOptions.PrintHtmlBackgrounds = true; PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent); // Stream directly to response without saving to disk return File(pdf.Stream, "application/pdf"); } } using Microsoft.AspNetCore.Mvc; using IronPdf; using System.Threading.Tasks; [ApiController] [Route("api/[controller]")] public class PdfController : ControllerBase { [HttpGet("generate")] public async Task<IActionResult> GeneratePdf() { var renderer = new ChromePdfRenderer(); // Render HTML to PDF asynchronously for better performance PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Dynamic PDF</h1>"); // Return PDF as file stream return File(pdf.Stream, "application/pdf", "generated.pdf"); } [HttpPost("convert")] public async Task<IActionResult> ConvertHtmlToPdf([FromBody] string htmlContent) { var renderer = new ChromePdfRenderer(); // Apply custom styling and rendering options renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; renderer.RenderingOptions.PrintHtmlBackgrounds = true; PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent); // Stream directly to response without saving to disk return File(pdf.Stream, "application/pdf"); } } $vbLabelText $csharpLabel メモリ ストリーム管理のベスト プラクティス WebアプリケーションでPDFメモリストリームを扱う場合は、以下のベストプラクティスを考慮してください: 1.リソースを適切に破棄する: メモリ リークを防ぐために、常に using ステートメントを使用するか、MemoryStream オブジェクトを明示的に破棄します。 2.非同期操作:非同期操作で作業する場合は特に、スケーラビリティを向上させるために、利用可能な場合は非同期メソッドを使用してください。 3.ストリームサイズの考慮:大きなPDFの場合、PDF全体を一度にメモリに読み込むことを避けるために、ストリーミング応答の実装を検討してください。 4.キャッシュ:頻繁にアクセスされるPDFについては、パフォーマンスを向上させるために、メモリ内のバイト配列をキャッシュするか、分散キャッシュを使用することを検討してください。 // Example of proper resource management with caching public class PdfService { private readonly IMemoryCache _cache; private readonly ChromePdfRenderer _renderer; public PdfService(IMemoryCache cache) { _cache = cache; _renderer = new ChromePdfRenderer(); } public async Task<byte[]> GetCachedPdfAsync(string cacheKey, string htmlContent) { // Try to get from cache first if (_cache.TryGetValue(cacheKey, out byte[] cachedPdf)) { return cachedPdf; } // Generate PDF if not in cache using (var pdf = await _renderer.RenderHtmlAsPdfAsync(htmlContent)) { byte[] pdfBytes = pdf.BinaryData; // Cache for 10 minutes _cache.Set(cacheKey, pdfBytes, TimeSpan.FromMinutes(10)); return pdfBytes; } } } // Example of proper resource management with caching public class PdfService { private readonly IMemoryCache _cache; private readonly ChromePdfRenderer _renderer; public PdfService(IMemoryCache cache) { _cache = cache; _renderer = new ChromePdfRenderer(); } public async Task<byte[]> GetCachedPdfAsync(string cacheKey, string htmlContent) { // Try to get from cache first if (_cache.TryGetValue(cacheKey, out byte[] cachedPdf)) { return cachedPdf; } // Generate PDF if not in cache using (var pdf = await _renderer.RenderHtmlAsPdfAsync(htmlContent)) { byte[] pdfBytes = pdf.BinaryData; // Cache for 10 minutes _cache.Set(cacheKey, pdfBytes, TimeSpan.FromMinutes(10)); return pdfBytes; } } } $vbLabelText $csharpLabel これらのパターンに従い、IronPdfのメモリーストリーム機能を利用することで、ファイルシステム操作に依存することなくPDFの生成と配信を行う効率的でスケーラブルなWebアプリケーションを構築することができます。 このアプローチは、AWSのようなクラウドプラットフォームにデプロイする場合や、コンテナ化された環境で作業する場合に特に有益です。 よくある質問 C#でPDFをMemoryStreamに変換するには? IronPDFはPDFをメモリに変換する2つの主な方法を提供します: Streamプロパティを使ってSystem.IO.MemoryStreamとしてエクスポートするか、BinaryDataプロパティを使ってバイト配列としてエクスポートします。PdfDocumentを作成またはロードし、これらのプロパティにアクセスするだけで、ファイルシステムに触れることなくメモリ上のPDFを扱うことができます。 ファイルではなくメモリ上でPDFを扱う利点は何ですか? IronPDFを使用してPDFをメモリ上で扱うことはいくつかの利点を提供します: ディスクI/Oオペレーションを回避することによるパフォーマンスの向上、ファイルシステムへのアクセスが制限されているAzureのようなクラウドプラットフォームとの互換性の向上、機密PDFをディスク上に保存しないことによるセキュリティの向上、ウェブアプリケーションやAPIとのシームレスな統合。 既存のPDFをメモリストリームから読み込むことはできますか? はい、IronPDFではメモリーストリーム入力の場合はPdfDocument.FromStream()メソッドを、バイト配列入力の場合はPdfDocument.FromBytes()を使用してメモリーからPDFをロードすることができます。これにより、ウェブリクエストやデータベース、その他のメモリベースのソースから受け取ったPDFをディスクに保存せずに扱うことができます。 ASP.NETやMVCアプリケーションでメモリからPDFを提供するには? IronPDFはウェブアプリケーションでメモリから直接PDFを提供することを容易にします。StreamプロパティまたはBinaryDataプロパティを使用してPDFコンテンツを取得し、コントローラアクションでFileResultまたはFileContentResultとして返すことができ、ASP.NET CoreまたはMVCアプリケーションでPDFをオンザフライで生成して提供するのに最適です。 メモリ内で直接HTMLをPDFにレンダリングすることは可能ですか? はい、IronPDFのChromePdfRendererはテンポラリファイルを作成せずにHTMLコンテンツを直接MemoryStreamにレンダリングできます。RenderHtmlAsPdf()メソッドを使用し、すぐにStreamプロパティにアクセスしてPDFをMemoryStreamとして取得できますので、クラウドベースのアプリケーションや高性能なシナリオに最適です。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 準備はできましたか? Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース 無料トライアル NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る まだスクロールしていますか? すぐに証拠が欲しいですか? PM > Install-Package IronPdf サンプルを実行するHTML が PDF に変換されるのを確認します。 NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る