c# pdf 如何使用 iText 设置文本字段标签
c# pdf How to set textfield label with iText
我有一个 pdf 文件,我正在尝试向其中添加新的文本字段。到目前为止,我已经能够添加文本字段,但是我无法添加它前面的标签。
例如,如果我想插入一个 "Name" 字段,我想显示它如下所示
Name:____________
冒号之后是实际的文本字段,"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 中用于 iText。 (通常这样的代码很容易转换为 iTextSharp 的 C# 代码,主要是通过将 getter 和 setter 调用替换为 属性 访问。)
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 ();
我有一个 pdf 文件,我正在尝试向其中添加新的文本字段。到目前为止,我已经能够添加文本字段,但是我无法添加它前面的标签。 例如,如果我想插入一个 "Name" 字段,我想显示它如下所示 Name:____________ 冒号之后是实际的文本字段,"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 中用于 iText。 (通常这样的代码很容易转换为 iTextSharp 的 C# 代码,主要是通过将 getter 和 setter 调用替换为 属性 访问。)
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 ();