Printing of chinese characters in ecc6 unicode system

Hi,
We are having problem printing out debit memo that have chinese characters. In the preview, the chinese characters are displayed properly.
but when it's printed out, the chinese characters are displayed as "###". we are using device type "SAPWIN: Rel.4.x/SAPIpd 4.09+".
When we use device type "CNSAPWIN", the chinese characters are displayed as "ÂíÀ´Î÷ÑÇ".
Appreciate if anyone can tell me how to solve this problem.

Hi,
It is a printer issue. The printer needs to be configured to support the Chinese chanracter set.
Normally when we are able to view the chinese characters properly in the print preview but not properly displayed on the output it is surely a printer problem.
This kind of problem we faced many times.
Thanks
Ram

Similar Messages

  • Preview and Printing of Chinese Characters in Smartform

    Hi everyone!
    I have a development that needs to output in Smartform a combination of Chinese and English characters, on an English Logon,
    When I debug the form, the Chinese characters are shown in the debug screen, but when it is previewed or printed, it shows garbage.  Can anyone help me with this?
    Thanks a lot! Points for any helpful answer!

    Hi
    check this OSS Note
    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
    Regards
    Anji

  • I cant print out Chinese Characters

    My ibook won't print out Chinese characters at my local 711 here in Taipei? (A Chinese speaking city, needless to say). Its not an issue of Traditional versus Simplified characters and the files are downloaded language transcripts from a learning site I belong to.
    And there is no problem printing out Japanese Kanji which are simply Chinese characters adopted into Japanese.
    Any suggestions on what is wrong here. The learning site doesn't seem to have any idea beyond saving it as a pdf file and trying again. This hasn't worked.

    Tom.
    Yes, the printer is in a 711. Totally generic - Kyocera, every 711 has the same. I connect via usb cable and yes, the documents do display correctly on screen. The application being used is Apples own, I believe, but I have tried Adobe - with no luck.
    Thanks for the Chinese-Mac mailing list.
    The following two suggestions are from the technical help forum of my language learning site:
    1.In your printer options, do you have anything that says "print truetypes as bitmaps" or something like that? That should solve it.
    2. You are talking about printing the pdf's right? If this is the case it is simply a matter of your printshop not having the necessary fontfiles installed. A possible work around is to select all the text in the PDF. Copy+Paste this into word using a widely distributed unicode font like Arial. Then try to print these .doc files at your printshop. If you copy+past the stuff, it will give you a possibility to leave out the traditional or simplified (whatever) you don't need + possibly some titles and logo's and thereby reducing the overall number of pages. Which is a good thing if you are charged by the page.

  • Numbers to be printed in chinese characters

    I have to print the numbers in chinese characters . This is to be done in cheque printing for country china.
    How we can arrive this?
    For  ex:  123 - It should be printed in chinese characters .
    Can anyone tell me??  we have to maintain any table ??

    Hi,
    so even if you login in EN you want to display the name in ZH Chinese and EN as well.
    so in that case you wud have to make use of PERFORM command in Script in which you will retrieve the name based on the language(provided its maintained for both the languages in the Standard Table where you are fetching it from because its not the case of Translation).
    Perform get_name in program <xyz>
    using &kna1-kunnr&
    changing &name_zh&
    changing &name_en&
    Program <xyz>
    form get_name.
    "Here comes the code to read the using parameters in the perform command in script, KNA!-KUNNR
    select single name1
    into wa_name_en "Pass this to name_en
    from kna1
    where kunnr = = <kna1-kunnr>
    and spras = 'EN'.
    select single name1
    into wa_name_zh "Pass this to name_en
    from kna1
    where kunnr = = <kna1-kunnr>
    and spras = 'ZH'.
    Here comes the code to pass the changing parameters to script
    endform.
    Thanks & Regards,
    ShreeMohan

  • Unable to display Chinese character in non-unicode system properly.

    Hi, all
    My system has been upgraded from 4.6C to 6.0 which is non-unicode system. Chinese characters with long length will be cut and cannot wrap automatically. But it's OK to alphabetes. How could I resolve this?
    Thanks..
    TD. Wei

    The simple and easy way to check
    non-unicode character sets are not supported on unicode system any longer. Am I right?
    Transaction code i18N
    Select
    trouble shooting --> printing  test --> smartforms --> multiple scripts, select your output device and see print preview. it will display all supported characters.
    I guess, above information will be useful for closing the thread.
    Regards,
    SaiRam

  • Smartform preview / print of chinese characters

    Hello all
    I am facing this issue:
    After implementing SAP Note 852926, the Smartform preview / printing works fine with Chinese characters in DEV system.
    The Unit test were OK and then the SAP Note has been transported to our TEST env, but the chinese characters are not previewed and printed correctly there.
    I see characters as "»ÆêÍ" instead of "黄晖"
    I can not find any difference in settings / fonts of the two systems. What am I missing?
    Anybody can give a hint?
    Thanks
    Imrich

    Hello Imrich,
    Do you use the same device type to print in th test system?
    To print Chinese characters from SAP, there are some rules:
    1. The form must have Chinese language key 'ZH' or the Chinese texts must be included as standard texts with the language key 'ZH'.
    2. The correct Chinese fonts(e.g. CNHEI or CNSONG) must be used for the Chinese texts in the form.
    3. The form must be processed with a device type that supports the simplified Chinese language.(eg:device type CNSAPWIN).
    Another possibility if you have a Unicode system is tp print via desvice type SWINCF. Here the language of the form doesn't matter.
    Regards,
    Aidan

  • Printing of Chinese characters issue

    Hi all,
    I have a SAPScript Layout with Chinese characters to be displayed.But in the hard-copy printout I do not get the chinese characters printed, instaed it prints some funny characters like '####'.
    How can i get the chinese characters printed ?
    Your ideas are appreciated.
    Thanks,
    Stock

    The logic to build SAP Script and Smart form of all languages will be same. But while working on Asian language please take care of the following points.
    1 Make sure you logon to SAP in Chiness language only.
    2 At the Operating system level install the Chinees language.[Control panel - >Regional and language Option - >language Tab - > Click on Install Files for East Asian languages] If these language already installed then click on Detail and add the Chinese languages[Chinese (PRS) and Chinese(Taiwan).
    3 At SAP level click on Customizing of Local layout[Alt+F12] and click on options.Go to tab I18N and click on Activate the multi-byte functionalities to support check box.
    4.Take care of the Font while assigning to Character formar or paragraph format. Dont use normal font name. Example of chinese phone "CNSONG

  • Double byte language i.e Japanese or Chinese text in non Unicode System

    Hi,
    I have translated text into Chinese and Japanese in a Unicode system and want to move it into a non Unicode system. Would Chinese/Japanese characters display correctly in a non Unicode system when moved from Unicode system.  I am doing translation in ECC60 or SAP 4.7 Unicode system and moving to SAP 4.7 non Unicode system.
    Thanks
    Balakrishna

    Hi Balakrishna,
    in general the transport between Unicode and Non-Unicode systems is supported.
    However there are restrictions, which are outlined in SAP note 638357.
    In your case it is a prerequisite that the objects to be transported are language dependent (text lang. flag is set on the language key - see SAP note 480671) and the languages are properly setup in the target systems.
    For double byte data there is a specific issue when transferring data from Unicode to Non-Unicode:
    In a Non-Unicode system, one double-byte character needs two bytes, therefore e.g. in a 10 char field, 5 double byte chars are fitting. In a Unicode system, you can insert 10 double-byte chars in a 10 char field.  Hence there is a risk of truncating characters in case of Unicode --> Non-Unicode communication.
    Please also have a look at SAP notes 1322715 and 745030.
    Best regards,
    Nils

  • Hexidecimal Non-Allowed Characters in a Unicode System

    We have a function module that we've written to replace non-permitted characters with a space in transfer rules.  We see a lot of invisible hexidecimal characters coming in free form text fields.  This work great for English.  However, we have a Unicode system with other languages installed.  We are also getting the hex characters in other character sets. 
    Has anyone dealt with this issue and if so what was you solution?
    Thanks!
    Al

    Hello aLaN,
    how r u ?
    Hey we have faced the problem with Hexadecimal characters, but not the same issue. In our case the problem was in the Source System. In the DB Tables we had some unwanted characters, that was showing some errors while data loading, particularly ERROR 18.
    So we resolved it by changing the Source System data.
    I have already posted for the hexadecimal issue.... the replies was
    I think this is related to Invalid character issues.. or SPaces setting in RSKC..
    may be you want to look at eh following post..
    Re: invalid characters
    /people/siegfried.szameitat/blog/2005/07/18/text-infoobjects-part-1
    Example:
    let us say..
    1. Check in RSKC for allowed characters..
    2. Add a code in the update rule to restrict the texts contains..
    !"%&''()*+,-./:;<=>?_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' are allowed characters in RSKC transaction then other than the above character is 'Invalid' including the smaller case letters and will throw the hex.. error.
    since this is from database system even 'NULL' datatype from there is not visble to the eyes and can cause the failure.
    Hope this helps
    Best Regards....
    Sankar Kumar
    91 98403 47141

  • LoadUserProfile() creates a profile with Chinese characters on a remote system

    Hi,
    I'm working on an application where LoadUserProfile() is being used to remotely load a user profile on a machine. The token being passed to LoadUserProfile() is obtained from LogonUser(). 
    When doing this only with a Domain Admin user which is added in Active Directory, it creates a profile with Chinese characters in the C:\Users\ folder of the remote machine. Note that this happens only when logging in for the first time with
    this Domain Admin account remotely on that machine.
         // code:
          PROFILEINFO pi;
          memset((void *) &pi, 0, sizeof(PROFILEINFO));
          pi.dwSize = sizeof(PROFILEINFO);
          pi.dwFlags = PI_NOUI;
          pi.lpUserName = (TCHAR *)strUser;   //strUser is the User name, and it shows correctly here when debugging
          if (LoadUserProfile(hToken, &pi))
    //It is actually successful, and comes here when debugging.
    Although the name shows up correctly when debugging (remotely), why is it creating a profile with Chinese characters on the remote machine? 
    TIA,
    Jy

    CreateProfile won't load the profile.  You need to use LoadUserProfile to load the profile, and you need to query for a roaming profile path to put in the lpProfileInfo parameter if you want to include that as well.  You need a token for a
    user to call LoadUserProfile, but not a profile handle.  LoadUserProfile will populate that for you before it returns if it was successful.  See this excerpt from
    https://msdn.microsoft.com/en-us/library/windows/desktop/bb762281%28v=vs.85%29.aspx:
    Upon successful return, the hProfile member
    of PROFILEINFO is
    a registry key handle opened to the root of the user's hive. It has been opened with full access (KEY_ALL_ACCESS). If a service that is impersonating a user needs to read or write to the user's registry file, use this handle instead of HKEY_CURRENT_USER.
    Do not close thehProfile handle.
    Instead, pass it to the UnloadUserProfile function.
    This function closes the handle. You should ensure that all handles to keys in the user's registry hive are closed. If you do not close all open registry handles, the user's profile fails to unload. For more information, see Registry
    Key Security and Access Rights and Registry
    Hives.
    WinSDK Support Team Blog: http://blogs.msdn.com/b/winsdk/

  • Replacing characters in a Unicode system

    I now need to search all imported texts and replace this `` with a regular double-quote ". Now, I know how to do this in non-Unicode systems, but am totally lost when it comes to UC.
    Could someone please help? TIA - Roman.
    P.S. Never mind, I got it...

    Using convert method from cl_abap_conv_in_ce solves the problem.

  • Chinese characters printing in Scripts in SAP

    Hi,
    I would like to print Chinese characters in the scripts in SAP Unicode system.
    We are trying thru SAP but unable to print. If anyone already done this please help me to solve this.
    Thanks,
    Krishna chaitanya.

    hi krishna
    there are various factors like printers, script language settings influencing printing the chinese characters.First you can try to print the hardcoded chinese characters using <b>locl</b> instead of network printers. for this u need to copy the chinese characters and paste in the script using the native login (not nesscary to login to SAP in chinese login). If this works then u need to check the printer model supported by SAP for printing double byte characters. For more information pls post this Q in SCRIPT section of SDN. Also there are couple of notes availbale for troubleshooting this issue.
    thkx
    Prabhu

  • Printing Chinese characters

    Hello all,
    I have been wriiten a program that prints styled Chinese characters,
    using TextLayout class. The strokes are incorrect, some shorter, some longer.
    The TextLayout firstly layout the text and attributes with specified width
    and height (in case word wrapping is needed), then when printing , the Graphics
    object pass into the textLayout.draw method to print the text. I found that
    there is no problem when rendering on screen, and also print using drawString
    method. Is anyone know how to solve this problem? thanks in advance. Here is
    the standalone testing program.
    Jason
    import java.text.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.font.*;
    import java.awt.event.*;
    import java.awt.print.*;
    import java.awt.image.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;
    public class Test extends JFrame {
    public static void main(String[] args) {
    Locale.setDefault(Locale.CHINESE);
    Test test = new Test();
    test.setVisible(true);
    PrinterJob job;
    PageFormat pageFormat;
    DrawingPanel drawingPanel = new DrawingPanel();
    JPanel buttonPanel = new JPanel();
    JButton printButton = new JButton("Print");
    Test() {
    super("Test");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    drawingPanel.setPreferredSize(new Dimension(500, 400));
    getContentPane().add(drawingPanel, BorderLayout.CENTER);
    printButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ae) {
    job = PrinterJob.getPrinterJob();
    pageFormat = job.defaultPage();
    job.setPrintable(drawingPanel, pageFormat);
    job.setCopies(1);
    if (job.printDialog()) {
    try {
    job.print();
    catch (Exception e) {
    System.out.println("FilePrint : " + e);
    buttonPanel.add(printButton);
    getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    pack();
    class DrawingPanel extends JPanel implements Printable {
    static final String chineseText = "\ufe51\ufe50\ufe55\ufe54\ufe56\ufe57\u300c\u300d\u3002\u3010\u3011\u3014\u3015\u4e0d\u662f\u516c\u6709\u7684; \u4e0d\u80fd\u88ab\u5916\u90e8\u5305";
    DefaultStyledDocument document = new DefaultStyledDocument();
    String text = chineseText;
    Vector textVector;
    Vector attrStrVector;
    int x = 0;
    int y = 0;
    int width = 400;
    int height = 400;
    int lineSpacing = 5;
    Color textColor = Color.black;
    DrawingPanel() {
    super(false);
    try {
    SimpleAttributeSet attrSet1 = new SimpleAttributeSet();
    document.insertString(0, chineseText, attrSet1);
    catch (BadLocationException ble) {
    public void draw(Graphics2D g,int x,int y) {
    Vector cache = layout(g);
    textDraw(g, cache, x, y);
    private void textDraw(Graphics2D g2d,Vector cache,int offsetX,int offsetY) {
    int accHeight = 0;
    for (int i=0; i < cache.size(); i++) {
    TextLayout textLayout = (TextLayout)cache.elementAt(i);
    accHeight += textLayout.getAscent();
    g2d.setColor(textColor);
    textLayout.draw(g2d, offsetX + x + 1,
    offsetY + y + 1 + accHeight);
    accHeight += (textLayout.getDescent() + (textLayout.getLeading() * lineSpacing));
    textVector.clear();
    attrStrVector.clear();
    public void paint(Graphics _g) {
    Graphics2D g = (Graphics2D) _g;
    g.setColor(Color.white);
    g.fillRect(0, 0, getWidth(), getHeight());
    draw(g, 10, 10);
    g.dispose();
    public int print(Graphics _g, PageFormat pageFormat, int pageIndex) throws PrinterException {
    if (pageIndex >= 1) {
    _g.dispose();
    return Printable.NO_SUCH_PAGE;
    RepaintManager.currentManager(this).setDoubleBufferingEnabled(false);
    Graphics2D g = (Graphics2D) _g;
    g.setColor(Color.white);
    g.fillRect(0,
    0,
    (int)pageFormat.getWidth(),
    (int)pageFormat.getHeight());
    int newOffsetX = 0;
    int newOffsetY = (int)(pageFormat.getImageableHeight() * pageIndex);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    g.setClip((int) pageFormat.getImageableX(),
    (int) pageFormat.getImageableY(),
    (int) (pageFormat.getImageableWidth()),
    (int) (pageFormat.getImageableHeight()));
    draw(g,
    (int)(x - newOffsetX + pageFormat.getImageableX()),
    (int)(y - newOffsetY + pageFormat.getImageableY()));
    RepaintManager.currentManager(this).setDoubleBufferingEnabled(true);
    g.dispose();
    return Printable.PAGE_EXISTS;
    private Vector layout(Graphics2D g) {
    Vector cache = new Vector();
    float accHeight = 0;
    TextFormatting formatting = new TextFormatting(document, text);
    textVector = formatting.getTextVector();
    attrStrVector = formatting.getAttrStrVector();
    for (int j = 0; j < attrStrVector.size(); j++) {
    String text = (String)textVector.elementAt(j);
    if (text.length() == 0) {
    AttributedString spaceAs = new AttributedString(" ");
    AttributedCharacterIterator spaceAci = spaceAs.getIterator();
    FontRenderContext spaceFrc = g.getFontRenderContext();
    TextLayout spaceTl = new TextLayout(spaceAci,spaceFrc);
    float spaceHeight = spaceTl.getAscent() + spaceTl.getDescent() + spaceTl.getLeading();
    accHeight += spaceHeight;
    cache.addElement(spaceTl);
    continue;
    AttributedString as = (AttributedString)attrStrVector.elementAt(j);
    FontRenderContext frc = g.getFontRenderContext();
    AttributedCharacterIterator aci = as.getIterator();
    LineBreakMeasurer lbm = new LineBreakMeasurer(aci,frc);
    lbm.setPosition(0);
    int i = 0;
    while (true) {
    TextLayout textLayout = lbm.nextLayout(width - 2);
    if (textLayout == null)
    break;
    accHeight += (textLayout.getAscent() + textLayout.getDescent());
    if (accHeight > height - 2)
    break;
    cache.addElement(textLayout);
    accHeight += (textLayout.getLeading() * lineSpacing);
    return cache;
    class TextFormatting {
    DefaultStyledDocument document;
    String text;
    Vector textVector = new Vector();
    Vector attrStrVector = new Vector();
    TextFormatting(DefaultStyledDocument document, String text) {
    this.document = document;
    this.text = text;
    format();
    private void format() {
    boolean quit = false;
    int index = 0, increment = 1;
    int nextIndex;
    int textIndex = 0;
    String subText;
    if (text.indexOf("\r\n") != -1)
    increment = 2;
    while (!quit) {
    if (increment == 2)
    nextIndex = text.indexOf("\r\n",index);
    else
    nextIndex = text.indexOf("\n",index);
    if (nextIndex == -1) {
    subText = text.substring(index);
    quit = true;
    else {
    subText = text.substring(index,nextIndex);
    textVector.addElement(subText);
    AttributedString as = new AttributedString(subText);
    for (int i = 0; i < subText.length(); i++) {
    Element ele = document.getCharacterElement(textIndex++);
    AttributeSet attrSet = ele.getAttributes();
    Font f = document.getFont(attrSet);
    as.addAttribute(TextAttribute.FONT, f, i, i + 1);
    if (StyleConstants.isUnderline(attrSet)) {
    as.addAttribute(TextAttribute.UNDERLINE,
    TextAttribute.UNDERLINE_ON,
    i,
    i + 1);
    attrStrVector.addElement(as);
    index = nextIndex + increment;
    textIndex++;
    public Vector getTextVector() {
    return this.textVector;
    public Vector getAttrStrVector() {
    return this.attrStrVector;

    Amending the above question:
    I am using Window 98 Taiwan Edition, JDK1.3.1 international, and I have set locale to TW (Taiwan)
    Jason

  • Printing Chinese Characters in Smart Forms

    Hi,
    Iu2019m trying to print Chinese characters via smart forms. However during print preview or print, all Chinese characters are showing as # symbols.
    I have researched and implemented for some possible solutions posted in the forum like:
    a.) Setting the regional language control panel.
    b.) Activating the multi-byte function in I18N.
    c.) Checked the output device is SWINCF.
    d.) Control parameter language is ZH (Chinese).
    Unfortunately it still doesnu2019t solve the problem. Any input is highly appreciated.
    With regards,
    Marc

    Remark following basics:
    Forms:
    Language of the form must be: "ZH".
    Due to a SAPNOTE only font family CN* (CNSONG etc.) is mapped.
    For frontend print, you must install chinese true type on you local PC and print via "CNSAPWIN" .
    For backend print, you must install neccesaary fonts in your printer to the resident fonts. You must use a printer like "CNHPL4" or so.
    For PDF archiving, you must upload truetype fonts to application server -> basis guys.
    Cascading Fonts:
    If you mix different subfonts to unicode areas, you must use CNSAPWINCF.
    Until now, only frontend printing is available.
    Note:
    Spool created for back end print with print preview is only a simulation of getting a picture of the output created with front end technology. So it can differ, when the printer does not have the resident fonts.
    Regards,
    Christian

  • Issue with Chinese characters while sending IDOCs from PI to SAP system

    Hi,
    We are working on File to IDOC scenario where in some of the fields are having Chinese characters. In SAP system, we noticed that the Chinese characters are getting replaced with # where as in PI output payload we are able to see the correct Chinese characters. The systems involved are PI 7.4 and SAP ECC -6.0.

    Like in dual stack where we have an option to choose unicode/ non-unicode, i don't see any option in single stack.
    However not sure if it works but you can give a try..
    I assume you have created the RFC destination in NWA.
    Go to RFC destination ->Specific Data -> Advanced Settings - here we have an option to mention the code page.
    You might want to mention the code page for chinese char and see if it helps..
    Before doing this, do checkMark's suggestion.

Maybe you are looking for