tore        01/08/02 12:40:56

  Modified:    src/org/apache/fop/pdf PDFOutline.java
  Log:
  Submitted by: SASAKI Suguru ([EMAIL PROTECTED])
  Adds support for unicode characters in bookmarks.
  
  Revision  Changes    Path
  1.3       +11 -15    xml-fop/src/org/apache/fop/pdf/PDFOutline.java
  
  Index: PDFOutline.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/pdf/PDFOutline.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PDFOutline.java   2001/07/30 20:29:30     1.2
  +++ PDFOutline.java   2001/08/02 19:40:56     1.3
  @@ -1,5 +1,5 @@
   /*
  - * $Id: PDFOutline.java,v 1.2 2001/07/30 20:29:30 tore Exp $
  + * $Id: PDFOutline.java,v 1.3 2001/08/02 19:40:56 tore Exp $
    * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
    * For details on use and redistribution please refer to the
    * LICENSE file included with these sources.
  @@ -147,28 +147,24 @@
       }
   
       /**
  -     * escape parens, and other special chars for PDF
  +     * escape string (see 3.8.1 in PDF reference 2nd edition)
        */
       private String escapeString(String s) {
           StringBuffer result = new StringBuffer();
           if (s != null) {
               int l = s.length();
   
  +            // byte order marker (0xfeff)
  +            result.append("\\376\\377");
  +            
               for (int i = 0; i < l; i++) {
                   char ch = s.charAt(i);
  -                if (ch > 127) {
  -                    result.append("\\");
  -                    result.append(Integer.toOctalString((int)ch));
  -                } else {
  -                    switch (ch) {
  -                    case '(':
  -                    case ')':
  -                    case '\\':
  -                        result.append('\\');
  -                        break;
  -                    }
  -                    result.append(ch);
  -                }
  +                int high = (ch & 0xff00) >>> 8;
  +                int low = ch & 0xff;
  +                result.append("\\");
  +                result.append(Integer.toOctalString(high));
  +                result.append("\\");
  +                result.append(Integer.toOctalString(low));
               }
           }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to