2016-05-19 14 views
0

私はitextSharp 4.1.6を使用して既存のPDFにAcroFieldを追加し、2番目のステップでこれらのフィールドに内容を入力します。 これらの文書をAdobe Readerで開くと、その内容が表示されます。ドキュメントを印刷しようとすると、すべての塗りつぶしフィールドは空です。印刷Pdf塗りつぶしAcroFormsの内容を表示しない

これは、編集可能なPDFとフラット化されたPDFの両方で発生します。 'GenerateAppearances'がTrueに設定されています。 現在のライセンスコンセプトのため、別のバージョンにアップグレードすることはできません。 マイコード:

var dlg = new OpenFileDialog 
{ 
    FileName = "", 
    Filter = @"pdf|*.pdf" 
}; 
if (dlg.ShowDialog() != DialogResult.OK) return; 

// first step: create field 
var outputpath1 = Path.Combine(Path.GetTempPath(), string.Format("{0}.pdf", Guid.NewGuid().ToString("N"))); 
var pdfReader1 = new PdfReader(dlg.FileName); 
var output1 = new FileStream(outputpath1, FileMode.Create, FileAccess.Write); 
var stamper1 = new PdfStamper(pdfReader1, output1); 
InsertTextfield(stamper1, 1, 20, 500, 150, 100, "test"); 
stamper1.Close(); 
pdfReader1.Close(); 

// second step: insert some text 
var outputpath2 = Path.Combine(Path.GetTempPath(), string.Format("{0}.pdf", Guid.NewGuid().ToString("N"))); 
var pdfReader2 = new PdfReader(outputpath1); 
var output2 = new FileStream(outputpath2, FileMode.Create, FileAccess.Write); 
var stamper2 = new PdfStamper(pdfReader2, output2); 
stamper2.AcroFields.GenerateAppearances = true; 
var formData = stamper2.AcroFields; 
formData.SetField("test", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "); 
stamper2.Close(); 
pdfReader2.Close(); 

Process.Start(outputpath2); 

そしてInsertTextField:ドキュメントの

private static void InsertTextfield(PdfStamper stamper, int page, float x, float y, float width, float height, string fieldname) 
{ 
    var field = PdfFormField.CreateTextField(stamper.Writer, true, false, 500); 
    field.SetWidget(new Rectangle(x, y, x + width, y + height), PdfAnnotation.HIGHLIGHT_INVERT); 
    field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT); 
    field.FieldName = fieldname; 
    stamper.AddAnnotation(field, page); 
} 

は、ちょうど、新しいWord文書を作成し、いくつかのテキストを追加し、PDFとして保存します。まず、この文書を選択してください。

私の提出し​​た内容を印刷物に表示させるにはどうすればよいですか?

EDIT:追加コード

+2

1.共有してコード2.共有ドキュメント3.試みを私のために
作品は5.5.9、最新のリリースでは、問題を再現します。 –

+0

*これは、編集可能なPDFと平坦化されたPDFの両方で発生します。*印刷中にオフになっているオプションのコンテンツグループを使用しない限り、フラット化されたドキュメントでも起こります。 – mkl

+0

コードを共有していただきありがとうございます。さて、iTextSharpで '5.5.9'を試してみてください。 –

答えて

0

あなたは、TextFieldコンストラクタを介して、あなたのTextFieldを作成する必要があります。 iTextSharp 4.1.6

private static void InsertTextfield(PdfStamper stamper, int page, float x, float y, float width, float height, string fieldname) 
{ 
    var field = new TextField(stamper.Writer, new Rectangle(x, y, x + width, y + height), fieldname); 
    field.Options = TextField.MULTILINE; 
    stamper.AddAnnotation(field.GetTextField(), page); 
} 
関連する問題