itext signed pdfa - 子集字体中的CIDset不完整

时间:2013-11-28 19:14:34

标签: itextsharp itext pdfa

我有一个pdf / a兼容文件(我使用acrobat进行预检检查,但没有发现任何问题)。然后我使用pdfAStamper使用itextsharp对文件进行签名。有关pdfa合规性的itext签名过程有两种可能的结果。

  1. 如果签名不可见,则pdf符合pdfa标准:

    stamper = PdfAStamper.CreateSignature(reader, os, '\0'); PdfSignatureAppearance appearance = stamper.SignatureAppearance; appearance.Reason = cerReason; appearance.Location = cerLocation; IExternalSignature pks = new PrivateKeySignature(pk, digestAlgorithm); MakeSignature.SignDetached(appearance, pks, chain, crlList, ocspClient, tsaClient, estimatedSize, subfilter);

  2. 如果我在Bruno Lowagie的论文ch 2.4.2中添加了可见的签名,那么预检检查会报告: 子集字体中的 CIDset不完整

  3. 在已添加的字体上报告错误:

    BaseFont bfA = BaseFont.CreateFont(fntPath, BaseFont.IDENTITY_H, true);
    

    完整代码看起来像

    stamper = PdfAStamper.CreateSignature(reader, os, '\0');
    PdfSignatureAppearance appearance = stamper.SignatureAppearance;
    appearance.Reason = cerReason;
    appearance.Location = cerLocation;
    BaseFont bfA = BaseFont.CreateFont(fntPath, BaseFont.IDENTITY_H, true);
    appearance.SetVisibleSignature(new Rectangle(50, 100, 400, 200), nP, "Signature");
    appearance.Layer2Font = new Font(bfA, 12);
    appearance.Layer2Text = cerL2Text + DateTime.Now;
    appearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.GRAPHIC_AND_DESCRIPTION;
    appearance.SignatureGraphic = Image.GetInstance(staPath);
    IExternalSignature pks = new PrivateKeySignature(pk, digestAlgorithm);
    MakeSignature.SignDetached(appearance, pks, chain, crlList, ocspClient, tsaClient, estimatedSize, subfilter);
    

    最终的问题是如何使后一个例子生成符合pdfa的文件,即。如何摆脱子集字体中的 CIDset是不完整的错误?

0 个答案:

没有答案