Issue 69129

Summary: Add support for Graphite font technology
Product: gsl Reporter: hdu <hdu>
Component: codeAssignee: stefan.baltzer
Status: VERIFIED FIXED QA Contact: issues <issues.openoffice.org>
Severity: trivial    
Priority: P3 CC: devel, fonts-bugs, gleppert, hdu, ich, issues, kpalagin, nicolas.mailhot, pagalmes.lists, philipp.lohmann, www.openoffice.org
Version: OOo 2.0.3   
Target Milestone: OOo 3.2   
Hardware: All   
OS: All   
URL: http://graphite.sil.org/
Issue Type: FEATURE Latest Confirmation on: ---
Developer Difficulty: ---
Issue Depends on: 93645    
Issue Blocks:    

Description hdu@apache.org 2006-08-31 08:27:55 UTC
Having support for Graphite font technology would be great.
Comment 1 a_p_sysoev 2006-12-25 20:17:29 UTC
It will be very good to add complete support for Graphite font technology with
possibilty  of using features. I know that there exest some ooo builds with the
graphite support, but unfortunately there is no support for Graphite features in
them.
Comment 2 a_p_sysoev 2006-12-25 21:00:24 UTC
Here is some information on Graphite enabled builds of OOo:

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OOo_20_graphite

Unfortunately graphite features are not supported.
Comment 3 a_p_sysoev 2007-01-26 12:31:46 UTC
I have found some posts concerning Graphite technology in the OOo mailing 
archive and have decided to repost them here. They date back to 2003.

Date: Tue, 25 Mar 2003 22:43:53 -0700
From: M. Evans <datafeed@gmx.net>
Content-Type: text/plain; charset=us-ascii
Subject: [gsl-dev] Graphite and OpenOffice


This note is addressed primarily to the Graphite group which has
expressed interest in OpenOffice compatibility and cross-platform
deployment. It's also an alert to the OO folks of Graphite's
existence: http://graphite.sil.org

I know that one or two Graphite folks monitor OO, but you may not know
the specific OO project I wish to introduce here.

OpenOffice is in the concept stages of designing a new cross-platform
graphics layer and widget toolkit for OpenOffice. This project has no
official title, but some have called it 'Toolkit 2.' Visit the GSL
project mailing list archives for details:
http://gsl.openoffice.org/servlets/SummarizeList?listName=dev
http://gsl.openoffice.org/servlets/ProjectDocumentList

The relevance for Graphite is that now is an ideal time to contribute
ideas to OO. What would you like to see in Toolkit 2? Put another way,
what frustrations have you encountered in existing APIs and toolsets
that you would like to see addressed?

There is some talk of supporting prepress requirements in Toolkit 2.
You may have some special remarks about that.

The current development version of OpenOffice handles right-to-left
languages, but whether it handles mixed text (like Graphite) I do not
know. Graphite's objectives are more advanced than OO's; but there is
much overlap. For example I can visualize a Graphite plug-in for
OpenOffice. OO could deliver Graphite from grunt work in terms of
application infrastructure. Conversely, Graphite integration with OO
might result in better internationalization for the whole OO project,
e.g. offering OO to languages that might otherwise never see it.

Feel free to contribute ideas to the GSL dev list. It is an opportune
moment. Whether actual collaboration results or not, your advice and
opinions are worthwhile.

Regards.
Mark

Graphite summary, courtesy Timothy Eves:

Currently most complex script rendering solutions will support a fixed set
of scripts, with script behaviour being built into the rendering component;
typically they aim to support the set included in the current Unicode
specification.  Therefore to support new scripts, you have to upgrade the
software component.  SIL required for their translation and literacy work a
system to support the production and preparation of literature in the
writing systems of minority languages and the freedom to develop and tune a
new or adapted writing system in the case of supporting literacy for
unwritten languages. Unfortunately Unicode does not currently support many
of these languages also getting new glyphs or writing systems added to
Unicode is a process that can take years.

SIL developed an extensible system which places the script behaviour rules
into a TrueType font as extra tables and these drive the Graphite complex
script rendering engine.  The rules are described by the Graphite
Description Language (GDL) and compiled into the font.  This approach allows
the writing system expert to be able to learn a simple rule based language
rather than having be a programmer in order to make improvements or changes.
It was originally implemented in C++ as COM component on Windows and is
currently being ported to Linux, a C wrapper is in the works and a project
is underway to integrate it into the Mozilla browser. For examples of what
graphite in action see the Mozilla integration: http://sila.mozdev.org/ and
WorldPad http://fieldworks.sil.org/WorldPad/worldpad.html (a basic text
editor).
Comment 4 strata 2007-04-12 08:34:23 UTC
For better typographic potential and quality!
Comment 5 jurf 2008-06-21 04:10:57 UTC
I've added my votes to this 'un. I'm approaching this from a typographical point
of view rather than complex scripts. I've long wondered (and ignored) what
Graphite was, and only just realized that in addition to implementing Graphite's
own "smart font" features, Graphite — certainly SIL's implementation in WorldPad
— also implements OpenType features, at least on XP.

I'm amazed I haven't noticed this before: seeing as SIL already have various OOo
builds with Graphite support (though I haven't tested any), incorporating
Graphite into standard builds would appear to be a quick and relatively painless
way to implement support for OpenType features. At least the ones that OpenType
specs recommend are on by default (eg LIGA for ligatures, and CALT for
contextual alternates); features requiring input from the user, eg. figure
substitutions, small caps etc., would require GUI work.

It may be worth referencing this issue under other issues concerned with
OpenType features, ligatures, advanced typography etc.
Comment 6 sharoncorrell 2008-06-25 17:15:04 UTC
I would like to see better Graphite support, since I think Graphite is the most 
powerful smart-font technology in existence (okay, as a developer I'm a little 
biased :-) and it is semi-crippled without support for the feature mechanism.

However, I need to correct the statements by "jurf" that Graphite provides 
support for OpenType features. Graphite knows nothing about OpenType. The 
WorldPad editor uses Uniscribe and hence OpenType for fonts that have no 
Graphite tables in them. But Graphite itself does not handle OpenType tables.
Comment 7 jurf 2008-06-25 22:22:44 UTC
Thanks Sharon, you're absolutely right - Graphite only understands Graphite.

Unfortunately, I can also confirm that the latest OOo build from SIL (2.4) with
Graphite doesn't include Uniscribe, so no OpenType. Sob sob sniff...
Comment 8 devel 2008-11-04 08:06:21 UTC
I've taken over from Tim since he is now concentrating on other things.

Working Graphite patches are in the graphite01 CWS.
Comment 9 devel 2008-11-04 08:12:16 UTC
See the graphite01 CWS for the current state of the patches and also i93645
since we will need the graphite library itself as a module.
Comment 10 a_p_sysoev 2008-12-01 16:00:41 UTC
The issue depends on 93645. It would be good to have this dependency in "show
dependency tree" of the issue.
Comment 11 kpalagin 2008-12-01 16:08:10 UTC
added 93645 to "depends on".
Comment 12 kpalagin 2009-06-12 04:58:46 UTC
kstribley,
do we have an integration target for this feature?
Comment 13 devel 2009-06-15 07:58:37 UTC
I hope for 3.2.
Comment 14 devel 2009-07-08 11:20:12 UTC
Graphite support has been implemented in CWS graphite01.
Some test files (including fonts) are available at: 
http://www.thanlwinsoft.co.uk/ThanLwinSoft/Downloads/OpenOffice/OOoGrTests.zip
(I think its too big to attach)
The PDFs are reliant on the fix for Issue 102603 for correct rendering.
Comment 15 hdu@apache.org 2009-07-22 16:12:43 UTC
sba: please verify in CWS graphite01

Testing hints:
- Install the fonts from Keith's excellent test files first. For one of the test docs (for Nko) you'll need the Kankan 
font from http://openfontlibrary.org/media/files/nko_computers/402
- test the docs (display, print and PDF-export) and compare with them with the provided PDFs
- the new features are currently only enabled for Win and Linux builds 
- watch out for regressions from the trunk (e.g. performance in large docs)
Comment 16 stefan.baltzer 2009-08-03 15:59:02 UTC
Verified in CWS graphite01.