2
A
回答
1
你说你要从头开始创建PDF(不是现有的PDF),并希望该PDF有一个字段。
从零开始创建PDF不涉及PdfStamper
,因此对于“我们能否在PdfStamper
中实现这个目标”这个问题的答案是“是的,您可以。”
如果你想利用iText 5,你应该看看下面的例子:
其中的一个例子是写在答案问题Add PdfPCell to Paragraph
在这个考试中PLE,我们创建了一个Paragraph
其中一些Chunk
对象字段:
你可以使用getFieldPositions()
方法这些字段的坐标。即在FAQ解释说:How to find the absolute position and dimension of a field?
如果你正在考虑利用iText 7.0.1,的你会发现,这些类是很容易理解,因为同一类用于无论您是使用一种形式划伤或填写现有表格,请参阅iText 7 jump-start tutorial的chapter 4。
public class GenericFields extends GenericTest {
public static final String DEST = "./target/test/resources/sandbox/events/generic_fields.pdf";
public static void main(String[] args) throws Exception {
File file = new File(DEST);
file.getParentFile().mkdirs();
new GenericFields().manipulatePdf(DEST);
}
@Override
protected void manipulatePdf(String dest) throws Exception {
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
Document doc = new Document(pdfDoc);
Paragraph p = new Paragraph();
p.add("The Effective Date is ");
Text day = new Text(" ");
day.setNextRenderer(new FieldTextRenderer(day, "day"));
p.add(day);
p.add(" day of ");
Text month = new Text(" ");
month.setNextRenderer(new FieldTextRenderer(month, "month"));
p.add(month);
p.add(", ");
Text year = new Text(" ");
year.setNextRenderer(new FieldTextRenderer(year, "year"));
p.add(year);
p.add(" that this will begin.");
doc.add(p);
doc.close();
}
protected class FieldTextRenderer extends TextRenderer {
protected String fieldName;
public FieldTextRenderer(Text textElement, String fieldName) {
super(textElement);
this.fieldName = fieldName;
}
@Override
public void draw(DrawContext drawContext) {
PdfTextFormField field = PdfTextFormField.createText(drawContext.getDocument(), getOccupiedAreaBBox(), fieldName);
PdfAcroForm.getAcroForm(drawContext.getDocument(), true).addField(field);
}
}
}
相关问题
- 1. 如何设置字段名称?
- 2. 如何设置字段名称excel导出java
- 3. 如何在Gson中设置字段名称,如果它的值?
- 4. 如何在REDX表格字段组件中设置名称
- 5. 如何在angularjs中使用模板设置字段名称
- 6. 如何在openerp中动态设置字段的名称?
- 7. 如何在Symfony 2中设置表单字段名称?
- 8. 如何在java中设置数字名称
- 9. Java Reflection - 从设置的方法中获取字段的名称
- 10. 在循环中设置名称将名称设置为数字
- 11. 如何在qWeb报告中设置PDF名称,Odoo?
- 12. iTextSharp - 如何设置隐形签名字段名称
- 13. 设置NOT NULL字段的名称= NULL
- 14. JAVA:如何设置线程名称(RMI)?
- 15. 使用Java和IText,如何从PDF中提取AcroForm字段名称?
- 16. 如何在iTextSharp中设置pdf不可编辑的字段
- 17. 如何在@ManyToMany中设置ForeignKey名称
- 18. play2 java窗体绑定 - 如何设置字段名称映射到对象?
- 19. 如何按名称设置Python对象的字段/成员
- 20. 如何为feign bean字段设置JsonProperty名称
- 21. 如何通过itextpdf.text.pdf.AcroFields设置一个字段名称?
- 22. 如何按名称设置django模型字段?
- 23. 设置字段设置为true在JAVA
- 24. 如何在设计阶段显示字段的名称
- 25. 设置打印时的PDF名称
- 26. 在Django生成的选择字段中设置名称属性
- 27. 在linq查询中设置动态排序名称字段
- 28. 使用ColdFusion填充LiveCycle pdf,但PDF中没有字段名称
- 29. 名称字段未设置为表单输入字段
- 30. Symfony设置模式字段有空格时的字段名称
我已经通过您的'创建表单字段'的建议,因为我提到'GenericField.java'。我想添加一个没有指定任何矩形坐标的字段名的段落,这可能吗?这样我就可以使用getFieldPositions(fieldName)来获取坐标。 – Nid
在为字段创建窗口小部件注记时,您总是需要指定坐标。这就是为什么我们使用'onGenericTag'或'PdfPCellEvent'。该段落总是添加在特定的坐标处。您需要使用这些坐标来添加该字段。 –