string inputfile = "input file path";
string outfile = "outfile file path";
using (Stream output = new FileStream(outfile, FileMode.Create, FileAccess.Write, FileShare.None))
{
PdfReader reader = new PdfReader(inputfile);
Dictionary<string, string> newInfo = new Dictionary<string, string>();
newInfo.Add("Title", "Title");
newInfo.Add("Subject", "Subject");
newInfo.Add("Keywords", "Keywords");
newInfo.Add("Creator", "Creator");
newInfo.Add("Author", "Author");
newInfo.Add("CustomInfo", "CustomeInformationCanStoreHere");
PdfEncryptor.Encrypt(reader,output,true,"*****","*****",PdfWriter.DO_NOT_ENCRYPT_METADATA, newInfo);
}
を作成して、暗号化PDFファイルのためのiTextのを使用していますただし、タイトル、件名、作成者、キーワード情報などのメタデータは暗号化されています。私は、私は、メタデータを暗号化したいいけないオプションが示すように、コード(パスワードやPdfWriter.DO_NOT_ENCRYPT_METADATAとして設定オプション)</p> <p>の上使用して(DO_NOT_ENCRYPT_METADATA)のPDFファイルを暗号化してきた
上記のコードには何もありません。
public void manipulatePdf(string source, string destination) {
PdfReader reader = new PdfReader(source);
Stream output = new FileStream(destination, FileMode.Create, FileAccess.Write, FileShare.None);
PdfStamper stamper = new PdfStamper(reader, output);
Dictionary<string, string> newInfo = new Dictionary<string, string>();
newInfo.Add("Title", "Title");
newInfo.Add("Subject", "Subject");
newInfo.Add("Keywords", "Keywords");
newInfo.Add("Creator", "Creator");
newInfo.Add("Author", "Author");
newInfo.Add("CustomInfo", "CustomeInformationCanStoreHere");
stamper.MoreInfo = newInfo;
MemoryStream outStream = new MemoryStream();
XmpWriter xmpw = new XmpWriter(outStream,newInfo);
stamper.XmpMetadata = outStream.ToArray();
byte[] password = Encoding.ASCII.GetBytes("password");
stamper.SetEncryption(password, password, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);
xmpw.Close();
stamper.Close();
reader.Close();
}
私はあなたの提案に基づいてコードの変更を行いました。私の問題はXMPデータを読む必要があります –
今私はPDFからXMPデータを読む必要がありますが、私はパスワードを与えたくありません。 XMPデータを読み取る。 –