LoginSignup
0
0

PDFSharpを用いたPDF操作の応用方法

Posted at

はじめに

PDFSharpは.NETライブラリの一つで、PDFの生成や編集を容易に行うことができます。
今回はより応用的な使用方法を紹介します。

目次

  1. PDFのページを結合する方法
  2. 既存のPDFにテキストを追加する方法
  3. PDFのページを回転させる方法

1. PDFのページを結合する方法

PDFSharpを使用して、複数のPDFドキュメントを一つのファイルに結合することができます。
以下に具体的なコード例を示します。

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

public void CombinePdf(string outputFilePath, params string[] inputFilePaths)
{
    // 出力するPDFドキュメントを作成
    using (PdfDocument outputDocument = new PdfDocument())
    {
        // 各入力ファイルを順番に処理
        foreach (string file in inputFilePaths)
        {
            // 入力ファイルを読み込み
            using (PdfDocument inputDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import))
            {
                // 全ページを出力ドキュメントに追加
                foreach (PdfPage page in inputDocument.Pages)
                {
                    outputDocument.AddPage(page);
                }
            }
        }

        // 結合したPDFを保存
        outputDocument.Save(outputFilePath);
    }
}

このコードでは、inputFilePathsに指定された複数のPDFファイルを読み込み、それらの全ページをoutputFilePathに指定された新しいPDFファイルに結合しています。

2. 既存のPDFにテキストを追加する方法

次に、既存のPDFにテキストを追加する方法について説明します。
この方法は、例えば既存のPDF文書に注釈をつける際に便利です。

using PdfSharp.Pdf;
using PdfSharp.Drawing;

public void AddTextToPdf(string filePath, string text, XRect position)
{
    // PDFファイルを編集モードで開く
    using (PdfDocument document = PdfReader.Open(filePath, PdfDocumentOpenMode.Modify))
    {
        // 最初のページに描画するためのグラフィックスオブジェクトを作成
        XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]);
        // 描画に使用するフォントを定義
        XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);

        // テキストを指定された位置に描画
        gfx.DrawString(text, font, XBrushes.Black, position, XStringFormats.Center);

        // 変更を保存
        document.Save(filePath);
    }
}

このコードは、指定されたPDFの最初のページにテキストを追加します。
positionはテキストを配置する位置を指定します。

3. PDFのページを回転させる方法

最後に、PDFの特定のページを回転させる方法を紹介します。

using PdfSharp.Pdf;

public void RotatePdfPage(string filePath, int pageIndex, int angle)
{
    // PDFファイルを編集モードで開く
    using (PdfDocument document = PdfReader.Open(filePath, PdfDocumentOpenMode.Modify))
    {
        // 回転させたいページを取得
        PdfPage page = document.Pages[pageIndex];
        // ページを指定した角度だけ回転
        page.Rotate = (page.Rotate + angle) % 360;

        // 変更を保存
        document.Save(filePath);
    }
}

このコードは、指定されたPDFの特定のページを回転させます。
pageIndexは回転させたいページのインデックスを指定し、angleは回転角度を指定します。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0