我正在使用https://github.com/docusign/docusign-php-client中的PHP SDK,并试图在文档中添加一个日期签名字段。我正在成功创建信封,添加签名者,并发送信封。但我想不出日期签名字段漏掉了什么。
function addSigner($signerName, $signerEmail, $xPos, $yPos, $documentId = 1, $documentPage = 1)
{
$index = count($this->signers);
$this->signers[$index] = new DocuSign\eSign\Model\Signer();
$this->signers[$index]->setName($signerName);
$this->signers[$index]->setEmail($signerEmail);
$this->signers[$index]->setRecipientId((string)$index + 1);
$this->sigFields[$index] = new DocuSign\eSign\Model\SignHere();
$this->sigFields[$index]->setXPosition($xPos);
$this->sigFields[$index]->setYPosition($yPos);
$this->sigFields[$index]->setDocumentId($documentId);
$this->sigFields[$index]->setPageNumber($documentPage);
$this->sigFields[$index]->setRecipientId((string)$index + 1);
$this->sigTabs[$index] = new DocuSign\eSign\Model\Tabs();
$this->sigTabs[$index]->setSignHereTabs(array($this->sigFields[$index]));
$this->signers[$index]->setTabs($this->sigTabs[$index]);
return $index; // signerid
}
function addSignerDate($signerId, $xPos, $yPos, $documentId = 1)
{
$index = count($this->dateSignedFields);
$this->dateSignedFields[$index] = new DocuSign\eSign\Model\DateSigned();
// the date should always be on the same page as the signature
$pageNumber = $this->sigFields[$signerId]->getPageNumber();
$this->dateSignedFields[$index]->setPageNumber($pageNumber);
$this->dateSignedFields[$index]->setDocumentId($documentId);
$this->dateSignedFields[$index]->setRecipientId($signerId);
$this->dateSignedFields[$index]->setName('Date Signed');
$this->dateSignedFields[$index]->setTabLabel('Date Signed');
$this->dateSignedFields[$index]->setXPosition($xPos);
$this->dateSignedFields[$index]->setYPosition($yPos);
// EDIT - I added this bit but still no Date Signed. Probably the right track though.
$this->dateSignedTabs[$index] = new DocuSign\eSign\Model\Tabs();
$this->dateSignedTabs[$index]->setDateSignedTabs(array($this->dateSignedFields[$index]));
$this->dateSignedFields[$index]->setTabId($this->dateSignedTabs[$index]);
return $index;
}
好吧,我是这样修好的。我改为只有一个选项卡数组--没有单独的日期签名字段数组。Tabs对象包含不同类型的选项卡,因此我们对两个字段使用相同的选项卡。
function addSigner($signerName, $signerEmail, $xPos, $yPos, $documentId = 1, $documentPage = 1)
{
$index = count($this->signers);
$this->signers[$index] = new DocuSign\eSign\Model\Signer();
$this->signers[$index]->setName($signerName);
$this->signers[$index]->setEmail($signerEmail);
$this->signers[$index]->setRecipientId((string)$index + 1);
$this->sigFields[$index] = new DocuSign\eSign\Model\SignHere();
$this->sigFields[$index]->setXPosition($xPos);
$this->sigFields[$index]->setYPosition($yPos);
$this->sigFields[$index]->setDocumentId($documentId);
$this->sigFields[$index]->setPageNumber($documentPage);
$this->sigFields[$index]->setRecipientId((string)$index + 1);
$this->sigTabs[$index] = new DocuSign\eSign\Model\Tabs();
$this->sigTabs[$index]->setSignHereTabs(array($this->sigFields[$index]));
return $index;
}
function addSignerDate($signerId, $xPos, $yPos, $documentId = 1)
{
$index = count($this->dateSignedFields);
$this->dateSignedFields[$index] = new DocuSign\eSign\Model\DateSigned();
// the date should always be on the same page as the signature
$pageNumber = $this->sigFields[$signerId]->getPageNumber();
$this->dateSignedFields[$index]->setPageNumber($pageNumber);
$this->dateSignedFields[$index]->setDocumentId($documentId);
$this->dateSignedFields[$index]->setRecipientId($signerId);
$this->dateSignedFields[$index]->setName('Date Signed');
$this->dateSignedFields[$index]->setTabLabel('Date Signed');
$this->dateSignedFields[$index]->setXPosition($xPos);
$this->dateSignedFields[$index]->setYPosition($yPos);
$this->sigTabs[$signerId]->setDateSignedTabs(array($this->dateSignedFields[$index]));
return $index;
}
然后我在SendEnvelope方法中将它们添加到文档中:
foreach($this->signers as $signerId => $signer)
{
$this->signers[$signerId]->setTabs($this->sigTabs[$signerId]);
}
出身背景 我使用iTextSharp已经有一段时间了。我已经创建了一个带有两个可签名的PdfFormFields的pdf文档。如果我打开pdf文档,我可以手动对每个字段进行手动签名。我希望通过iTextSharp完成这件事。 我目前正在从X509Store检索证书。直到现在,我都能弄明白。 问题 有人能告诉我如何使用X509Certificate2签署一个已经存在的签名字段吗。 工具书类 以下参考
我想问一个问题,如果我想在多页pdf中添加数字签名,每页都有相同的印章,我是否可以在第一页只添加一次数字签名,然后其他页面只需要引用第一个印章的外观。因为使用这种方法可以减少添加邮票的时间。 我使用了mkl给出的代码,但我有一个问题。我用其他代码替换了以下代码。 原件: 现在: 原始代码在加盖印花时有效,但修改后的代码将使印花无效。我使用Adobe Acrobat Pro DC打开已签名的文档。此
对于IText5,添加数字签名相当容易。其留档的链接是:http://developers.itextpdf.com/examples/security/digital-signatures-white-paper/digital-signatures-chapter-2 有人可以在ITEXT 7中共享文档链接吗?我试过各种方法,但都没有用。在网上找不到任何链接。我可以取消签名并检查签名,但不能添
将LTV添加到数字签名后,它显示文档已更改。 参考后:LTV认证签名后,PDF显示“文档已更改” 我对代码进行了更改,它可以很好地用于除此文档以外的所有文档:https://www.sendspace.com/file/3ulwn7-显示无效签名。 我们还使用来自global sign的文档签名服务。 以下代码用于添加LTV: 编辑:我认为我在代码中操作pdf的方式导致了阅读/编写pdf的问题。不
我需要将一个使用iText5进行PDF签名验证/创建的Java程序移植到iText7。 旧代码显然不能按原样工作,因为iText的大部分内容都经过了重组。 我找到的所有关于如何做到这一点的例子和教程都是针对iText5的。(非常好的)白皮书也是如此。它们依赖于通过方法返回的列表,在该方法上执行所有与签名相关的操作。 在iText7中,不再具有该方法。 有人知道iText7的例子/文档吗?
我正在尝试向现有的数字签名pdf(认证签名)中添加一个空签名字段。 我有一个工作流,其中许多用户将签署该文档(批准签名),该文档创建时带有“n”个空签名字段,每个用户一个,我们的应用程序首先应用一个不可见的认证签名,然后每个用户可以在各自的字段中签署该文档,但由于工作流中意外的更改,其他用户可能希望签名,因此,我们希望添加相应的空签名字段,然后应用签名。 我试图将空字段(带有单元格事件的表)添加到