移行ガイド C#でRawPrintからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る RawPrintからIronPdfに移行することで、ドキュメントのワークフローが低レベルのプリンタバイト送信から包括的なPDF作成・印刷ソリューションに変わります。 このガイドは、手作業によるプリンタハンドル管理の代わりに、高レベルのAPIを使用してPDFを作成、操作、印刷できるようにする完全な移行パスを、ステップバイステップで提供します。 なぜRawPrintからIronPDFへ移行するのか RawPrintを理解する RawPrintは生データを直接プリンターに送信するための実装の集まりです。 従来のプリンタドライバをバイパスしてプリンタに直接コマンドを送信する必要があるアプリケーションには不可欠です。 この機能は、ZPL(Zebra Programming Language)やEPL(Eltron Programming Language)を使用するラベル作成ツールなど、特殊なプリンタを使用するシナリオで特に役立ちます。 RawPrintの強みの一つは、データストリームを直接プリンターに送るというシンプルさです。 Windows特有の環境をターゲットとし、プリンターとの直接通信を必要とする開発者に対し、RawPrintはドライバーやグラフィカル・インターフェースのような中間層をバイパスする効率的な経路を提供します。 しかし、RawPrintはPDFライブラリではありません。 この基本的な制限により、ほとんどの文書生成シナリオでは間違った選択となります。 核心的な問題: PDF が作成できない RawPrintには、最新のドキュメントワークフローに適さない顕著な制限があります: PDF 作成機能なし:RawPrintはデータ転送のみに重点を置いており、PDF の作成、レンダリング、または操作の機能がありません。 2.非常に低レベル:生のバイトを直接処理するため、開発者はプリンターのコマンド言語を深く理解している必要があり、単純なドキュメント印刷タスクにはあまり適していません。 3.プラットフォーム固有:ウィンドウズ印刷スプーラーに依存するため、クロスプラットフォームの適用性が制限されます。 4.ドキュメント処理なし:レンダリング機能のないバイト転送のみ。 5.制限された制御:印刷ジョブの構成オプションは最小限です。 RawPrintとIronPDFの比較 フィーチャー RawPrint IronPDF 機能について 生の印刷データを直接プリンタに送信 包括的なPDFの作成と操作 ユースケース ラベルなどの特殊印刷 一般的な文書管理と作成 プラットフォーム依存性について Windows固有 クロスプラットフォーム 複雑さ 低レベル、プリンターコマンドの知識が必要 ハイレベルでユーザーフレンドリーなAPI PDFの作成。 なし はい HTMLからPDFを作成する。 なし はい URLからPDFを作成する。 なし はい PDFを編集/修正する。 なし はい PDFのマージ/スプリット なし はい 既存のPDFを印刷する。 はい(生バイト) はい(高レベルAPI) プリントコントロール 基本 フルオプション 理想的な対象</li プリンタへの直接アクセスのニーズ ウェブアプリおよびデスクトップアプリにおけるPDF関連タスク 柔軟性 生バイト処理のため制限あり 多機能で広範囲 RawPrintとは対照的に、IronPdfはPDFを包括的に扱うための堅牢で多機能なAPIを提供します。 .NET環境で定評のあるIronPDFは、開発者がプラットフォームを超えてPDFを簡単に作成、編集、変換できるようにします。 2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFはRawPrintでは提供できないクロスプラットフォームの互換性を提供します。 始める前に 前提条件 .NET 環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+ NuGetアクセス: NuGetパッケージをインストールする機能 IronPDFライセンス: ironpdf.comからライセンスキーを取得します。 NuGetパッケージの変更 # Remove RawPrint dotnet remove package RawPrint # Install IronPDF dotnet add package IronPdf # Remove RawPrint dotnet remove package RawPrint # Install IronPDF dotnet add package IronPdf SHELL ライセンス構成 // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Add at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel RawPrintの使い方を検索する # Identify allRawPrintusage grep -r "using RawPrint" --include="*.cs" . grep -r "Printer\|SendBytesToPrinter" --include="*.cs" . # Identify allRawPrintusage grep -r "using RawPrint" --include="*.cs" . grep -r "Printer\|SendBytesToPrinter" --include="*.cs" . SHELL 完全な API リファレンス 名前空間の変更 // Before:RawPrint(Windows interop) using System.Runtime.InteropServices; using System.Drawing.Printing; // After: IronPDF using IronPdf; // Before:RawPrint(Windows interop) using System.Runtime.InteropServices; using System.Drawing.Printing; // After: IronPDF using IronPdf; $vbLabelText $csharpLabel コア API マッピング RawPrint IronPDF ノート Printer.SendBytesToPrinter()。 pdf.Print() ハイレベル印刷 Printer.OpenPrinter()。 該当なし 不要 Printer.ClosePrinter()。 該当なし 自動翻訳 Printer.StartDocPrinter()。 該当なし 自動翻訳 Printer.WritePrinter()。 該当なし 自動翻訳 Printer.EndDocPrinter()。 該当なし 自動翻訳 該当なし ChromePdfRenderer PDF作成 該当なし PdfDocument.Merge()を使用してください。 PDFのマージ 該当なし pdf.ApplyWatermark()</code> 透かしの追加 コード移行の例 例1: HTMLからPDFへの変換 翻訳前(RawPrint): // NuGet: Install-Package System.Drawing.Common using System; using System.Drawing; using System.Drawing.Printing; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public class DOCINFOA { [MarshalAs(UnmanagedType.LPStr)] public string pDocName; [MarshalAs(UnmanagedType.LPStr)] public string pOutputFile; [MarshalAs(UnmanagedType.LPStr)] public string pDataType; } [DllImport("winspool.Drv", EntryPoint = "OpenPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, IntPtr pd); [DllImport("winspool.Drv", EntryPoint = "ClosePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool ClosePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "StartDocPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, [In, MarshalAs(UnmanagedType.LPStruct)] DOCINFOA di); [DllImport("winspool.Drv", EntryPoint = "EndDocPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool EndDocPrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "StartPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool StartPagePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "EndPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool EndPagePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "WritePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwWritten); public static bool SendStringToPrinter(string szPrinterName, string szString) { IntPtr pBytes; Int32 dwCount; dwCount = szString.Length; pBytes = Marshal.StringToCoTaskMemAnsi(szString); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "HTML Document"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pBytes); return true; } return false; } } class Program { static void Main() { string html = "<html><body><h1>Hello World</h1></body></html>"; //RawPrintcannot directly convert HTML to PDF // It sends raw data to printer, no PDF generation capability RawPrinterHelper.SendStringToPrinter("Microsoft Print to PDF", html); } } // NuGet: Install-Package System.Drawing.Common using System; using System.Drawing; using System.Drawing.Printing; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public class DOCINFOA { [MarshalAs(UnmanagedType.LPStr)] public string pDocName; [MarshalAs(UnmanagedType.LPStr)] public string pOutputFile; [MarshalAs(UnmanagedType.LPStr)] public string pDataType; } [DllImport("winspool.Drv", EntryPoint = "OpenPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, IntPtr pd); [DllImport("winspool.Drv", EntryPoint = "ClosePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool ClosePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "StartDocPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, [In, MarshalAs(UnmanagedType.LPStruct)] DOCINFOA di); [DllImport("winspool.Drv", EntryPoint = "EndDocPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool EndDocPrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "StartPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool StartPagePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "EndPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool EndPagePrinter(IntPtr hPrinter); [DllImport("winspool.Drv", EntryPoint = "WritePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] public static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwWritten); public static bool SendStringToPrinter(string szPrinterName, string szString) { IntPtr pBytes; Int32 dwCount; dwCount = szString.Length; pBytes = Marshal.StringToCoTaskMemAnsi(szString); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "HTML Document"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pBytes); return true; } return false; } } class Program { static void Main() { string html = "<html><body><h1>Hello World</h1></body></html>"; //RawPrintcannot directly convert HTML to PDF // It sends raw data to printer, no PDF generation capability RawPrinterHelper.SendStringToPrinter("Microsoft Print to PDF", html); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully"); } } $vbLabelText $csharpLabel この例は、基本的なアーキテクチャの違いを示しています。 RawPrintは、winspool.Drvからの複数のDLLのインポート、手動でのプリンターハンドルの管理(OpenPrinter、StartDocPrinter、WritePrinter、EndDocPrinter、ClosePrinter)、メモリーマーシャリングを含む60行以上のコードを必要とし、それでもPDFを作成することは出来ません。 レンダリング機能はなく、生データをプリンタに送信するだけです。 IronPDFは5行でタスクを達成します: ChromePdfRendererを作成し、RenderHtmlAsPdf()を呼び出し、SaveAs()します。 包括的な例については、HTML to PDF documentationを参照してください。 例2: URLからPDFへの変換 翻訳前(RawPrint): // NuGet: Install-Package System.Drawing.Common using System; using System.Net; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { // ... (same DLL imports as above) ... public static bool SendStringToPrinter(string szPrinterName, string szString) { IntPtr pBytes = Marshal.StringToCoTaskMemAnsi(szString); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "Web Page"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pBytes, szString.Length, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pBytes); return true; } return false; } } class Program { static void Main() { //RawPrintcannot render web pages - only sends raw text/data // This would just print HTML source code, not rendered content using (WebClient client = new WebClient()) { string htmlSource = client.DownloadString("https://example.com"); // This prints raw HTML, not a rendered PDF RawPrinterHelper.SendStringToPrinter("Microsoft Print to PDF", htmlSource); Console.WriteLine("Raw HTML sent to printer (not rendered)"); } } } // NuGet: Install-Package System.Drawing.Common using System; using System.Net; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { // ... (same DLL imports as above) ... public static bool SendStringToPrinter(string szPrinterName, string szString) { IntPtr pBytes = Marshal.StringToCoTaskMemAnsi(szString); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "Web Page"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pBytes, szString.Length, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pBytes); return true; } return false; } } class Program { static void Main() { //RawPrintcannot render web pages - only sends raw text/data // This would just print HTML source code, not rendered content using (WebClient client = new WebClient()) { string htmlSource = client.DownloadString("https://example.com"); // This prints raw HTML, not a rendered PDF RawPrinterHelper.SendStringToPrinter("Microsoft Print to PDF", htmlSource); Console.WriteLine("Raw HTML sent to printer (not rendered)"); } } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); // Render a live website directly to PDF with full CSS, JavaScript, and images var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("webpage.pdf"); Console.WriteLine("Website rendered to PDF successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); // Render a live website directly to PDF with full CSS, JavaScript, and images var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("webpage.pdf"); Console.WriteLine("Website rendered to PDF successfully"); } } $vbLabelText $csharpLabel RawPrintはウェブページをレンダリングすることは出来ません。 RawPrintのアプローチでは、HTMLソースをダウンロードし、直接プリンターに送信するため、レンダリングされたコンテンツではなく、生のHTMLコードが印刷されます。 IronPDFのRenderUrlAsPdf()はCSS、JavaScript、画像を含む完全にレンダリングされたウェブページをキャプチャします。 詳しくは、チュートリアルをご覧ください。 例3:ドキュメントのフォーマット 翻訳前(RawPrint): // NuGet: Install-Package System.Drawing.Common using System; using System.Drawing.Printing; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { // ... (same DLL imports) ... public static bool SendBytesToPrinter(string szPrinterName, byte[] pBytes) { IntPtr pUnmanagedBytes = Marshal.AllocCoTaskMem(pBytes.Length); Marshal.Copy(pBytes, 0, pUnmanagedBytes, pBytes.Length); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "Raw Document"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pUnmanagedBytes, pBytes.Length, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pUnmanagedBytes); return true; } return false; } } class Program { static void Main() { //RawPrintrequires manual PCL/PostScript commands for formatting string pclCommands = "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T"; string text = "Plain text document - limited formatting"; byte[] data = Encoding.ASCII.GetBytes(pclCommands + text); RawPrinterHelper.SendBytesToPrinter("HP LaserJet", data); } } // NuGet: Install-Package System.Drawing.Common using System; using System.Drawing.Printing; using System.Runtime.InteropServices; using System.Text; class RawPrinterHelper { // ... (same DLL imports) ... public static bool SendBytesToPrinter(string szPrinterName, byte[] pBytes) { IntPtr pUnmanagedBytes = Marshal.AllocCoTaskMem(pBytes.Length); Marshal.Copy(pBytes, 0, pUnmanagedBytes, pBytes.Length); IntPtr hPrinter; if (OpenPrinter(szPrinterName, out hPrinter, IntPtr.Zero)) { DOCINFOA di = new DOCINFOA(); di.pDocName = "Raw Document"; di.pDataType = "RAW"; if (StartDocPrinter(hPrinter, 1, di)) { if (StartPagePrinter(hPrinter)) { Int32 dwWritten; WritePrinter(hPrinter, pUnmanagedBytes, pBytes.Length, out dwWritten); EndPagePrinter(hPrinter); } EndDocPrinter(hPrinter); } ClosePrinter(hPrinter); Marshal.FreeCoTaskMem(pUnmanagedBytes); return true; } return false; } } class Program { static void Main() { //RawPrintrequires manual PCL/PostScript commands for formatting string pclCommands = "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T"; string text = "Plain text document - limited formatting"; byte[] data = Encoding.ASCII.GetBytes(pclCommands + text); RawPrinterHelper.SendBytesToPrinter("HP LaserJet", data); } } $vbLabelText $csharpLabel 翻訳後(IronPDF):。 // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = @" <html> <head> <style> body { font-family: Arial; margin: 40px; } h1 { color: #2c3e50; font-size: 24px; } p { line-height: 1.6; color: #34495e; } .highlight { background-color: yellow; font-weight: bold; } </style> </head> <body> <h1>Formatted Document</h1> <p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p> <p>Complex layouts, fonts, colors, and images are fully supported.</p> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("formatted.pdf"); Console.WriteLine("Formatted PDF created successfully"); } } // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); string html = @" <html> <head> <style> body { font-family: Arial; margin: 40px; } h1 { color: #2c3e50; font-size: 24px; } p { line-height: 1.6; color: #34495e; } .highlight { background-color: yellow; font-weight: bold; } </style> </head> <body> <h1>Formatted Document</h1> <p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p> <p>Complex layouts, fonts, colors, and images are fully supported.</p> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("formatted.pdf"); Console.WriteLine("Formatted PDF created successfully"); } } $vbLabelText $csharpLabel RawPrintでは、基本的なフォーマットでさえ、PCL/PostScriptコマンド(" \x1B&l0Ox1B(s0p16.66h8.5v0s0b3T" )が必要です。 開発者は、プリンタのコマンド言語を深く理解している必要があります。 IronPdfは書式設定に標準的なHTMLとCSSを使用します。複雑なレイアウト、フォント、色、画像はプリンタ固有の知識がなくても完全にサポートされます。 機能比較の概要 フィーチャー RawPrint IronPDF PDFの作成。 HTMLからPDFへ なし はい URLからPDFへ なし はい ゼロから作成 なし はい PDF操作 PDFのマージ なし はい PDFの分割 なし はい 透かしの追加 なし はい 既存の編集 なし はい 印刷。 印刷用PDF はい(生) はい(ハイレベル) 印刷ダイアログ なし はい 複数部数 制限的 はい DPIコントロール なし はい デュプレックス なし はい プラットフォーム ウィンドウズ はい はい Linux なし はい macOS なし はい ドッカー なし はい その他 セキュリティ なし はい デジタル署名 なし はい PDF/A なし はい 移行後の新機能 IronPDFに移行することで、RawPrintでは提供できない機能を得ることができます: PDFマージ var pdfs = pdfFiles.Select(f => PdfDocument.FromFile(f)).ToList(); var merged = PdfDocument.Merge(pdfs); merged.SaveAs("complete.pdf"); var pdfs = pdfFiles.Select(f => PdfDocument.FromFile(f)).ToList(); var merged = PdfDocument.Merge(pdfs); merged.SaveAs("complete.pdf"); $vbLabelText $csharpLabel 設定で印刷 var pdf = PdfDocument.FromFile("report.pdf"); pdf.Print(new PrintOptions { PrinterName = "HP LaserJet", NumberOfCopies = 2, DPI = 300, GrayScale = false }); var pdf = PdfDocument.FromFile("report.pdf"); pdf.Print(new PrintOptions { PrinterName = "HP LaserJet", NumberOfCopies = 2, DPI = 300, GrayScale = false }); $vbLabelText $csharpLabel 1つのワークフローで作成と印刷ができます var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(@" <h1>Invoice #12345</h1> <p>Customer: John Doe</p> <p>Amount: $150.00</p> "); // Print directly pdf.Print("HP LaserJet"); // Or save first pdf.SaveAs("invoice.pdf"); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(@" <h1>Invoice #12345</h1> <p>Customer: John Doe</p> <p>Amount: $150.00</p> "); // Print directly pdf.Print("HP LaserJet"); // Or save first pdf.SaveAs("invoice.pdf"); $vbLabelText $csharpLabel 移行チェックリスト 移行前 すべてのRawPrintの使用法 ( SendBytesToPrinter 、 OpenPrinterなど) を識別します。 アプリケーションで使用されるドキュメントプリンタ名 統合できる外部PDF作成コードをメモします ironpdf.comからIronPDFライセンスキーを取得します コードの更新 -RawPrintパッケージを削除します: dotnet remove package RawPrint IronPdf パッケージをインストールします: dotnet add package IronPdf 生の印刷をpdf.Print()に置き換えます 手動ハンドル管理を削除します ( OpenPrinter 、 ClosePrinterなど) PDFの作成と印刷を単一のワークフローに統合 アプリケーションの起動時にライセンスの初期化を追加 テスティング 対象プリンタへのテスト印刷 印刷品質を確認する 複数のコピーをテストする サイレント印刷のテスト 必要に応じてクロスプラットフォーム検証 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でRotativaからIronPDFに移行する方法C#でQuestPDFからIronPDFに移行...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む