Printing QR Code and Digital Signature in Adobe Forms - SAP Blogs
Printing QR Code and Digital Signature in Adobe Forms - SAP Blogs
Community
Technical Articles
Dear Friends,
Like
I am writing this blog post, keeping in mind the current scenario, where we have to
digitally sign e-invoices, which has both QR code and Digital signature on the same
RSS Feed form. The problem with Digitally signing the document via the ADS server is, it
removes the QR code from the form.
Introduction
SAP has given a solution for this, via note 2901700. But uses the concept of Job
profiles, which works after SP-13. Please refer to note 1743567, to see how to use Job
profiles.
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 1/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
In this blog post, we will see how we can get QR code and Digital signature on Adobe
Form without using Job profiles. We will basically convert the QR code into the image
(BMP) and then Digitally sign the form via ADS Server.
Before implementing the solution please check if you have SAP note 2790500
implemented in your system so that we can use class
CL_RSTX_BARCODE_RENDERER. Go to SE24 and check if you have the above class
in your system. If not then implement the given note for the same.
Use Case
We are creating an interactive adobe form with 2 fields QR Code and Digital
Signature.
Steps
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 2/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 3/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Assign Form Interface created above and give the description to the form. Save the
form
Link Graphic node QR_CODE variable with XSTRING variable IV_QRCODE. Open
design view
Create Driver program for the form created via SE38 transaction (Executable
Program)
REPORT zqrdg_dp.
DATA :
lv_fname TYPE rs38l_fnam ,
lv_formname TYPE tdsfname VALUE 'ZQRDG_F',
ls_fpformout TYPE fpformoutput,
lo_fp TYPE REF TO if_fp,
lo_pdfobj TYPE REF TO if_fp_pdf_object,
lv_len TYPE i,
lt_tab TYPE TABLE OF solix,
lv_file_name TYPE string,
lv_timestamps TYPE string,
lv_qrcode TYPE xstring,
iv_barcode_text TYPE string VALUE 'Test QR Data'.
cl_rstx_barcode_renderer=>qr_code(
EXPORTING
i_module_size = 20
i_mode = 'A'
i_error_correction = 'H'
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 5/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
i_barcode_text = iv_barcode_text
IMPORTING
e_bitmap = lv_qrcode
).
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 6/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
system_error = 2
internal_error = 3
OTHERS = 4.
lo_fp = cl_fp=>get_reference( ).
ENDTRY.
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 7/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
IMPORTING
output_length = lv_len
TABLES
binary_tab = lt_tab.
Activate the code and run the same. We will get the Form saved at the path given in
the code
Conclusion
E-signing the document is a common requirement. The above process will help us in
achieving the same. In the future SAP may release notes, wherein we can directly
print QR Code and Digital signature without many hurdles. But till that time this code
will work.
Alert Moderator
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 8/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Assigned Tags
ABAP Development
Related Questions
QR Code And Digital Signatures in Adobe Form
By Gaurav Sharma Nov 22, 2019
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 9/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
13 Comments
Yugandhar Kotha
September 25, 2020 at 4:08 pm
Nice article Vikas, but I am not getting QR code instead of that displaying grey colour image with no QR code.
What should I do.
Like 0 | Share
Hi Yugandhar,
I think you have placed your QR Code on the master page. Usually, if you place your QR code on the
master page then it will print as a grey image and if you put the same on the body then instead of QR
code you will get the value of the code in print.
To resolve the above issue, try to use job profiles and still of you are not able to resolve, then follow the
blog to print QR code as image
Like 0 | Share
Santanu Nayek
October 29, 2020 at 7:11 am
Hi Vikas,
I am not getting QR Code in Print preview instead of a blank page. What should I do? Please help
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 10/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Sijin Chandran
January 8, 2021 at 8:27 am
The solution which he has mentioned here is not by making use of the BarCode Object, in-fact its by
making use of 'Image Field' Object. By making use of below class
SFP setting
Like 0 | Share
cl_rstx_barcode_renderer=>qr_code
Like 0 | Share
Sijin Chandran
January 8, 2021 at 8:20 am
Good write up and as you have already mentioned this would be really helpful for E-Invoicing QR Code related
scenarios.
Thanks,
Sijin
Like 0 | Share
SHUBhAM TAKLIKAR
February 5, 2021 at 9:26 am
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 11/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Hi, Vikas,
I try with the same code as u written in a blog for printing the digital signature automatically in adobe form but
i unable to get the digital signature in adobe form . please check above code as i written .
FORM ADOBE_FORM.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = wa_output
* EXCEPTIONS
* CANCEL =1
* USAGE_ERROR =2
* SYSTEM_ERROR =3
* INTERNAL_ERROR =4
* OTHERS =5
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
l_fp = cl_fp=>get_reference( ).
try.
* create PDF Object
l_pdfobj = l_fp->create_pdf_object( connection = CONV #('ADS') ).
CALL METHOD L_PDFOBJ->SET_DOCUMENT
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 12/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
EXPORTING
PDFDATA = fp_formoutput-pdf.
CLEAR: L_OUT.
TRY.
CALL METHOD l_pdfobj->execute( ).
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 13/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
* INTERNAL_ERROR =3
* OTHERS =4
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
Like 0 | Share
SIRIGIRI KISHORE
February 11, 2021 at 8:09 pm
Nice Job Vikas , do you print directly on label printer from SAP ? do we need to design specific to label printers
. thanks for sharing .
Like 0 | Share
Gourab Dey
October 22, 2021 at 3:06 pm
Superb Vikas.
Like 0 | Share
Like 0 | Share
Shilpi Gupta
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 14/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Hi Vikas,
Thanks for the blog. This works fine for me. I have a small query. The PDF with DS gets generated this way.
But, now I want the PDF to be printed from standard output management(NACE). The issue I face is the spool
is already getting generated after FP_JOB_CLOSE. We are bringing up the resulting PDF and then putting on
the DS. How do we make this happen from NACE
Like 0 | Share
Abhishek Aserkar
July 30, 2022 at 2:04 pm
Dear Vikas,
We are getting Dump on Code mentioned by you. Can you please help.
REPORT ZDIG_REP.
DATA :
lv_fname TYPE rs38l_fnam ,
lv_formname TYPE tdsfname VALUE 'ZQR_CODEF',
ls_fpformout TYPE fpformoutput,
lo_fp TYPE REF TO if_fp,
lo_pdfobj TYPE REF TO if_fp_pdf_object,
lv_len TYPE i,
lt_tab TYPE TABLE OF solix,
lv_file_name TYPE string,
lv_timestamps TYPE string,
lv_qrcode TYPE xstring,
iv_barcode_text TYPE string VALUE 'Test QR Data'.
cl_rstx_barcode_renderer=>qr_code(
EXPORTING
i_module_size = 20
i_mode = 'A'
i_error_correction = 'H'
i_barcode_text = iv_barcode_text
IMPORTING
e_bitmap = lv_qrcode
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 15/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
).
DATA(l_control) = VALUE ssfctrlop( no_dialog = 'X' preview = 'X' no_open = '' no_close =
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 16/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
lo_fp = cl_fp=>get_reference( ).
ENDTRY.
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 17/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
binary_tab = lt_tab.
Dump Details
----------------------------------------------------------------------------------------------------
|Short Text |
| An exception has occurred that was not caught. |
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|What happened? |
| The exception of class "CX_FP_RUNTIME_USAGE" was triggered but not caught |
| anywhere in the |
| call hierarchy. |
||
| Since exceptions represent error situations, and this error was not |
| adequately responded to, ABAP program "CL_FP_PDF_OBJECT==============CP" had |
| to be terminated. |
----------------------------------------------------------------------------------------------------
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 18/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
----------------------------------------------------------------------------------------------------
|Error analysis |
| An exception has occurred in class "CX_FP_RUNTIME_USAGE". As this exception |
| was not |
| caught, a runtime error occurred. The reason for the exception |
| occurring was: |
| Not enough information for output or processing |
||
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|Missing handling of application exception |
| (Program) ZDIG_REP |
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|Trigger Location of Exception |
| (Program) CL_FP_PDF_OBJECT==============CP |
| (Include) CL_FP_PDF_OBJECT==============CM00N |
| (Row) 5 |
| (Module Type) (METHOD) |
| (Module Name) IF_FP_PDF_OBJECT~SET_DOCUMENT |
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|Source Code Extract |
----------------------------------------------------------------------------------------------------
|Line |Code |
----------------------------------------------------------------------------------------------------
| 1|method if_fp_pdf_object~set_document. |
| 2|data: l_errstr type string. |
| 3| |
| 4| if pdffile is initial and pdfdata is initial. |
|>>>>>| raise exception type cx_fp_runtime_usage |
| 6| exporting |
| 7| textid = cx_fp_runtime_usage=>nothing_to_do. |
| 8| endif. |
| 9| |
| 10| if not pdffile is initial and not pdfdata is initial. |
| 11| concatenate 'PDFFILE' ',' 'PDFDATA' into l_errstr. |
| 12| raise exception type cx_fp_runtime_usage |
| 13| exporting |
| 14| textid = cx_fp_runtime_usage=>conflicting_arguments |
| 15| errmsg = l_errstr |
| 16| errcode = cpdfe_pdf_setdocument_conflict. |
| 17| endif. |
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 19/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
| 18| |
| 19| _pdffile = pdffile. |
| 20| _pdfdata = pdfdata. |
| 21| |
| 22|endmethod. |
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
|Active Calls/Events |
----------------------------------------------------------------------------------------------------
|No. Ty. Program Include Line |
| Name |
----------------------------------------------------------------------------------------------------
| 2 METHOD CL_FP_PDF_OBJECT==============CP CL_FP_PDF_OBJECT==============CM00N 5 |
| CL_FP_PDF_OBJECT=>IF_FP_PDF_OBJECT~SET_DOCUMENT |
| 1 EVENT ZDIG_REP ZDIG_REP 80 |
| START-OF-SELECTION |
----------------------------------------------------------------------------------------------------
Like 0 | Share
Abhishek Aserkar
August 1, 2022 at 8:18 am
Awaiting Reply
Like 0 | Share
Hello,
Regards,
Like 0 | Share
Find us on
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 20/21
11/13/22, 6:05 PM Printing QR Code and Digital Signature in Adobe Forms | SAP Blogs
Newsletter Support
https://blogs.sap.com/2020/09/25/printing-qr-code-and-digital-signature-in-adobe-forms/ 21/21