を隠す:iTextsharpでPDFを充填した後、次のように私は、PDF内のフィールドを移入するには、次のコードを使用していますベース層
string fileNameExisting = @"C:\Old.pdf";
string fileNameNew = @"C:\New.pdf";
using (FileStream existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
{
using (FileStream newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
Font font = FontFactory.GetFont(FontFactory.COURIER, 6f, Font.BOLD);
PdfReader pdfReader = new PdfReader(existingFileStream);
PdfStamper stamper = new PdfStamper(pdfReader, newFileStream);
AcroFields form = stamper.AcroFields;
ICollection fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
stamper.AcroFields.SetFieldProperty(fieldKey, "textsize", 6f, null);
stamper.AcroFields.AddSubstitutionFont(font.BaseFont);
form.SetField(fieldKey, fieldKey); //Just for testing
}
stamper.Close();
}
}
これはよくして正常に動作しますが、私の最終目標は持っていることですこのメソッドに渡されたboolは、ドキュメントの基本レイヤがレンダリングされるかどうかを指定します。ユーザがフィールドの内容をレンダリングし、 "Old.pdf"の実際の内容を隠す必要がある場合のみです。
私はドキュメンテーションを調べましたが、これを特にカバーすることはできません。それは可能ですか?
答えをありがとう!私は 'PdfDictionary pageDictionary = pdfReader.GetPageN(page);という行を使いました。 Dictonary.Remove(PdfName.CONTENTS); ' これは完璧に機能しました! – Bitz
サイズ変更がないことに気付きました。 – Bitz
いいえ、サイズの変更はありません。なぜそれがあるべきですか?ディメンションではなくコンテンツを削除しました。 – mkl