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);
}
}
}