C# 如何使用ItextSharp动态添加文本框值?

C# 如何使用ItextSharp动态添加文本框值?,c#,textbox,itextsharp,C#,Textbox,Itextsharp,嗨,我正在使用ITextSharp创建PDF。这是我的代码: private void FillForm() { _path = HttpContext.Current.Server.MapPath("~/") + "\\PDF"; string formFile = _path + "\\Test.pdf"; string newFile = _path + "\\Test2.pdf"; var reader = new PdfReader(formFile)

嗨,我正在使用ITextSharp创建PDF。这是我的代码:

private void FillForm()
{
    _path = HttpContext.Current.Server.MapPath("~/") + "\\PDF";
    string formFile = _path + "\\Test.pdf";
    string newFile = _path + "\\Test2.pdf";

    var reader = new PdfReader(formFile);
    using (var stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create)))
    {
        AcroFields fields = stamper.AcroFields;

        var conn = new SqlConnection(DataManager.ConnectionString);
        conn.Open();

        var command = new SqlCommand("SQLCommand"), conn);
        var dt = new DataTable();
        var adapter = new SqlDataAdapter(command);

        adapter.Fill(dt);
        int rowIndex = 1;
        for (int i=0; i < dt.Rows.Count; i++)
        {
            var name = (string)dt.Rows[i]["Parameter"];
            fields.SetField("txt_" + rowIndex, name);
            rowIndex++;
        }

        stamper.FormFlattening = false;
        stamper.Close();
    }
}
private void FillForm()
{
_path=HttpContext.Current.Server.MapPath(“~/”+“\\PDF”;
字符串formFile=\u路径+“\\Test.pdf”;
字符串newFile=_path+“\\Test2.pdf”;
变量读取器=新的PdfReader(formFile);
使用(var stamper=newpdfstamper(reader,newfilestream(newFile,FileMode.Create)))
{
AcroFields=stamper.AcroFields;
var conn=新的SqlConnection(DataManager.ConnectionString);
conn.Open();
var命令=新的SqlCommand(“SqlCommand”),conn);
var dt=新数据表();
var adapter=newsqldataadapter(命令);
适配器填充(dt);
int rowIndex=1;
对于(int i=0;i
我在尝试将用户名填入文本框时遇到问题。我有一个从SQL查询中获得的名称列表,我想在不同的文本框中显示它。 只有第一个文本框显示其值。对于其他的,我必须点击文本框来查看里面的值


有人知道我如何修复它吗?

您的代码中缺少一行:

fields.GenerateAppearances = true;
您需要在以下内容之后添加此行:

AcroFields fields = stamper.AcroFields;

为什么会这样?您的模板有点错误(可能是使用OpenOffice创建的):它说用于填写表单的软件不应该生成字段的外观。因此,增加了字段的值(这是通过点击文本时出现的事实来证明),但是外观不见了(因此,空白字段)。

您在何处/如何将它们添加到文本框中?我看不出代码片段在这里有什么相关性,我正在设置文本框的值:fields.SetField(“user_”+行索引,name);之后,您使用什么查看文件,您是否尝试过不同的pdf阅读器?我正在使用,我必须使用Adobe Reader,我没有尝试过其他阅读器我现在使用Foxit Reader进行了尝试,但结果是sameI添加了您的代码,但没有任何更改,外观再次丢失:(请共享您的PDF。我在问题描述中共享它iTextSharp版本并不重要,但我们确实需要查看PDF内部是否设置了
/needAppearancess
标志。它已经有了
/DA
值。以此类推。例如:苹果预览中的已知缺陷导致PDF具有默认外观由空白矩形组成。如果您不想共享PDF,专家只能猜测(时间是宝贵的,如果您希望我们猜测,那么您滥用了我们花费时间的意愿,而我们的工作没有任何形式的补偿)@DID没有PDF,我们只能猜测。因此,如果您无法公开共享PDF,您将不得不了解自己或从准备签署NDA的人那里购买支持。