Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.postscript > #3042 > unrolled thread
| Started by | Jinsong Zhao <jszhao@yeah.net> |
|---|---|
| First post | 2017-04-09 15:56 +0800 |
| Last post | 2017-04-18 11:32 +0800 |
| Articles | 3 — 2 participants |
Back to article view | Back to comp.lang.postscript
How to get glyph metric info of CID-keyed font? Jinsong Zhao <jszhao@yeah.net> - 2017-04-09 15:56 +0800
Re: How to get glyph metric info of CID-keyed font? ken <ken@spamcop.net> - 2017-04-10 08:13 +0100
Re: How to get glyph metric info of CID-keyed font? Jinsong Zhao <jszhao@yeah.net> - 2017-04-18 11:32 +0800
| From | Jinsong Zhao <jszhao@yeah.net> |
|---|---|
| Date | 2017-04-09 15:56 +0800 |
| Subject | How to get glyph metric info of CID-keyed font? |
| Message-ID | <occp90$tl6$1@dont-email.me> |
Hi there, I am using R (www.r-project.org) to plot statistical figure. I prefer to use postscript device. Instead of Type1 fonts, I hope to use Truetype or Opentype fonts in my figure, that means I have to use CIDFont function. I read the help page of CIDFont function which state that the CID-keyed font are intended only for use for the glyphs of East Asian languages that are all treated as filling the same bounding box. In the source code of ``devPS.c'', the ascent, descent and width of glyph is assumed, and not calculated based on actual font. In fact, I think, R can't get the exact metric info for the glyph in CID-keyed font, and can't typeset correctly or beautifully. It seems that R can't find or access to the actual font. After output to a postscript file, Ghostscript with correctly configuration can render the figure correctly. My question is how to get glyph metric info of CID-keyed font in C code directly or by call Ghostscript? Any help will be really appreciated, and thanks in advance. Best, Jinsong
[toc] | [next] | [standalone]
| From | ken <ken@spamcop.net> |
|---|---|
| Date | 2017-04-10 08:13 +0100 |
| Message-ID | <MPG.33554113eb971902989917@usenet.plus.net> |
| In reply to | #3042 |
In article <occp90$tl6$1@dont-email.me>, jszhao@yeah.net says... > > Hi there, > > I am using R (www.r-project.org) to plot statistical figure. I prefer to > use postscript device. Instead of Type1 fonts, I hope to use Truetype or > Opentype fonts in my figure, You cannot directly use TrueType fonts or OpenType fonts with a PostScript interpreter, because PostScript deos not support either TrueType or OpenType. Language Level 3 PostScript interpreters can use both type 42 (which are TrueType fonts 'bundled up' in a way which PostScript interpreters can understand) and CFF font outlines. Earlier language levels did not support CFF and may not support type, support for CFF was added with level 3, and support for type 42 was introduced as a supplement to the original level 2 sepcification. CIDFonts were also added (in version 2015 as I recall) during the lifetime of language level 2. Note (1) that for OpenType fonts, you would need to check the outline type of the font and then supply either a Type 42 (TrueType) font or a CFF font, in each case extracting the relevant data from the font. Note (2) Ghostscript *can* make use directly of both TrueType and OpenType fonts as substitutes for missing fonts. However this involves the interpreter 'guessing' at certain information which would normally be presented unambiguously in the tytpe 42 font. So sometimes it will get it wrong. > that means I have to use CIDFont function. Nope. Type 42 fonts are not CIDFonts. A CIDFont may have a number of different kinds of outlines, including type 42 outlines, but its entirely possible to have a type 42 font which is not a CIDFont. The same is also true for CFF outlines (OpenType fonts may have CFF outline data, instead of TrueType. > I read the help page of CIDFont function which state that the CID-keyed > font are intended only for use for the glyphs of East Asian languages > that are all treated as filling the same bounding box. No, sorry, that's not really true either. It is the case that the original impetus for development of CIDFonts was the complexity of the written forms of Asian languages, but nowadays CIDFonts are used extensively for all languages. > In the source > code of ``devPS.c'', the ascent, descent and width of glyph is assumed, > and not calculated based on actual font. In fact, I think, R can't get > the exact metric info for the glyph in CID-keyed font, and can't typeset > correctly or beautifully. It seems that R can't find or access to the > actual font. After output to a postscript file, Ghostscript with > correctly configuration can render the figure correctly. > > My question is how to get glyph metric info of CID-keyed font in C code > directly or by call Ghostscript? You can interpret the font. There is no equivalent of the '.pfm' files that were once supplied with Type 1 fonts and contained the metrics of the glyphs. Ghostscript, like any font rendering engine, *must* interpret the font in order to render it. The font (whether TrueType or CFF outlines) will contain its own set of metrics which cover all the glyphs in the font, each glyph will additionally contain information such as the BoundingBox (or hsbw, Horizontal Side Bearing and Width) information in the glyph description. Ghostscript (mostly) uses FreeType for its font rendering, I would think that the simplest approach for you would be to do the same. I'm afraid I can't offer you any help with R, I know nothing about it. Ken
[toc] | [prev] | [next] | [standalone]
| From | Jinsong Zhao <jszhao@yeah.net> |
|---|---|
| Date | 2017-04-18 11:32 +0800 |
| Message-ID | <od4180$j61$1@dont-email.me> |
| In reply to | #3044 |
On 2017/4/10 15:13, ken wrote: > In article <occp90$tl6$1@dont-email.me>, jszhao@yeah.net says... >> >> Hi there, >> >> I am using R (www.r-project.org) to plot statistical figure. I prefer to >> use postscript device. Instead of Type1 fonts, I hope to use Truetype or >> Opentype fonts in my figure, > > You cannot directly use TrueType fonts or OpenType fonts with a > PostScript interpreter, because PostScript deos not support either > TrueType or OpenType. > > Language Level 3 PostScript interpreters can use both type 42 (which are > TrueType fonts 'bundled up' in a way which PostScript interpreters can > understand) and CFF font outlines. Earlier language levels did not > support CFF and may not support type, support for CFF was added with > level 3, and support for type 42 was introduced as a supplement to the > original level 2 sepcification. CIDFonts were also added (in version > 2015 as I recall) during the lifetime of language level 2. > > Note (1) that for OpenType fonts, you would need to check the outline > type of the font and then supply either a Type 42 (TrueType) font or a > CFF font, in each case extracting the relevant data from the font. > > Note (2) Ghostscript *can* make use directly of both TrueType and > OpenType fonts as substitutes for missing fonts. However this involves > the interpreter 'guessing' at certain information which would normally > be presented unambiguously in the tytpe 42 font. So sometimes it will > get it wrong. > > >> that means I have to use CIDFont function. > > Nope. Type 42 fonts are not CIDFonts. A CIDFont may have a number of > different kinds of outlines, including type 42 outlines, but its > entirely possible to have a type 42 font which is not a CIDFont. > > The same is also true for CFF outlines (OpenType fonts may have CFF > outline data, instead of TrueType. > > >> I read the help page of CIDFont function which state that the CID-keyed >> font are intended only for use for the glyphs of East Asian languages >> that are all treated as filling the same bounding box. > > No, sorry, that's not really true either. It is the case that the > original impetus for development of CIDFonts was the complexity of the > written forms of Asian languages, but nowadays CIDFonts are used > extensively for all languages. > > >> In the source >> code of ``devPS.c'', the ascent, descent and width of glyph is assumed, >> and not calculated based on actual font. In fact, I think, R can't get >> the exact metric info for the glyph in CID-keyed font, and can't typeset >> correctly or beautifully. It seems that R can't find or access to the >> actual font. After output to a postscript file, Ghostscript with >> correctly configuration can render the figure correctly. >> >> My question is how to get glyph metric info of CID-keyed font in C code >> directly or by call Ghostscript? > > You can interpret the font. There is no equivalent of the '.pfm' files > that were once supplied with Type 1 fonts and contained the metrics of > the glyphs. > > Ghostscript, like any font rendering engine, *must* interpret the font > in order to render it. The font (whether TrueType or CFF outlines) will > contain its own set of metrics which cover all the glyphs in the font, > each glyph will additionally contain information such as the BoundingBox > (or hsbw, Horizontal Side Bearing and Width) information in the glyph > description. > > Ghostscript (mostly) uses FreeType for its font rendering, I would think > that the simplest approach for you would be to do the same. > > I'm afraid I can't offer you any help with R, I know nothing about it. > > Ken > Thank you very much for the reply and explanation. I now use cairo_ps function in R to plot, which use cairo graphics API and can use CFF fonts directly. Best, Jinsong
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.postscript
csiph-web