]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
new dev fonts.xml file to store some useful links and information
authorKeiron Liddle <keiron@apache.org>
Wed, 20 Nov 2002 09:55:49 +0000 (09:55 +0000)
committerKeiron Liddle <keiron@apache.org>
Wed, 20 Nov 2002 09:55:49 +0000 (09:55 +0000)
about font work
Submitted By: Victor Mote <vic@outfitr.com>

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

src/documentation/content/xdocs/dev/book.xml
src/documentation/content/xdocs/dev/fonts.xml [new file with mode: 0644]

index 7d4a73c434efe0c5ddee301a176379d8a8e8fa26..74e016c4dfde31f79fcd462e5febad4b2413fd45 100644 (file)
@@ -21,6 +21,7 @@
     </menu>
     <menu label="Extras">
       <menu-item label="SVG" href="svg.html"/>
+      <menu-item label="Fonts" href="fonts.html"/>
     </menu>
     <menu label="Developers">
       <menu-item label="Design" href="../design/index.html"/>
diff --git a/src/documentation/content/xdocs/dev/fonts.xml b/src/documentation/content/xdocs/dev/fonts.xml
new file mode 100644 (file)
index 0000000..48207d7
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" standalone="no"?>
+
+<!-- $Id$ -->
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
+    "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
+
+<document>
+  <header>
+    <title>Fonts (Developer Information)</title>
+  </header>
+  <body>
+    <section>
+      <title>Goals</title>
+      <ul>
+        <li>refactor existing font logic for better clarity and to reduce duplication</li>
+        <li>parse registered font metric information on-the-fly (to make sure most up-to-date parsing is used??)</li>
+        <li>resolve whether the FontBBox, StemV, and ItalicAngle font metric information is important or not -- if so, parse the .pfb file to extract it when building the FOP xml metric file</li>
+        <li>handle fonts registered at the operating system (through AWT)</li>
+        <li>add support for parsing OpenType fonts</li>
+      </ul>
+    </section>
+    <section>
+      <title>Issues</title>
+      <ul>
+        <li>Why are we using our own font metric parsing and registration system, instead of the AWT system provided as part of Java?
+          <ul>
+            <li>Answer 1: Many of our customers use FOP in a so-called "headless" server environment -- that is, the operating system is operating in character mode, with no concept of a graphical environment. We need some mechanism of allowing these environments to get font information.</li>
+            <li>Answer 2: At some level, we don't yet fully trust AWT to handle fonts correctly. There are still unresolved discrepancies between the two systems.</li>
+          </ul>
+        </li>
+      </ul>
+    </section>
+    <section>
+      <title>Implementation</title>
+      <p>There are two main font functions needed within FOP:</p>
+      <ul>
+        <li>provision of a font object to be used in layout</li>
+        <li>embedding of a font file in output (such as PDF)</li>
+      </ul>
+      <p>For the first of these, we will implement something along the lines of a "Facade" Structural Pattern to hide the differences between the various font types and font sources from the rest of the system.
+Public classes will consist of TypeFaceFamily, TypeFace, and Font. (TypeFace roughly corresponds to the contents of a normal font file, while Font is a general typeface implemented at a specific point size, and perhaps with other specific parameters).
+When another part of FOP requests a font object, existing font objects will be checked first, and an appropriate one returned if possible.
+If not, the Font logic should resolve the TypeFace and TypeFaceFamily if possible, create a Font object, and return it.</p>
+    </section>
+    <section>
+      <title>Resources</title>
+      <section>
+        <title>Type 1 Fonts</title>
+        <ul>
+          <li><link href="http://partners.adobe.com/asn/developer/pdfs/tn/T1_SPEC.PDF">Adobe Type 1 Font Format</link></li>
+          <li>According to the Adobe web site, the documentation for the font metrics files (.pfm = printer font metrics) is written and controlled by Microsoft, since it is actually a workaround to allow Type 1 fonts to be used on a GUI screen in Windows. However, the document does not appear to be on the Microsoft web site. The best resource for this information is <link href="http://partners.adobe.com/asn/developer/pdfs/tn/5178.PFM.pdf">Adobe Technical Note #5178</link>: Building PFM Files for Postscript-Language CJK Fonts</li>
+          <li>FOP does not currently use the Adobe Font Metrics file, but the specification can be found in <link href="http://partners.adobe.com/asn/developer/pdfs/tn/5004.AFM_Spec.pdf">Adobe Technical Note #5004</link>: Adobe Font Metrics File Format Specification</li>
+          <li><link href="http://partners.adobe.com/asn/developer/pdfs/tn/5040.Download_Fonts.pdf">Adobe Technical Note #5040</link>: Supporting Downloadable Postscript Language Fonts may also include some useful information.</li>
+        </ul>
+      </section>
+      <section>
+        <title>TrueType Fonts</title>
+        <ul>
+          <li>The <link href="http://www.microsoft.com/typography/tt/ttf_spec/ttspec.zip">TrueType specification</link></li>
+        </ul>
+      </section>
+      <section>
+        <title>OpenType Fonts</title>
+        <ul>
+          <li>The <link href="http://download.microsoft.com/download/Typography/archive/v1.4/WIN98MeXP/EN-US/otsp14.exe">OpenType specification</link></li>
+          <li>The Adobe <link href="http://www.adobe.com/type/opentype/main.html">Introduction to OpenType fonts</link> page has some useful general information and links.</li>
+        </ul>
+      </section>
+    </section>
+  </body>
+</document>
+
+<!-- Last Line of $RCSfile$ -->