2016-08-02 11 views
0

私はPDFSharpを使ってAcroFormフィールドのPDFを入力しています。私はこれに似たいくつかのコードを使用してフォームフィールドの値を設定することができる午前:PDFSharpでAcroFormフィールドのフォントを変更できません

PdfTextField txtField = (PdfTextField)oldPDF.AcroForm.Fields["fieldname"]; 
    txtField.Value = new PdfString("my form value"); 

私がフィールドになりますテキストのフォントを変更しようとすると、私が持っている問題があります。私は、フィールドのフォントプロパティにアクセスすることができるよ、それは私がこのようにそれを設定することができます:

txtField.Font = new XFont("Courier New", 16, XFontStyle.Bold); 

しかし、戻って別のフォントに私が保存されたPDFを開くと、デフォルトのフォント。私は "Arial"や "Helvetica"のような他のフォントも使ってみましたが、大きさは変わりましたが、何も固執していないようです。

興味深いすぎて、私はFoxitのがPhantomPDFのと、それに変更を加える前に、私はPDFを開いたとき、私は、フォームフィールドを検査することができますし、私が記入した後、フォントがのTimes New Roman

enter image description here

に設定されている参照しますPDFを作成して保存してからフィールドを見ると、コードに設定しようとするフォントに関係なく、Helvetica 10に設定された表示になります。私は手動でのFoxitのPhantomPDFの持つフォームフィールドを編集して、フォント方法を変更した場合

enter image description here

、それがついてしまいますが、私はコードでそれをやってみたいです。これは可能ですか?

答えて

0

これが正しい方法であるかどうかわかりませんが、私はAcroFormフィールド辞書の "/ DA"デフォルトのapperance要素にアクセスしてそれを変更することでフォントを変更できます。

if(txtField.Elements.ContainsKey("/DA") == false) 
     { 
     txtField.Elements.Add("/DA", new PdfString("/CoBo 12 Tf 0 g")); 
     } 
    else 
     { 
     txtField.Elements["/DA"] = new PdfString("/CoBo 12 Tf 0 g"); 
     } 

「フォント」プロパティがこれを行う正しい方法であるように感じますが、そのメソッドを動作させることはできません。

関連する問題