Skip to Content
Technical Articles
Author's profile photo Rini Kalsi

Printer Resident Fonts using SAP Adobe Forms

Hello Fellow SAP Techies!

It has been long since I have been able to write a blog and this one has been on my list for quite some time. Finally I started putting together this post . Hope this helps

Intended Audience –

SAP Developers , SAP Development Architect , SAP Basis


The client had a requirement where the usual check forms going to the Bank for Payments was to be printed from SAP, S4 HANA 2020 FPS2 , on-premise , in this case.

The most important consideration was not to put the company logo(s) , Executive Signature(s) and ofcourse MICR(code at the bottom used on checks to identify the check)  were not to be saved with the form design, so that it doesn’t show in the spool pdf – when opened from Sp01/Sp02, but only on the actually printed check . This was a security constraint for the client and they were very strict on this.

Additionally, The printer used for printing the check was Troy’s HP Laserjet P3015, the fonts were residing directly on the printer( hence the title Printer Resident Fonts) and hence the signatures , logos and MICR would get directly printed on the printed check and not when downloading the pdf from spool tcodes – SP01/Sp02


You need to work with Basis team closely on this to get the printer specs, majorly below

  1. Exact Font names as in Printer e.g. Troy Image 201 Screen Font
  2. Escape Sequence for the the Fonts
  3. Get the MICR command used for printing MICR code

Solution –

The solution involves few steps, majorly basis related . I also want to share some great tools shared by SAP team on this


Step 1 : To be done in the Form Design i.e. Adobe Livecycle Designer for Adobe Forms- Assign the Fonts in the Layout to the required form elements e.g. text field . Note – You don’t need to install the font on your machine , rather just type the Font name , as is in the Printer specs so e.g. in this case as in screenshot below , instead of selecting the font name from the dropdown , type in the font name i.e. Troy Image 205 Screen Font.

This step is done by Developer.

Step 2: Download the standard hppcl5e.xdc file and then update XDC file Note – XDC file is the main file which is used by ADS server to render the actual form at run time

This step is usually done by Basis team.

Step 2.1 : Update the Font escape sequences as provided in printer specs, as mentioned in the pre-requisites above

Step 2.2 : Update the Pre-doc section with MICR command, as mentioned in the pre-requisites above

Lastly we also added a new command as highlighted in the postdoc section below

Note – We noticed blank pages being printed when the xdc file has only the MICR command -12400 and not -12345 but th eprevious steps and this last step helped to resolve the issue

Step 3 : Update the XDC file in  report RSPO0022

This step is usually done by Basis team.

Step 3.1: Upload the new xdc file

Step 3.2: Assign the newly uploaded xdc file to your device type associated with your printer

Step 4 : Run test – Make sure when you are running the test print, print on the exact printer(e.g. ZTROYMC a directly so that the right xdc file is picked up by ADS server to generate the pcl file . If you print to a Local printer first and then go to Sp01 and change the printer to print to another printer it wont pick the right xdc file


Additional tips :


  1. The PCL file is the main file which has all the form translated in the Printer language . So if the pcl file generated is good , you are on the right track

Now the next question would be how to get the pcl file for your print job – You can run report RSPO0020 to get the pcl file for your spool id (from Sp01)

Also if you dont see any field on the printed form – you should check if its in the pcl file or not

2. Additionally , there is another handy report , RSPO_TEST_CREATE_SPOOL , which could be           used to directly print the pcl file if you have a working pcl file available from somewhere – to                 see  if the pcl file is good .

Hope you find this helpful!

P.S – Special thanks to @annette.horstmann and @harpreetsingh.saini from SAP support team for their support on this.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Igor Babaric
      Igor Babaric

      Hi, Rini,
      Thank you for this wonderful and inspiring blog! I have no opportunity to try it out at the moment, but I have a similar (yet not the same) requirement.
      I posted my question, maybe you could have an idea:
      Adobe Forms: Restrict font usage in ADS

      Thanks again in any case!



      Author's profile photo Juan Lee
      Juan Lee

      We are implementing this but I have few questions..

      1.  I am seeing different escape  characters - <ESC/>(<ESC/>(201Q<ESC/(s0p2h72v0s0b201T</seq>  is the sequence provided to us.    Why did you have random ".00"  and ".0" in your escape font sequence? do we have to add these ?


      2. how do you display the signature? All i need to do is just create a text input with font "Troy Image 201 Screen Font" ?

      In our current SAPScript format, we are creating a barcode with escape character( HEX value)  as prefix + "abcdef"  as suffix which is defined in print control in SPAD.


      your assistance would be appreciated.