Skip to Content

How to place an SE78 image on an Adobe Form

The following five steps show how to place an SE78 graphic on an Adobe Form.


In this example, we will add an existing color logo named Z_LOGO to an existing Adobe form,
ZRUOTC_SERVSTAR_PDF. First, make sure the logo exists in SE78 as a bitmap image and that
the Adobe form and interface exist as well.
(1) Go to transaction SE78 and ascertain Z_LOGO exists by following this path:
Form Graphics->Stored on Document Server->GRAPHICS General Graphics->BMAP Bitmap Images.
Do a print preview to see the graphic.
6-20-2014 10-35-58 AM.png

(2) Go to transaction SFP. Select the Interface radio button and click the Change icon.

Under the Global Definitions folder double click into Global Data and add these fields.

Variable name     Type Assignment     Type Name                         Default Value
V_FIELD                 TYPE                       XSTRING
V_BTYPE               TYPE                       TDBTYPE                              ‘BCOL’
V_ID                       TYPE                       TDIDGR                                 ‘BMAP’
V_OBJECT            TYPE                       TDOBJECTGR                      ‘GRAPHICS’
V_NAME                TYPE                       STXBITMAPS-TDNAME       ‘Z_LOGO’
G_LOGO               TYPE                        XSTRING

6-20-2014 10-38-01 AM.png

Do a syntax check.


(3) Under the Initialization folder, double click into the Code Initialization area.

Create the following logic.

* Call method get_bds_graphic_as_bmp to retrieve z_logo. Note that v_field and g_logo
* MUST be typed as XSTRING NOT string or the conversion of the form from SE78 will
* not work and the logo will NOT display on the Adobe form. On the layout tab of the
* Adobe form, bind z_logo to the graphics node created here in the Interface, NOT
* directly to g_logo. Adobe sees g_logo as a text field.
CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
p_object           = v_object      ” ‘GRAPHICS’
p_name            = v_name      ” Name of the SE78 logo inside Quotes
p_id                  = v_id            ” ‘BMAP’
p_btype            = v_btype      ” ‘BCOL’ for color, ‘BMON’ for Black & White
p_bmp             = v_field        ” v_field and g_logo must be typed xstring
not_found        = 1
internal_error   = 2
OTHERS         = 3.
g_logo = v_field.                       ” g_logo and v_field must be typed xstring

6-20-2014 10-39-54 AM.png

Do a syntax check, save, and back out of the Interface.


(4) Select the Adobe Form radio button and click the Change Icon.

Go to the Context tab.
Expand the Global Data folder. You should see the 6 fields created in the Interface.

Under the Context bar on the upper right window, right click on the top folder.

6-20-2014 10-44-59 AM.png
Choose Create, Graphic and give it a name.

Under the Global Data folder on the upper left window locate the G_LOGO field.
Drag and drop G_LOGO on top of your new Graphics Node.

Under Properties at the bottom right window, change the Graphic Type Value.
It defaults to ‘Graphic Reference’. Change it to ‘Graphic Content’.

6-20-2014 10-56-48 AM.png
Enter G_LOGO as the Graphic Content field.
Enter ‘IMAGE/BMP’ with the quotes as the MIME Type.
6-20-2014 10-59-20 AM.png
(5) Go to the Layout Tab of the Adobe form.
Expand the standard palette object library and choose an Image Field.

6-20-2014 11-01-58 AM.png
Drag and drop the Image field to the location on the form where you want the logo displayed.

Under the Field tab make sure the URL field is blank because this is not a static logo.

6-20-2014 11-10-37 AM.png
Check the Embed Image Data box. However, it seems to work checked or unchecked.
Choose Scale Image Proportionately.
Under the Binding Tab, bind the image field to the Graphic Node, not to the G_LOGO field.

6-20-2014 11-11-55 AM.png

Do a syntax check on the interface and form. Save and activate.

You must be Logged on to comment or reply to a post.
  • Thanks for this Brad, I was having trouble with the MIME type thing.

    By the way, this might come as a surprise to you, but I didn't put any code in the interface. I hate having code in multiple places and I think this is really bad in terms of readability.

    So, I added only an XSTRING type field in the interface, and I get the content in the printing program.



  • Hi Brad,

    I have followed the steps provide by you. But the image is not appearing. May I know what am I missing please.

    Below are the screen shots of the interface, adobe form and its output.

  • I know this is very old but I found it useful and thought I would add a couple of comments

    1] I agree that Bruno's approach to pass the xstring in the form parameters instead of creating code within the interface is cleaner

    2] MIME type 'IMAGE/BMP' is actually incorrect, it works more by luck than judgement, probably the render engine defaults to bitmap. The correct value is 'image/bmp' - lower case is important:

    3] Don't add the xstring data to the context. The graphic object in the context can still read the xstring data 'on the interface side'. By adding the xstring to the context side, you are adding a 2nd copy of the data in a different format which is still rendered into XML and then sent to the form processor.


    The way I think of the context, is a kind of ABAP layer which SAP created to make Adobe forms a little more familiar for SAP developers.
    Adobe forms use a single XML as input data, it has no knowledge of SAP dictionary concepts. At runtime, the context is used to dynamically generate this input XML data, which is then sent to the actual Adobe form rendering engine.