我正在使用iText动态生成PDF文档。现在我正在尝试在此PDF中动态创建条形码。 Adobe Live Cycle内置条形码功能。您只需拖动页面上的条形码文本框即可创建它。
问题:
我将条形码字段放在PDF中。然后将数字传递给JSP页面中的条形码字段。但只有数字出现。条形码行永远不会显示
数字20099002在PDF文档中可见,但条形码行无法显示。我在LiveCycle中尝试了其他几个条形码选项,但都给出了相同的结果。
OurJavaPage.java
public class ExampleForm extends BaseOutput {
private static final Log LOG = LogFactory.getLog(ExampleForm.class);
public OutputStream generate() throws IOException, DocumentException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfReader reader;
reader = new PdfReader(BASEDIR + "MailingExample.pdf");
PdfStamper stamper = new PdfStamper(reader, baos);
Participant participantHome = home.getParticipant();
Set<Location> homeLocs = participantHome.getLocations();
final AcroFields form = stamper.getAcroFields();
setFormField(form, "addrNumber[0]", addrMaster.getStreetNum());
setFormField(form, "dateMiddle[0]", formatDate("MM-dd-yyyy", new Date()));
// *********** Here's the problem *****************************
setFormField(form, "Code128ABarcode1[0]", "20099002");
// ************************************************************
debugAcrobatForm("ExampleForm", form);
stamper.setFormFlattening(true);
stamper.close();
return baos;
}
}
操作系统: Linux
编程: Java,.jsp,iText
软件: Adobe Live Cycle Designer ES 8.1
答案 0 :(得分:5)
问题解决了!!!
我联系了iText,他们建议我改变这一行。
发件人:强>
stamper.setFormFlattening(真);
要强>
stamper.setFormFlattening(假);
有效。
答案 1 :(得分:1)
您的软件是否将条形码嵌入为图形或字符的字体表示?
如果是后者,是否将字体嵌入PDF?
答案 2 :(得分:0)
您是否曾在非常活跃的IText邮件列表上提问?
答案 3 :(得分:0)
如果这是使用LiveCycle创建的动态XFA表单,那么使用表单展平将导致您丢失表单字段。静态XFA表单应该可以工作。
参考:http://itext.ugent.be/library/question.php?id=30
iText中的XFA支持正在改善,但充其量只是参差不齐。
答案 4 :(得分:0)
你必须在你的系统(字体库)中添加条形码字体,然后它会在你的字体下拉列表中显示。使用acro-field(文本)并在此acro-field中设置该字体。 Ur问题将得到解决。 另外,使用setformflattening = true,因为它会使pdf不可编辑
答案 5 :(得分:0)
它对我来说很好..也许它与你在livecycle designer(静态或动态)中制作模板的方式有关...
在此处查看示例 http://1t3xt.info/examples/browse/?page=example&id=433
此致 Raghavendra Samant