C#で印刷前にPDFをフラット化する方法
IronPrint の PrintSettings クラスには、すべてのインタラクティブなフォームフィールド、注釈、および画像レイヤーを印刷時に静的コンテンツに統合する Flatten プロパティがあります。私たちは Flatten = true を PrintSettings オブジェクトに設定し、IronPrint が残りを処理します — 別の PDF 操作ライブラリや中間ファイルの保存は不要です。
このガイドでは、印刷前にPDFを平坦化するタイミングと方法を、同期設定、結合設定、非同期ワークフロー用のC#コードで説明します。
クイックスタート: 印刷前にPDFをフラット化
- NuGetを使用してIronPrintをインストールします:
Install-Package IronPrint - ファイルに
using IronPrint;を追加します PrintSettingsオブジェクトを作成しますFlattenをtrueに設定します- 設定を
Printer.Print()またはPrinter.PrintAsync()に渡します
最小限のワークフロー(5ステップ)
- IronPrint C#印刷ライブラリをインストール
PrintSettingsオブジェクトを作成Flattenをtrueに設定- 設定を
Printer.Print()に渡す - 印刷された出力に平坦化されたフォームフィールドが含まれていることを確認
C#で印刷前にPDFをどうやってフラット化しますか?
Flatten プロパティを true に設定して PrintSettings オブジェクトで印刷時にPDFをフラット化します。 そのオブジェクトをIronPrintの印刷メソッドに渡します。
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-flatten-basic.cs
using IronPrint;
// Configure print settings with flattening enabled
PrintSettings settings = new PrintSettings();
settings.Flatten = true;
// Print the flattened document
Printer.Print("application-form.pdf", settings);
Imports IronPrint
' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True
' Print the flattened document
Printer.Print("application-form.pdf", settings)
まず PrintSettings をインスタンス化し、デフォルト値(Flatten = false を含む)で初期化します。 次に、Flatten を true に設定し、Printer.Print Flatten を指定して、印刷ジョブを送信する前にIronPrintにすべてのインタラクティブ要素をページコンテンツに統合するよう指示します。 [Print()]を呼び出すと、プリンターは完全に静的なバージョンの文書を受け取ります。
平坦化は印刷パイプライン中にメモリ内で行われます。元のPDFファイルはディスク上でインタラクティブなままであるため、エンドユーザーはフォームに記入して再提出することができます。 これは重要な区別です: 我々はソースファイルを恒久的に変更するのではなく、プリンター用に平坦化しています。
Flatten プロパティは IronPrint v2024.7.2 で導入され、以降のすべてのバージョンで利用可能です。
PDFを印刷する前にいつ平坦化するべきですか?
平坦化は、PDFに紙では正しくレンダリングされない可能性のあるインタラクティブな要素が含まれている場合に最も価値があります。 最も一般的なシナリオは次のとおりです:
記入可能なフォームフィールドを持つPDF: テキスト入力、チェックボックス、ラジオボタン、ドロップダウンメニューは、ページコンテンツに埋め込まれるのではなく、PDFビューアーによってレンダリングされます。 一部のプリンタードライバーはこれらのレイヤーを完全にスキップするため、印刷されたページに空白のフィールドが残ります。 平坦化はフィールド値を静的ページ層に強制します。
注釈やオーバーレイを含むPDF: コメント、付箋、スタンプ、マーキング注釈は別の層に存在します。 平坦化はそれらを目に見えるコンテンツに結合し、印刷された出力に表示されるようにします。
異なるレイヤーに埋め込まれた画像を持つPDF: 複数のソースから組み立てられた文書は異なるz層に画像を持つことがあります。 平坦化はすべてを単一の層に複合化し、画像の欠落やずれを防ぎます。
PDFが静的なテキストと画像のみを含むとき — HTMLから生成されたレポートやスキャンされた文書のように — 平坦化は影響を与えません。 その場合、Flatten はデフォルト値の false Flatten = true PaperSize.A4 PaperOrientation.Portrait Dpi PaperMargins のままにして、不要な処理のオーバーヘッドを回避できます。
他の印刷設定と平坦化をどのように組み合わせますか?
PrintSettings クラスは Flatten とともにいくつかのプロパティを公開します。 用紙サイズ、向き、DPI、余白、およびコピー数をフラット化とともに単一の印刷ジョブ内で設定できます。
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-combined-settings.cs
using IronPrint;
// Configure flatten with full print settings
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
PaperMargins = new Margins(10, 10, 10, 10),
Grayscale = false
};
// Print the insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint
' Configure flatten with full print settings
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.PaperMargins = New Margins(10, 10, 10, 10),
.Grayscale = False
}
' Print the insurance claim form
Printer.Print("insurance-claim.pdf", settings)
わかりやすくするために、オブジェクト初期化子構文を使用します。 EnsureFlatten はすべてのフォームデータが印刷されたページに表示されることを保証します。 PaperSize と Orientation はビジネスフォームの標準フォーマットに一致しています。 300での DPI は元々画面解像度でレンダリングされた入力フィールドで鮮明なテキストを生成します。 Margins は Margins コンストラクタを通じてミリメートルで4つの値を受け入れます。
これらのプロパティは互いに競合しません。 IronPrintは最初にフラット化操作を適用し、残りの設定に従って得られた静的文書をフォーマットしてから、ジョブをプリンターに送ります。 印刷設定オプション(プリンター選択 や トレー設定を含む)については完全な設定ガイドをご覧ください。
非同期でフラット化して印刷するにはどうすればいいですか?
メインスレッドをブロックすることが許されないアプリケーション — 例えばWPFやWinFormsアプリ — ではPrinter.PrintAsyncを使用します。 このメソッドは同じ PrintSettings オブジェクトを受け入れ、Task を返します。
:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-async-flatten.cs
using IronPrint;
using System.Threading.Tasks;
public class FormPrinter
{
public async Task PrintFlattenedFormAsync(string pdfPath)
{
// Configure flatten with Letter paper at 300 DPI
PrintSettings settings = new PrintSettings
{
Flatten = true,
PaperSize = PaperSize.Letter,
Dpi = 300
};
// Print asynchronously
await Printer.PrintAsync(pdfPath, settings);
}
}
Imports IronPrint
Imports System.Threading.Tasks
Public Class FormPrinter
Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
' Configure flatten with Letter paper at 300 DPI
Dim settings As New PrintSettings With {
.Flatten = True,
.PaperSize = PaperSize.Letter,
.Dpi = 300
}
' Print asynchronously
Await Printer.PrintAsync(pdfPath, settings)
End Function
End Class
このクラスベースのパターンは印刷ロジックがサービス層にあるときに役立ちます。 米国形式のフォーム用に Flatten = true を PaperSize.Letter と組み合わせて設定します。 await キーワードはIronPrintがフラット化操作を処理し印刷ジョブを送信している間、呼び出しスレッドを解放します。
IronPrintの非同期メソッド — PrintAsync や ShowPrintDialogAsync を含む — はすべて、同期の対応する方法と同様に Flatten 設定を尊重します await PrintSettings.Flatten Flatten = true。 静かに印刷するか印刷ダイアログで印刷するかに関係なく、平坦化動作は一貫性があります。
次のステップは何ですか?
IronPrintの PrintSettings プロパティを使用して印刷前にPDFをフラット化する方法について説明しました。 重要なポイント: 印刷時にインタラクティブなフォームフィールド、注釈、および画像レイヤーを静的コンテンツに統合するために Flatten を設定します — ソースファイルを変更することなく。
これを基にさらに進めるには:
- 利用可能なすべてのプロパティについて印刷設定構成ガイドを参照
- 一般的なパターンについて印刷設定コード例を確認
- プロパティの詳細とデフォルト値についてPrintSettings APIリファレンスを確認
- 最新の機能と改善のためにIronPrintの変更履歴を確認
無料の30日間トライアルを開始して、独自の印刷ワークフローでPDFのフラット化をテストするか、本番使用のためのライセンスオプションを表示してください。
よくある質問
印刷前にPDFをフラット化する目的は何ですか?
PDFをフラット化することは、すべてのフォームフィールド、注釈、画像が単一のレイヤーに統合され、正確なレンダリングと印刷を保証します。
C#でPDFをフラット化するにはどうすればよいですか?
IronPrintライブラリを使用して、C#でPDFをフラット化することができます。PrintSettingsでブール値を設定し、印刷プロセス中にすべての要素が適切にフラット化されるようにします。
なぜフォームフィールドと注釈をフラット化する必要がありますか?
フォームフィールドと注釈は、印刷時に編集可能またはずれたりしないようにするためにフラット化する必要があります。これにより、一貫した出力が保証されます。
PDFが印刷前にフラット化されていないとどうなりますか?
PDFがフラット化されていない場合、フォームフィールドや注釈などのインタラクティブ要素が正しく印刷されない可能性があり、印刷された文書でのエラーや情報の欠落を招くことがあります。
IronPrintはフォームフィールド以外のPDF要素のフラット化をサポートしていますか?
はい、IronPrintは注釈、画像、その他のレイヤー化されたコンテンツを含むさまざまなPDF要素のフラット化をサポートしており、すべてが意図通りに印刷されるようにします。
C#でフラット化のプロセスを自動化することは可能ですか?
もちろんです。IronPrintを使用すると、C#のコードでPrintSettingsを設定することで、PDFのバッチ処理ワークフローを簡素化しながらフラット化のプロセスを自動化できます。
PDFをフラット化することで印刷品質に影響しますか?
PDFをフラット化することで、すべての要素が正確にレンダリングされ整列されることで印刷品質が向上し、印刷プロセス中のエラーの可能性が減少します。
PDFフラット化におけるPrintSettingsのブール値の役割は何ですか?
IronPrintのPrintSettingsのブール値は、PDFのフラット化を可能にする重要なパラメータで、すべてのレイヤーが単一の印刷準備完了フォーマットに統合されることを保証します。
IronPrintはPDFをフラット化するために追加のソフトウェアが必要ですか?
追加のソフトウェアは不要です。IronPrintはスタンドアロンのライブラリで、C#アプリケーション内で直接PDFをフラット化するために必要なすべての機能を提供します。
IronPrintは異なるPDFバージョンとの互換性をどのように保証していますか?
IronPrintはさまざまなPDFバージョンと互換性があるように設計されており、フラット化プロセスが元のドキュメントの整合性とフォーマットを維持することを保証します。

