在商业环境中,我们有多年的Adobe LiveCycle ES。 一个关键功能是启用" Reader扩展"在PDF中,它解锁了Adobe Reader中用于阅读器扩展 PDF的一些功能。其中之一是允许用户在Adobe Reader中对空签名字段进行数字签名。
我记得在Adobe Reader中点击签名字段时没有发生任何事情,如果PDF不是"读者扩展"。这种情况例如是如果PDF是使用iText生成的。这个限制仍然在iText FAQ中得到确认,因为项目处于活动状态,它应该是最新的。
我最近重新执行了一些旧代码,令人惊讶的是,空白签名字段可以在Acrobat Reader DC中签名。
生成PDF的代码如下:
drivers/net/ethernet/agere/et131x.c: In function ‘nic_send_packet.constprop.43’:
include/linux/compiler.h:412:20: error: call to ‘__compiletime_assert_2439’ declared with attribute error: BUILD_BUG
prefix ## suffix(); \
^
include/linux/compiler.h:417:2: note: in expansion of macro ‘__compiletime_assert’
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler.h:429:2: note: in expansion of macro ‘_compiletime_assert’
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/bug.h:50:37: note: in expansion of macro ‘compiletime_assert’
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/bug.h:74:2: note: in expansion of macro ‘BUILD_BUG_ON_MSG’
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^
drivers/net/ethernet/agere/et131x.c:2439:2: note: in expansion of macro ‘BUILD_BUG_ON’
BUILD_BUG_ON(MAX_SKB_FRAGS + 1 > 23);
^
make[4]: *** [drivers/net/ethernet/agere/et131x.o] Error 1
make[3]: *** [drivers/net/ethernet/agere] Error 2
make[2]: *** [drivers/net/ethernet] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2
real 22m3.067s
user 21m4.028s
sys 1m6.724s
添加签名字段的代码:
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
改变了什么?我想Adobe Acrobat DC已经删除了一些读者扩展要求,但我找不到任何解释这个的发行说明。