Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#pdf如何使用iText设置textfield标签_C#_Pdf_Itext - Fatal编程技术网

c#pdf如何使用iText设置textfield标签

c#pdf如何使用iText设置textfield标签,c#,pdf,itext,C#,Pdf,Itext,我有一个pdf文件,我正试图添加一个新的文本字段。到目前为止,我已经能够添加文本字段,但是我还不能添加它前面的标签。 例如,如果我想插入一个“名称”字段,我想如下所示显示它 姓名:____________ 冒号后面是实际的文本字段,“Name”表示该字段的标签 到目前为止,我只能插入没有标签的文本字段。下面是我正在使用的代码。 有人能告诉我我的代码是否遗漏了什么吗 PdfStamper stamper = new PdfStamper(reader, out1); TextField tf =

我有一个pdf文件,我正试图添加一个新的文本字段。到目前为止,我已经能够添加文本字段,但是我还不能添加它前面的标签。 例如,如果我想插入一个“名称”字段,我想如下所示显示它 姓名:____________ 冒号后面是实际的文本字段,“Name”表示该字段的标签

到目前为止,我只能插入没有标签的文本字段。下面是我正在使用的代码。 有人能告诉我我的代码是否遗漏了什么吗

PdfStamper stamper = new PdfStamper(reader, out1);

TextField tf = new iTextSharp.text.pdf.TextField(stamper.Writer, new iTextSharp.text.Rectangle(x, h, w, y), "User Name:");

tf.FieldName = "User Name:";                

stamper.AddAnnotation(tf.GetTextField(), page_num);    
选项2 下面是我尝试的第二个选项,结果相同

PdfFormField field = PdfFormField.CreateTextField(stamper.Writer, false, false,50);

//Set the dimensions for the new field
field.SetWidget(new iTextSharp.text.Rectangle(x, h, w, y), PdfAnnotation.HIGHLIGHT_OUTLINE);

field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);
field.FieldName = "User Name";

stamper.AddAnnotation(field, page_num);  

PDF中字段的标签不包含在某些专用标签对象中,它只是页面内容。因此,必须将其添加为常规内容

我现在手头只有Java开发工具,所以下面的示例是Java for iText。(通常这类代码很容易转换为iTextSharp的C#代码,主要是用属性访问替换getter和setter调用。)


“标签”本质上是常规页面内容。因此,只需将标签添加到PdfStamper的过度内容中即可。感谢您的回复。我假设通过添加一个带有字段名的textfield,标签将显示字段名的值。这是正确的吗?我使用了过度内容,但没有显示标签值。您可以使用过度内容绘制文本。明天我会在办公室举个例子。谢谢,我很感激。这很有效。接下来,我必须为我插入的每个文本字段插入文本。Thanks@user3852972这起作用了太好了。因此,您可能希望将答案标记为已接受答案。
PdfReader reader = new PdfReader(SOURCE); 
PdfStamper stamper = new PdfStamper(reader, TARGET); 

TextField tf = new TextField(stamper.getWriter(), new Rectangle(300, 400, 500, 420), "UserName");
stamper.addAnnotation(tf.getTextField(), 1);

PdfContentByte overContent = stamper.getOverContent(1);
BaseFont baseFont = BaseFont.createFont();
overContent.setFontAndSize(baseFont, 12);
overContent.beginText();
overContent.showTextAligned(PdfContentByte.ALIGN_RIGHT, "User Name:", 300, 405, 0);
overContent.endText();

stamper.close ();