Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Smartform-PDF-Printer fonts

kiran_k8
Active Contributor

Hi Folks,

Here we have designed a Invoice-smartform and converted it into PDF which is by default storing in c-drive as mentioned in the code.When we open the Pdf it is displaying it fine but when given a printout except the logo nothing is getting printed,I mean it is showing all junk characters.May I know what is the problem and how to rectify the same.

Points will be given.

K.Kiran.

1 ACCEPTED SOLUTION

kiran_k8
Active Contributor
0 Kudos

Hi Folks,

The font I am using in smartform is helve.When I am taking the printout without converting it into pdf it is coming fine.When I download this smartform into pdf it is getting dowloaded finely.But when I am taking the printout of this pdf I am getting junk.The problem is only when I am taking the prinout of this pdf.

I cross checked with other pdfs which are coming finely.So,I am not able to say whether it is the prob with the printer or not

Can anyone help me with this.

K.Kiran.

19 REPLIES 19

Former Member
0 Kudos

Hi,

Check the printer and its settings. something wrong with them

Printer Drivers are not supporting the font of the Script output/pdf.

Have to load the Drivers and see, take the help of a basis person.

reward if useful

regards,

Anji

Former Member
0 Kudos

hi

good

i hope you mean to say that the pdf file stored in the c drive is giving problem while taking print out ,

in that case plz check with your printer configuration that is connected with the system,if you have store the particular file in the C drive then there should not be any prob to take the print out for the same.

Thanks

mrutyun^

0 Kudos

Tripathy,

It is not specific to any drive but problem with the printout only.When opened pdf is exactly fine but the problem is only with the prinout.

If I have to change the printer configurations what needs to be done?

K.Kiran.

former_member223537
Active Contributor
0 Kudos

Hi Kiran,

This is printer problem. The fonts which you have used to create a PDF through SAP, might not be supported by the printer or might not be available on your system. Check the fonts. Try changing the font to TIMES and then convert to PDF -> fire a print.

Goto SP01. Get the spool no. and then download the spool into pdf using RSTXPDF4. Now fire the print and check.

Else check whether your printer supports the fonts.

Best regards,

Prashant

Former Member
0 Kudos

Hi Kiran,

If Smartform is successfully converted to PDF, and you are not able take the print out in the sense it is the problem with your printer driver. Can you able to print other PDF files perfectly? If not it is the problem with Printer driver. If you able to print other PDF files, then it is the problem with your conversion. Generally when we use to convert smartform/script into PDF, we will use SAP printer names. So just debugging from that point so that you will get a solution.

0 Kudos

Vijay,

What you said is right.I am getting the printout from other pdfs fine, only the invoices that are converted into pdf is having this problem.Can you please throw some light on SAP Printer names?

K.Kiran.

kiran_k8
Active Contributor
0 Kudos

Hi Folks,

I am using the Font type HELVE in my Invoice-Smartform.I had checked the fonts in c:/windows/fonts and found that HELVE is not loaded there.Now if I ask the sys admin to load this font I think it will solve the problem.

But even the client has to upload the same fontstyle in his pc,then and then only it will work right?

What is the best solution.

K.Kiran.

Former Member
0 Kudos

Hi Kiran,

HELVE is the font avialable only in SAP. While converting Smartform/script into PDF it will use appropriate common font from windows , usuallly arial/times. So the problem is only with your printer driver.

0 Kudos

Vijay,

Do you mean to say that helve will be converted into arial/times automatically when converted to pdf ?

But I am getting the other pdf files printout finely.So,are you sure that it is the problem with the printer?

K.Kiran.

Former Member
0 Kudos

Hi Kiran,

Please check following SAP notes, which helps you to solve the problem,

960341

776507

0 Kudos

Vijay,

At this point I don't have access to sap notes.How to solve this problem?

K.Kiran.

0 Kudos

Vijay,

Thank you very much.The notes what you gave has helped me alot.Even though I did applied any notes but the documentation there has helped me in solving the problem.Actually I gave outputoptions-tdprinter = 'PDF1'

instead of outputoptions-tdprinter = 'POST2'.

I have one more doubt.Acutally I had gone through the notes 960341.Initialli it has shown version 4 but when I logged again it is showing only version 2.I tried again but in vain.In that version 4 it is showing a perform where we need to add a statement.But in my program I am not using such a perfrom.In such a case what needs to be done.

At this point by changing it to POST2 my problem got solved.But, I would like to know what needs to be done if I have to keep it as PDF1 and not using the perfrom mentioned in the notes in my program.

Kindly let me know.

Points given.

K.Kiran.

kiran_k8
Active Contributor
0 Kudos

Hi Folks,

The font I am using in smartform is helve.When I am taking the printout without converting it into pdf it is coming fine.When I download this smartform into pdf it is getting dowloaded finely.But when I am taking the printout of this pdf I am getting junk.The problem is only when I am taking the prinout of this pdf.

I cross checked with other pdfs which are coming finely.So,I am not able to say whether it is the prob with the printer or not

Can anyone help me with this.

K.Kiran.

Former Member
0 Kudos

Hi Kiran, see the OSS notes: 960341 and 776507.

I downloaded and copying here, Hope this will be helpful

OSSNote:960341

______________

Symptom

In some device types (e.g HPLJ4, HPLJ5) you experience non-uniform character spacing in the PDF document after the PDF conversion of SAPscript or Smart Forms documents, using HELVE or TIMES fonts. You want to know the reason.

Other terms

CONVERT_OTF, SAPscript, Smart Forms

Reason and Prerequisites

The problem is not due to an error in the PDF converter but due to the fact, that the printer font, underlying the device type (e.g. Univers or CG Times in PCL-5 device types), is not available for the PDF converter and is either not available in Adobe Reader. The PDF converter has to try to simulate the layout of the printer font by means of a font which is predefined in Adobe Reader. This is done by assigning the letter widths of the printer font to the font used in Adobe Reader.

The PDF file contains a table with letter widths, used by Adobe Reader in the output of text, for each used printer font (except PostScript fonts).

Example:

%Charwidth values from HP4300 HELVE 060 normal

/Widths

[ 278 333 500 633 633 1000 758 333 333 333 633...

Adobe reader converts this width table, by modifying the space between each character, so that the specified letter width (= space between the current and the next letter) is kept.

This 'Simulation' of printer fonts results in the sometimes visible irregular spaces in PDF.

The PDF converter always uses the Helvetica Adobe PostScript font for the display of HELVE and the Times Roman Adobe PostScript font for the display of TIMES. However, for these Adobe PostScript fonts, Adobe Reader often uses a Windows TrueType font, which differs slightly from the original PostScript font.

Solution

Workaround: Use the POST2 PostScript device type or the PDF1 PDF device type for the PDF conversion of documents in the Latin-1 character set. They both use the Adobe PostScript fonts Helvetica or Times Roman for the HELVE/TIMES printer fonts.

Header Data

Release Status: Released for Customer

Released on: 30.06.2006 12:44:06

Priority: Recommendations/additional info

Category: Consulting

Primary Component: BC-CCM-PRN Print and Output Management

Secondary Components: BC-SRV-SCR SAPscript

OSS Note: 776507

___________________

Symptom

Documents printed via SAPscript or SmartForms do not print with correct special characters, e.g. ### prints instead of Japanese or Russian characters. What to do?

Other terms

SAPscript, SmartForms, printing, device types, OTF

Reason and Prerequisites

Help required to choose proper fonts in a SAPscript or SmartForm

Solution

When using SAPscript or SmartForms to print (or email or fax) a form from a business application, many factors influence the outcome of the actual text within the form. All these factors must be checked in order to ensure a correct printout:

1) The language version of the form used to produce the printout.

Example: If you want to print a French invoice, you need to have a FR version of your SAPscript or SmartForms invoice form RVINVOICE01. And the application program must specify the corresponding language key (FR) when calling the SAPscript or SmartForms API.

2) The font selections specified in the form (possibly also in a SAPscript style or SmartStyle used in a form).

Example: In a SAPscript form or a SmartStyle you need to specify HELVE if you want to print German text in Helvetica (or similar) font. If you want to print Japanese text, HELVE is not a valid choice but you need to specify a Japanese font like JPMINCHO in your Japanese form.

3) The output character set of the device type

Every printer in transaction SPAD has a "device type" assigned. Device types used by the spooler for printing support only one single specific output character set. All text from the form has to be converted (using SAP's built-in character conversion mechanism) to this output character set.

A character set can typically support either a single language (e.g. Shift-JIS which supports only Japanese) or a set of languages (e.g. ISO 8859-1, which supports Western-European languages). It is possible that a given language (such as German) can be supported by several output character sets, e.g. you may use either ISO 8895-1 (Latin-1) or ISO 8859-2 (Latin-2) to represent German text. This is so because both character sets contain the special characters used in German.

Example: HPLJ4000 is a HP LaserJet device type supporting the ISO 8859-1 (Latin-1) character set. ISO 8859-1 can be used to represent e.g. Dutch, English, French, German, Spanish, Swedish but NOT Russian or Japanese.

As a consequence, it is ok to use HPLJ4000 to print English, German French etc. but not for Japanese or Russian.

4) The set of available printer fonts for a given device type

When formatting a document, SAPscript and SmartForms perform an automatic mapping of the font definitions in the form (e.g. "HELVE 14 point bold") and the available printer fonts of the device type. A replacement printer font is chosen, should the specified font selection not be available in the device type. Now this replacement can be problematic if a language-specific font, such as Chinese CNSONG, is specified in a form and it gets replaced by a font which does not support this language, e.g. COURIER.

To solve this problem, font families in SE73 have language attribute assigned, e.g. some fonts are characterized as being suitable only for certain languages. And when a replacement has to be chosen because the original font from the form is not available in the device type, a replacement font is chosen which has the same language attributes.

If no fonts for the language in question exist in the device type, the resulting font will not be able to print the special characters and you will see "wrong" output characters in the printout.

Note on SAPscript/SmartForms Print Preview:

The OTF Print Preview available in Windows GUI (e.g. from transaction SP01) will sometimes not show the "wrong" characters which appear on the final printout. Here is the reason: since the Print Preview runs in Windows environment, it will use Windows fonts to represent the actual printer fonts. A Windows font typically has more available characters (i.e. covers more character sets) than are actually available in a printer's resident font.

A typical example where the Print Preview will differ from the printout is here: if you have a Chinese PCL5 printer such as CNHPLJ4 and use the Western Latin font COURIER in your document, the print preview will show you Chinese characters if you (by accident) tried to format Chinese characters in COURIER font. This is because Windows will automatically choose a font that can output Chinese characters (which is actually not Courier). But when you print the job on an actual PCL5 printer with resident Western and Chinese fonts, the Courier font will not print any Chinese characters but Western special characters instead, because the printer's resident Courier font does not include Chinese characters.

Rule of thumb: all Asian device types (e.g. CNHPLJ4, JPHPLJ4, JPPOST, KPHPLJ4) support not only Asian fonts but also COURIER, HELVE and TIMES fonts. But these Latin fonts can only be used to print English text, not Chinese/Japanese/Korean characters.

Which fonts are suitable for a given language?

Language(s): Font family to use in a form:

                          • Latin-1 (Western Europe/Americas) *******

DE,EN,FR,ES,NL,SV COURIER, HELVE, TIMES

(LETGOTH, LNPRINT)

                          • Latin-2 (Central Europe) ****************

PL, CZ COURIER, HELVE, TIMES

                          • ISO 8859-4 (Baltic) *********************

ET, LT, LV COURIER, HELVE, TIMES

                          • ISO 8859-5 (Cyrillic) *******************

BG, RU, SR, UK COURCYR, HELVCYR, TIMECYR

                          • ISO 8859-7 (Greek) **********************

EL COUR_I7, HELV_I7, TIME_I7

                          • ISO 8859-8 (Hebrew) *********************

HE COURIER, HELVE, TIMES

                          • ISO 8859-9 (Turkish) ********************

TR COURIER, HELVE, TIMES

                          • Simplified Chinese **********************

ZH CNHEI, CNKAI, CNSONG

                          • Japanese ********************************

JA JPMINCHO, DBMINCHO, DBGOTHIC

                          • Korean **********************************

KP KPBATANG, KPDODUM, KPGULIM

KPGUNGSE, KPSAMMUL

                          • Traditional Chinese *********************

ZF TWDPHEI, TWMING, TWSONG

                          • Thai ************************************

TH THANGSAN, THDRAFT, THVIJIT

                          • Arabic (Unicode systems only) ***********

AR ANDALE_J

Verify your output by examining the OTF data

When analysing printing problems of this type, be sure to check the OTF data which gets produced by SAPscript or SmartForms. OTF or "Output Text Format" is the intermediate page-description format generated from SAPscript or SmartForms. OTF will contain the final printer font names and character set/language identifiers which help to solve the problem. OTF will even name the form and the language of the form used to create the output.

The easiest way to do this is to create a spool request from your application, run transaction SP01, use menu

Goto->Display Requests->Settings

and choose

Display Mode: Raw

Now display your spool request. If this is a SAPscript or SmartForms spool request, you will see OTF data. Each line represents one OTF command, every command starts with a 2-character cmd identifier and possibly some cmd parameters follow.

Here is an excerpt from a sample OTF file where we highlight the most interesting commands:

//XHPLJ8000 0700 00000000001

IN04EALEXTEST_ZEBRA

IN05%PAGE1

OPDINA4 P 144 240 1683811906000010000100001

IN06%WINDOW2

MT0024401289

CP11000000E

FCHELVE 120 00109XSF100SF101110000067E X

UL +0000000000000

SW00067

CT00000000

ST0453037Dieses SF hat Stil ALEXTEST_ZEBRA mit

...

The 1st line with the // (Control) command reveals the device type usedto print: HPLJ8000

//XHPLJ8000 0700 00000000001

The 2nd line (IN = Info command) shows the name and (internal 1-char)language key of the form:

IN04EALEXTEST_ZEBRA

In this case it is the English (E = EN) SmartForm ALEXTEST_ZEBRA

The OP-line (OP = Open Page) gives the page format used in the form, it is DINA4 Portrait orientation:

OPDINA4 P 144 240 1683811906000010000100001

The CP (CodePage) cmd shows the SAP system codepage used to code the text and the active language. In our case it is codepage 1100 and language E = EN = English.

CP11000000E

Finally, the FC-cmd (Font Call) lists a printer font selected within SmartForms. Please note that every SmartForm has a designated default SmartStyle under "Form Attributes->Output Options". In addition, every text node can have a SmartStyle attached (which will override the definitions from the default style for the text). In our case the resulting printer font that was selected is HELVE 12.0 pt bold-off, italic-off.

FCHELVE 120 00109XSF100SF101110000067E X

Header Data

Release Status: Released for Customer

Released on: 22.08.2005 09:57:20

Priority: Recommendations/additional info

Category: Customizing

Primary Component: BC-CCM-PRN Print and Output Management

Secondary Components: BC-SRV-SCR SAPscript

BC-SRV-SSF Smart Forms

regards,

Anji

Former Member
0 Kudos

Hi Anji Reddy

I am having little bit similar type of issue,Instead of printer,For some of my PO's in the print prievew PDF is not formatted properly and lot of information missing,so pleas help out.

Thanks & Regards

Former Member
0 Kudos

Hi,

As you have mentioned that other PDF's ( converted from SAP Script ) works fine.

The issue could be due to the fonts used.

You could also cross check if the PDF's that are working fine has the same fonts.. If they do not use the same font,, then you could be sure that by implemmenting the OSS note it would work fine.

Regards.

Message was edited by:

Sandipan Choudhuri

kiran_k8
Active Contributor
0 Kudos

PROBLEM SOLVED

0 Kudos

Would be nice to know, if you posted how you solved it.

Kind regards

Former Member
0 Kudos

Hi All,

While Converting from Spool to PDF the font is changed from Arial to Courier.

Plz can any one help ?

Thanks,

Neha.