C#でIronPDFを使ってPDFページを変換する方法|IronPDF

C#と.NETでIronPDFを使ってPDFページを変換する

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFは.NET開発者がページの寸法を変更することなく、コンテンツの拡大縮小や翻訳によってPDFページを変換することを可能にします。 Transformメソッドに、水平/垂直変換と拡大縮小係数のパラメータを指定して、プログラム的にページ・コンテンツの位置やサイズを変更します。

クイックスタート: PDFページを手間なく変換

IronPDFライブラリを使用して.NETでPDFページを簡単に変換する方法を学びます。 数行のコードで、元のページ寸法に影響を与えることなくページコンテンツをスケーリングし移動できます。 このガイドでは、変換を適用してPDF文書をシームレスに強化する方法を示します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    IronPdf.PdfDocument.FromFile("input.pdf")
      .Pages[0].Transform(50,50,0.8,0.8)
      .SaveAs("output-transformed.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


C#でPDFページを変換するには?

Transformメソッドは、コンテンツの移動やサイズ変更を行うことができます。 これは、ページに表示されるコンテンツの外観にのみ影響し、物理的なページの寸法を変更するものではありません。 ページ全体の構造を変更するページの向きや回転とは異なり、トランスフォームはコンテンツの位置だけを調整します。 基本的なPDFドキュメントの例Transformメソッドを試してみましょう。

:path=/static-assets/pdf/content-code-examples/how-to/transform-pdf-pages-transform-pdf.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("basic.pdf");

pdf.Pages[0].Transform(50, 50, 0.8, 0.8);

pdf.SaveAs("transformPage.pdf");
$vbLabelText   $csharpLabel

Transformメソッドは、複数のPDFをマージした後にコンテンツを再配置する必要がある場合や、特定のカスタム用紙サイズ用にドキュメントを準備する場合に特に便利です。 この機能は、正確な文書フォーマットを実現するためのカスタムマージンの設定など、他のレイアウト機能を補完するものです。

Transformメソッドはどのようなパラメータを受け付けますか?

Transformメソッドは、コンテンツの位置とサイズを制御する4つの主要なパラメータを受け入れます:

  • 水平翻訳(TranslateX):コンテンツをページ全体に水平に移動します。 正の値はコンテンツを右に、負の値は左に移動します。 測定単位はPDF標準(通常ポイント、1ポイント=1/72インチ)に従います。
  • 垂直翻訳 (TranslateY):ページコンテンツの垂直方向の動きを制御します。 正の値はコンテンツを下方に移動させ、負の値は上方に移動させます。 これは、ヘッダーやフッターのスペースを確保する必要がある場合に便利です。
  • 水平スケール(ScaleX):コンテンツの幅をリサイズする10進数値。 1.0は元のサイズを維持し、0.5は半分の幅に縮小し、2.0は幅を倍にします。 このパラメータは、縦方向のスケールを合わせて使用する場合に、縦横比に影響を与えることなく、特定の境界内にコンテンツを収めるのに役立ちます。
  • 垂直スケール (ScaleY): ScaleXに似ていますが、高さに影響します。 ScaleXScaleYの値を等しく保つことで、コンテンツの元のアスペクト比を維持します。

以下は、複数の変換を示す高度な例です:

using IronPdf;
using System;

// Load an existing PDF or create a new one
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Apply different transformations to multiple pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
    if (i % 2 == 0)
    {
        // Even pages: Create margin space and reduce size slightly
        pdf.Pages[i].Transform(30, 30, 0.9, 0.9);
    }
    else
    {
        // Odd pages: Center content with larger margins
        pdf.Pages[i].Transform(40, 60, 0.85, 0.85);
    }
}

// Save the transformed document
pdf.SaveAs("invoice_transformed.pdf");

// You can also export to memory stream for web applications
var memoryStream = pdf.Stream;
using IronPdf;
using System;

// Load an existing PDF or create a new one
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Apply different transformations to multiple pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
    if (i % 2 == 0)
    {
        // Even pages: Create margin space and reduce size slightly
        pdf.Pages[i].Transform(30, 30, 0.9, 0.9);
    }
    else
    {
        // Odd pages: Center content with larger margins
        pdf.Pages[i].Transform(40, 60, 0.85, 0.85);
    }
}

// Save the transformed document
pdf.SaveAs("invoice_transformed.pdf");

// You can also export to memory stream for web applications
var memoryStream = pdf.Stream;
$vbLabelText   $csharpLabel

なぜPDFページを変換する必要があるのですか?

PDFのページ変換は、文書処理における数多くの実用的なアプリケーションに役立ちます:

1.印刷用ドキュメントの作成:PDFをProfessionalな印刷用に準備する場合、裁ち落とし領域、綴じ代、または特定のプリンタ要件に対応するために、コンテンツの位置を調整する必要があることがよくあります。 Transformメソッドは、ドキュメントを再作成することなく正確な位置決めを可能にします。

2.フォームフィールドの整列:PDFフォームを作成または編集した後、印刷済みの便箋やテンプレートに合わせるために、セクション全体の位置を変更する必要があるかもしれません。 変換により、すべてのフォーム要素が相対的な位置を維持するようにします。

3.マルチドキュメントのコンパイル:さまざまなソースからのドキュメントを組み合わせる場合、それぞれのマージン設定が異なることがあります。 Transformを使用すると、すべてのページで外観を標準化することができます。

4.レスポンシブ PDF 生成: PDF がユーザーの好みやデバイスの仕様に基づいて生成される動的なアプリケーションでは、Transformにより、異なる画面サイズでの最適な表示を保証するリアルタイム調整が可能になります。

PDF変換の前後で、コンテンツが全ページから再配置されたレイアウトに移動したことを示す

PDF変換のベストプラクティス

PDF変換を実装する際には、以下の最適化戦略を考慮してください:

アスペクト比を守る:意図的な歪みが必要な場合を除き、常に同一のScaleXScaleY値を使用してください。 これにより、テキストと画像のプロフェッショナルな外観が維持されます。

境界条件のテスト: 変換を適用する前に、拡大縮小されたコンテンツがページの境界を超えないことを確認します。 クリッピングを防ぐため、変換後のコンテンツ有効領域を計算します。

バッチ処理の効率:複数のページを変換する場合、大きな文書には並列処理を使用することを検討してください:

using IronPdf;
using System.Linq;
using System.Threading.Tasks;

public async Task TransformLargeDocument(string filePath)
{
    PdfDocument pdf = PdfDocument.FromFile(filePath);

    // Process pages in parallel for better performance
    var tasks = pdf.Pages.Select((page, index) => 
        Task.Run(() => 
        {
            // Apply consistent transformation to all pages
            page.Transform(25, 25, 0.95, 0.95);
        })
    ).ToArray();

    await Task.WhenAll(tasks);

    // Save with optimized settings
    pdf.SaveAs("transformed_optimized.pdf");
}
using IronPdf;
using System.Linq;
using System.Threading.Tasks;

public async Task TransformLargeDocument(string filePath)
{
    PdfDocument pdf = PdfDocument.FromFile(filePath);

    // Process pages in parallel for better performance
    var tasks = pdf.Pages.Select((page, index) => 
        Task.Run(() => 
        {
            // Apply consistent transformation to all pages
            page.Transform(25, 25, 0.95, 0.95);
        })
    ).ToArray();

    await Task.WhenAll(tasks);

    // Save with optimized settings
    pdf.SaveAs("transformed_optimized.pdf");
}
$vbLabelText   $csharpLabel

メモリ管理:大きなドキュメントの場合、サーバー環境でのリソース使用を最適化するために、チャンクで処理し、メモリストリームに保存することを検討してください。

一般的な変換シナリオ

以下に、具体的な使用例を示します:

サムネイルの作成:可読性を維持しながらコンテンツを縮小してPDFページのプレビューを生成します:

// Create thumbnail-sized versions of pages
pdf.Pages[0].Transform(10, 10, 0.3, 0.3);
// Create thumbnail-sized versions of pages
pdf.Pages[0].Transform(10, 10, 0.3, 0.3);
$vbLabelText   $csharpLabel

製本余白の追加:スパイラル製本や3リングバインダーに対応できるよう、コンテンツをシフトします:

// Add 0.5 inch (36 points) binding margin on left
pdf.Pages[0].Transform(36, 0, 1.0, 1.0);
// Add 0.5 inch (36 points) binding margin on left
pdf.Pages[0].Transform(36, 0, 1.0, 1.0);
$vbLabelText   $csharpLabel

サイズの小さいコンテンツを中央に配置する:ページいっぱいにコンテンツがないときは、プロフェッショナルにセンタリングしましょう:

// Calculate centering offset (assuming standard letter size)
double pageWidth = 612; // points
double contentWidth = 500; // estimated content width
double centerOffset = (pageWidth - contentWidth) / 2;

pdf.Pages[0].Transform(centerOffset, 50, 1.0, 1.0);
// Calculate centering offset (assuming standard letter size)
double pageWidth = 612; // points
double contentWidth = 500; // estimated content width
double centerOffset = (pageWidth - contentWidth) / 2;

pdf.Pages[0].Transform(centerOffset, 50, 1.0, 1.0);
$vbLabelText   $csharpLabel

TransformメソッドはIronPDFの包括的な機能セットとシームレスに統合されており、正確なレイアウトで新しいPDFを作成したり、特定の要件を満たすために既存のドキュメントを変更したりすることができます。 自動文書処理システムを構築する場合でも、カスタムレポーティングソリューションを作成する場合でも、PDF変換をマスターすることで、プロフェッショナルで正確にフォーマットされた文書を提供する能力が高まります。

よくある質問

C# で PDF ページをプ ロ グ ラ ム的に変換す る 方法は?

IronPDFのTransformメソッドを使ってPDFページを変換することができます。このメソッドにより、実際のページの寸法を変更することなく、ページの内容を拡大縮小したり変換したりすることができます。水平/垂直変換と拡大縮小のパラメータを指定してTransformメソッドを呼び出すだけです。

Transformメソッドにはどのようなパラメータが必要ですか?

IronPdfのTransformメソッドは4つのパラメータを受け取ります:TranslateX(水平方向の移動)、TranslateY(垂直方向の移動)、ScaleX(水平方向の拡大縮小)、ScaleY(垂直方向の拡大縮小)です。TranslateX(水平移動)、TranslateY(垂直移動)、ScaleX(水平拡大縮小)、ScaleY(垂直拡大縮小)です。

ページサイズを変えずにPDFコンテンツを移動できますか?

はい、IronPDFのTransformメソッドは物理的なページ寸法を変更することなく、特にコンテンツの外観を移動したりリサイズしたりします。これはページ全体の構造を変更するページの回転や向きの変更とは異なります。

PDFコンテンツを元のサイズの80%に縮小するにはどうすればよいですか?

IronPDFを使用してPDFコンテンツを元のサイズの80%に拡大縮小するには、拡大縮小パラメータを0.8に設定したTransformメソッドを使用します。例えばPages[0].Transform(0, 0, 0.8, 0.8)は幅と高さの両方を80%に拡大縮小します。

PDFの特定のページに変換を適用できますか?

はい、IronPDFではPagesコレクションを通して個々のページにアクセスし、変換することができます。最初のページにはPages[0].Transform()のように、必要に応じて各ページに異なる変換を適用することができます。

翻訳値のプラスとマイナスの違いは何ですか?

IronPDFのTransformメソッドでは、TranslateXの正の値はコンテンツを右に動かし、負の値は左に動かします。TranslateYでは、正の値はコンテンツを下方向に、負の値は上方向に移動させます。これにより、どの方向にも正確に配置することができます。

回転の代わりにPDF変換を使用するのはどのような場合ですか?

ページの寸法を維持したままコンテンツの位置やサイズを変更する必要がある場合は、IronPdfの変換メソッドを使用してください。これは、PDFをマージしたり、カスタム用紙サイズ用にドキュメントを準備したり、ページ構造を変更せずにヘッダーやフッターのスペースを作成したりする場合に最適です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース