Hi,

> Am 30.07.2016 um 07:25 schrieb Tilman Hausherr <[email protected]>:
> 
> Read this:
> https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PPKAppearances.pdf
> 
> what you need is the n2 layer. We have only the n0 layer.
> 
> There's also something about the n2 layer here
> https://issues.apache.org/jira/browse/PDFBOX-3198
> 
> but without a working example.
> 
> Also have a look at your file with PDFDebugger.
> 
> I'll have a look at your files later.... be patient….

Ill hack something together later today. Moving forward with 2.1 there will be 
an additional approach which will work similar to adding a signature field and 
using a signature design in Adobe Acrobat. This will not be compatible with the 
current PDVisibleSignatureDesigner etc.

@Tilman - I havn't seen any files. Could you forward them to me or are they 
confidential?

BR
Maruan

> 
> Tilman
> 
> Am 29.07.2016 um 23:20 schrieb Diego Azevedo:
>> Uhm.... Good idea.
>> 
>> The appearance should be the /N entry inside the /AP entry on the /FT /Sig 
>> dictionary, right? (I'm no PDF expert, it just kind of made sense (maybe?))
>> 
>> This PDF here has the appearance I want (sent by my client): 
>> https://drive.google.com/open?id=0B9u-J6HILTH6NE1SSVVDZHhWSmc
>> I tried to find it's appearance dictionary:
>> 
>> 11 0 obj
>> <</F 132/Type/Annot/Subtype/Widget/Rect[5 5 240 
>> 120]/FT/Sig/DR<</XObject<</FRM 9 0 R>>>>/T(Signature1)/V 1 0 R/P 12 0 
>> R/AP<</N 10 0 R>>>>
>> endobj
>> 
>> 10 0 obj
>> <</Type/XObject/Resources<</XObject<</FRM 9 0 R>>/ProcSet [/PDF /Text 
>> /ImageB /ImageC /ImageI]>>/Subtype/Form/BBox[0 0 235 115]/Matrix [1 0 0 1 0 
>> 0]/Length 29/FormType 1/Filter/FlateDecode>>stream
>> q 1 0 0 1 0 0 cm /FRM Do Q
>> endstream
>> endobj
>> 
>> Are these the droids I'm looking for? (I have absolutely no idea what this 
>> means)
>> 
>> [ ]'s
>> 
>> Diego Azevedo
>> 
>> On 29/07/2016 16:44, Maruan Sahyoun wrote:
>>> Hi,
>>>> Am 29.07.2016 um 19:39 schrieb Diego Azevedo <[email protected]>:
>>>> 
>>>> Thanks Tilman,
>>>> 
>>>> Well, here is the source code (only the visual signature bit):
>>>> 
>>>> // Creates the designer and set properties
>>>> PDVisibleSignDesigner sigDesigner = new PDVisibleSignDesigner(doc, image, 
>>>> page);
>>>> sigDesigner.xAxis(100).yAxis(200).zoom(-50);
>>>> PDVisibleSigProperties visibleSigProp = new PDVisibleSigProperties();
>>>> visibleSigProp.setPdVisibleSignature(sigDesigner).signatureReason("Test"); 
>>>> 
>>>> // this should replace visibleSigProp.buildSignature()
>>>> PDFTemplateBuilder builder = new ExtSigBuilder();
>>>> PDFTemplateCreator creator = new PDFTemplateCreator(builder);
>>>> visibleSigProp.setVisibleSignature(creator.buildPDF(visibleSigProp.getPdVisibleSignature()));
>>>>  
>>>> 
>>>> // add VisibleSignature options to general signature options
>>>> SignatureOptions sigOpts = new SignatureOptions();
>>>> sigOpts.setVisualSignature(visibleSigProp);
>>>> sigOpts.setPage(0);
>>>> 
>>>> 
>>>> // add signature options to signature
>>>> doc.addSignature(sigDic, mySigner, sigOpts );
>>>> 
>>>> The class used to modify the behavior was:
>>>> 
>>>> // Test -> should write "Hello" on the top-left corner (adapted from 
>>>> stackoverflow - String to COSName)
>>>> public class ExtSigBuilder extends PDVisibleSigBuilder
>>>>     {
>>>>         String fontName;
>>>> 
>>>>         @Override
>>>>         public void createImageForm(PDResources imageFormResources, 
>>>> PDResources innerFormResource,
>>>>                 PDStream imageFormStream, PDRectangle formrect, 
>>>> AffineTransform affineTransform, PDImageXObject img)
>>>>                 throws IOException
>>>>         {
>>>>             super.createImageForm(imageFormResources, innerFormResource, 
>>>> imageFormStream, formrect, affineTransform, img);
>>>> 
>>>>             PDFont font = PDType1Font.HELVETICA;
>>>>             fontName = 
>>>> getStructure().getImageForm().getResources().add(font).getName();
>>>>         }
>>>>                  @Override
>>>>         public void injectAppearanceStreams(PDStream holderFormStream, 
>>>> PDStream innterFormStream, PDStream imageFormStream,
>>>>                 COSName imageObjectName, COSName imageName, COSName 
>>>> innerFormName, PDVisibleSignDesigner properties)
>>>>                 throws IOException
>>>>         {
>>>>             super.injectAppearanceStreams(holderFormStream, 
>>>> innterFormStream, imageFormStream, imageObjectName, imageName, 
>>>> innerFormName, properties);
>>>> 
>>>>             String imgFormComment = "q " + 100 + " 0 0 50 0 0 cm /" + 
>>>> imageName + " Do Q\n";
>>>>             String text = "BT /" + fontName + " 6 Tf (Hello) Tj ET\n";
>>>> appendRawCommands(getStructure().getImageFormStream().createOutputStream(),
>>>>  imgFormComment + text);
>>>>         }
>>>>     }
>>>> When I don't use ExtSigBuilder or comment the 'appendRawCommands', I get 
>>>> this: link
>>>> But when I try to add this visible layer, the retangle becomes blank: link
>>>> You said that there is no example, but can I achieve it if I'm willing to 
>>>> get dirty and use low level API's? Is there a recommended architecture I 
>>>> can follow to merge this on the project latter?
>>> it's possible. One way to approach it is to create a visible signature with 
>>> the text in Adobe Acrobat and inspect and replicate the sppearance stream.
>>> 
>>> BR
>>> Maruan
>>> 
>>>> Thanks in advance,
>>>> 
>>>> Diego Azevedo
>>>> 
>>>> On 29/07/2016 13:54, Tilman Hausherr wrote:
>>>>> Am 29.07.2016 um 15:36 schrieb Diego Azevedo:
>>>>>> Hello all,
>>>>>> 
>>>>>> I'm trying to add a visible signature to a pdf document -> So far, no 
>>>>>> problems
>>>>>> But I've seen documents that add a text layer above the visible 
>>>>>> signature that shows some of the signature details, such as location, 
>>>>>> reason, date, the validity of the signature (and that's updated if, for 
>>>>>> example, you trust a root certificate). I'd like to add these features, 
>>>>>> but I didn't find any example on the SVN directory.
>>>>>> 
>>>>>> The closest I got was this stackoverflow question 
>>>>>> <http://stackoverflow.com/questions/27926407/visual-signature-with-pdfbox-1-8-8>,
>>>>>>  but that did not work for me (I changed the methods signatures to the 
>>>>>> updated API, but all I got was a blank rectangle).
>>>>> The text layer isn't supported, or rather, there is no example for it.
>>>>> 
>>>>> What you could do is to post your source code and upload the result PDF 
>>>>> somewhere, I'll see if I can find something.
>>>>> 
>>>>> Btw a known problem is signing rotated pages (there's an SO issue about 
>>>>> that too), so make sure your page isn't.
>>>>> 
>>>>> Tilman
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>> 
>>>> -- 
>>>> _______________________________________________
>>>> 
>>>> <logo-e-sec2.png>Diego Azevedo
>>>> Desenvolvedor
>>>> E-SEC Segurança Digital
>>>> www.esec.com.br
>>>> 61 3323-4410
>>>> 
>>>> 
>>>> Os dados transmitidos, incluindo quaisquer anexos, são destinados apenas 
>>>> para a pessoa ou entidade ao qual está endereçada e pode conter material 
>>>> confidencial e/ou privilegiado. É proibida qualquer revisão, 
>>>> retransmissão, disseminação ou outro uso desta informação, ou a tomada de 
>>>> qualquer ação com base na confiança, por pessoas ou empresas que não o 
>>>> destinatário, e qualquer responsabilidade daí decorrente é negada. Se você 
>>>> recebeu por engano, favor contatar o remetente e apague o material de 
>>>> qualquer computador
>>>> 
>>>> The information transmitted, including any attachments, is intended only 
>>>> for the person or entity to which it is addressed and may contain 
>>>> confidential and/or privileged material. Any review, retransmission, 
>>>> dissemination or other use of, or taking of any action in reliance upon, 
>>>> this information by persons or entities other than the intended recipient 
>>>> is prohibited, and all liability arising therefrom is disclaimed. If you 
>>>> received this in error, please contact the sender and delete the material 
>>>> from any computer
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to