]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
The font loading code now reads the encoding value from the XML font metrics file...
authorJeremias Maerki <jeremias@apache.org>
Tue, 3 Jan 2006 13:08:45 +0000 (13:08 +0000)
committerJeremias Maerki <jeremias@apache.org>
Tue, 3 Jan 2006 13:08:45 +0000 (13:08 +0000)
Note that it is necessary to set the encoding value in the font metrics file manually since it cannot be extracted from the PFM file reliably, i.e. for "Symbol" use "SymbolEncoding" and for "ZapfDingbats" use "ZapfDingbatsEncoding".

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@365623 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fonts/FontReader.java
src/java/org/apache/fop/fonts/SingleByteFont.java
status.xml

index 131f50a6a12d6a37c7719aec10f087e0c23faf92..5953c91fbcfa3050651f458821177da57b6795c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2004,2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -218,6 +218,10 @@ public class FontReader extends DefaultHandler {
             returnFont.setFontName(content);
         } else if ("ttc-name".equals(localName) && isCID) {
             multiFont.setTTCName(content);
+        } else if ("encoding".equals(localName)) {
+            if (singleFont != null && singleFont.getFontType() == FontType.TYPE1) {
+                singleFont.setEncoding(content);
+            }
         } else if ("cap-height".equals(localName)) {
             returnFont.setCapHeight(getInt(content));
         } else if ("x-height".equals(localName)) {
index 26bba54a605dd4819eba72b7fa2ca7f86abafb7a..f03f6f7b5264dbf2908f8c1a4cfc0d5207e3c778 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2004,2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,14 +23,26 @@ package org.apache.fop.fonts;
  */
 public class SingleByteFont extends CustomFont {
 
-    private final CodePointMapping mapping
-        = CodePointMapping.getMapping("WinAnsiEncoding");
+    private CodePointMapping mapping;
 
     private String encoding = "WinAnsiEncoding";
 
-    private int width[] = null;
-
+    private int[] width = null;
 
+    /**
+     * Main constructor.
+     */
+    public SingleByteFont() {
+        updateMapping();
+    }
+    
+    /**
+     * Updates the mapping variable based on the encoding.
+     */
+    protected void updateMapping() {
+        mapping = CodePointMapping.getMapping(getEncoding()); 
+    }
+    
     /**
      * @see org.apache.fop.fonts.FontDescriptor#isEmbeddable()
      */
@@ -46,6 +58,15 @@ public class SingleByteFont extends CustomFont {
         return encoding;
     }
 
+    /**
+     * Sets the encoding of the font.
+     * @param encoding the encoding (ex. "WinAnsiEncoding" or "SymbolEncoding")
+     */
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+        updateMapping();
+    }
+
     /**
      * @see org.apache.fop.fonts.FontMetrics#getWidth(int, int)
      */
@@ -59,10 +80,6 @@ public class SingleByteFont extends CustomFont {
     public int[] getWidths() {
         int[] arr = new int[width.length];
         System.arraycopy(width, 0, arr, 0, width.length - 1);
-        /*
-        for (int i = 0; i < arr.length; i++)
-            arr[i] *= size;
-        */
         return arr;
     }
 
index df86f50020471ad79d064d323a5c9188f69e4bcf..41c1e55b72679476ac0540d0cbbd716fe61a91c4 100644 (file)
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="JM" type="add">
+        The font loading code now reads the encoding value from the XML font metrics file
+        so that fonts like Symbol and ZapfDingbats can be embedded explicitely (Required by PDF/A).
+      </action>
       <action context="Code" dev="SP" type="update">
         Improvements to the code for inline block content.
       </action>