3

実行時にPDFを作成するためにPdfStamperを使用しています。私の問題は、PDFフィールドのフォントサイズを大きくできないことです。私はこれを試しましたが、運がありません、

stamper.AcroFields.SetFieldProperty("names", "textsize", 4f, null);
Font font = FontFactory.GetFont(FontFactory.COURIER, 2f, iTextSharp.text.Font.BOLD);    
stamper.AcroFields.AddSubstitutionFont(font.BaseFont);
4

4 に答える 4

13

私はそれを使用して動作させました

stamper.AcroFields.SetFieldProperty("names", "textsize", 4f, null);

ただし、フィールドに入力する前に設定する必要があります

于 2014-02-25T15:50:48.777 に答える
6

どのバージョンのiTextSharpを使用していますか?私は5.0.6.0を使用しており、次のコード行が機能します。

stamper.AcroFields.SetFieldProperty("SomeDateField", "textsize", 8f, null);

しかし、奇妙なことに遭遇しました...上記の行は、そのフィールドのフォントサイズがに設定されている場合にのみAuto機能します。固定フォントサイズに設定されていると、コードで変更できないようです(私が遭遇したいくつかの異なる方法を試しました)。

Acrobatでそのフィールドを自動フォントサイズに設定した場合に同じことが発生するかどうか知りたいです。

于 2012-10-05T22:53:02.683 に答える
2

私が確認できたことから、フォントサイズはテキストフィールドの水平方向と垂直方向の幅に完全に比例しているように見えます。実行時にテキストの「サイズ変更」を試みるためにいくつかのプロセスを試してみましたが、結果は得られませんでした。私が生成できた唯一の「誤検知」は、テキストフィールドのサイズを手動で変更したときでした。申し訳ありませんが、これはあなたの問題を解決するのにこれ以上役に立ちませんでした。私はこの同じ問題で私の経験を共有すると思いました。ただし、解決策には注意を払います。解決策を思いついた場合は、非常に貴重な知識になるので、投稿してください。

于 2012-08-03T20:45:32.453 に答える
0

すべてのフォームフィールドのフォントサイズを変更するには、次のようにします。

using (PdfReader pdfReader = new PdfReader(fileInfo.FullName))
{
    using (var ms = new MemoryStream())
    {
        using (var pdfStamper = new PdfStamper(pdfReader, ms))
        {
            SetAcroFields(pdfStamper, myModel);

            // flatten the form to remove editting options, set it to false
            // to leave the form open to subsequent manual edits
            pdfStamper.FormFlattening = true;
            var pdfFormFields = pdfStamper.AcroFields;

            foreach (var f in pdfReader.AcroFields.Fields)
            {
                //Change font size here if auto should not be used
                pdfFormFields.SetFieldProperty(f.Key.ToString(), "textsize", (float)8.0, null);
            }
        }
        return ms.ToArray();
    }
}
于 2020-04-19T10:39:44.150 に答える