見出し画像

C#:PDFファイルのパスワードを自動で解除する方法

概要

本記事では、C#を使用してPDFファイルのパスワードを自動的に解除する方法を紹介します。

事前にパスワードを知っていることが前提であり、PDFファイルのパスワードをアプリケーションで推測して解除する方法ではありません

対象

  • 同一パスワードの複数PDFファイルを一気に解除したい場合

  • DBなどでPDFファイルとパスワードの関連付けができている場合

動作

  • パスワードがかかったPDFファイルは維持され、新たにパスワードが解除されたPDFファイルが作成されます。


NuGetパッケージマネージャーを使用してiTextSharpライブラリをインストールします。


string targetFilePath = "target-file.pdf";
string unlockedFilePath = "unlocked-file.pdf";
string pdfPassword = "your-pdf-password";

UnlockPdf(targetFilePath, unlockedFilePath, pdfPassword);

private static void UnlockPdf(string inputFilePath, string outputFilePath, string password)
{
    using (PdfReader reader = new PdfReader(inputFilePath, new System.Text.ASCIIEncoding().GetBytes(password)))
    {
        using (PdfStamper stamper = new PdfStamper(reader, new FileStream(outputFilePath, FileMode.Create)))
        {
            // パスワードを削除
            stamper.Writer.SetEncryption(null, null, PdfWriter.ALLOW_PRINTING, PdfWriter.STRENGTH128BITS);
        }
    }
}


いいなと思ったら応援しよう!