2016-03-30 5 views
0

私はPDF文書のためのPaper:Digital Signaturesを使用しています。 私はiTextののネットのDLLで働いていると私はその紙の例2.6に類似し、このコードを書いた:PDFAppearanceクラスで定義された外観は、署名フィールドには適用されません。

Private Sub Method() 
    'step 1: Create a Document 
    Dim document = New Document() 

    'step 2: Create a PdfWriter 
    Dim file = "C:\Export\ITEXT.PDF" 
    Dim FileOutputStream As System.IO.FileStream = System.IO.File.Open(file, System.IO.FileMode.Create) 
    Dim writer = PdfWriter.GetInstance(document, FileOutputStream) 

    'step 3: Open the Document 
    document.Open() 

    'step 4: Add content 
    document.Add(New Paragraph("leeres Signaturfeld")) 

    Dim signatureFormField = PdfFormField.CreateSignature(writer) 

    signatureFormField.FieldName = "FieldName" 
    signatureFormField.SetPage() 
    signatureFormField.SetWidget(New Rectangle(150, 750, 250, 800), PdfAnnotation.HIGHLIGHT_NONE) 
    signatureFormField.SetFieldFlags(PdfAnnotation.FLAGS_PRINT) 

    writer.AddAnnotation(signatureFormField) 

    Dim tp = PdfAppearance.CreateAppearance(writer, 72, 48) 
    tp.SetColorStroke(BaseColor.GRAY) 
    tp.SetColorFill(BaseColor.LIGHT_GRAY) 
    tp.Rectangle(0.5F, 0.5F, 71.5F, 20.5F) 
    tp.FillStroke() 
    tp.SetColorFill(BaseColor.BLUE) 
    ColumnText.ShowTextAligned(tp, Element.ALIGN_CENTER, New Phrase("SIGN HERE"), 36, 24, 25) 
    signatureFormField.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp) 

    'step 5: Close the Document 
    document.Close() 
End Sub 

しかしPDFAppearanceクラスで定義された外観は、私の空の署名フィールドに適用されますいけない、私はちょうど取得テキストのない空のフィールド。 何が間違っていましたか?

+0

の作成が完了する前に、それ以外の署名フィールドがすでにファイルに書き込まれている可能性があり、私の答えは、あなたの質問にお答えしていますか? – mkl

答えて

0

問題を再現しようとしました。私はVBよりもC#のほうが家庭で感じるので、行ごとに翻訳したので、動作に違いはありません。

だから私は、Adobe Acrobat ReaderがDCでファイルを開いた後、私ははっきりと外観が見えたとき、非常に驚​​いた:

ITEXT.PDF in Adobe Acrobat Reader DC

をだから私はファイルを検査するために私の古代は、Adobe Acrobat 9.5でそれを開きましたが、私は何を見たの:

ITEXT.PDF in Adobe Acrobat 9.5

おっと...

しかしおそらくそれは上記のリボンと関係しています。そして実際、マーク・フィールドのボタンを離した後、私が得た:。

ITEXT.PDF in Adobe Acrobat 9.5, mark-fields button released

をだから私はあなたの問題は、あなたが使用してPDFビューアとそれがでている状態に依存するかもしれないと仮定これは実際に述べている仕様に対応個々の注釈ハンドラはこのエントリを無視して、独自の外観を提供することがあります。


一つの発言、しかし:私はそれが完全に終了しただけで注釈を追加するには

signatureFormField.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp) 

すなわち後

writer.AddAnnotation(signatureFormField) 

を行う提案します。

あなたは外観

+0

ありがとうございました。あなたの答えは私の問題を解決しました。 –

関連する問題