diff options
author | Ken Sharp <ken.sharp@artifex.com> | 2009-10-05 07:10:40 +0000 |
---|---|---|
committer | Ken Sharp <ken.sharp@artifex.com> | 2009-10-05 07:10:40 +0000 |
commit | 4f9498b441462d3adf542b26bff7a9c82cb800c8 (patch) | |
tree | c7c7b276c8eed1ae2c07254a52e6c2a513cee92f /gs/base/gdevpdtd.h | |
parent | fa4fb0ff47b67ed494f5ad0c58ad856afbf31504 (diff) | |
download | ghostpdl-4f9498b441462d3adf542b26bff7a9c82cb800c8.tar.gz |
Fix (pdfwrite) : Improve symbolic font detection
Details
Bug #690767 "Problems with PDFA"
Revision 9944 altered the way that we detect whether a font is symbolic or not. This
involved several changes; fixing existing broken code, adding /.notdef detection and
attempting to check encoded positions of glyphs before deciding a font was non-symbolic.
The encoding position test was incorrect for TrueType fonts, however, leading to some
fonts being needlessly declared as symbolic. This patch moves the encoding test to the
font descriptor assembly, which is the correct place to test it.
While this resolves the customer issue, it is not a complete solution. A truly symbolic
TrueType font would still be written as a symbolic font and when creating PDF/A files
there are strict limitations on the form of TrueType fonts. In particular they must only
contain a single CMAP table. Because we do not completely generate TrueType fonts for
embedding, but copy some tables, we cannot meet this restriction.
This will continue to be a potential problem until the TrueType font embedding code is
rewritten properly.
Expected Differences
'Boxes and Text.pdf' and 'fonts.pdf' now have missing fonts labelled as non-symbolic,
which affects the substitution used and alters the output.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@10124 a1074d23-0009-0410-80fe-cf8c14f379e6
Diffstat (limited to 'gs/base/gdevpdtd.h')
-rw-r--r-- | gs/base/gdevpdtd.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gs/base/gdevpdtd.h b/gs/base/gdevpdtd.h index 5727572b9..42123200a 100644 --- a/gs/base/gdevpdtd.h +++ b/gs/base/gdevpdtd.h @@ -149,4 +149,9 @@ int pdf_release_FontDescriptor_components(gx_device_pdf *pdev, pdf_resource_t *p */ int pdf_mark_font_descriptor_used(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd); +/* + * Mark a FontDescriptor Flags value as symbolic + */ +int mark_font_descriptor_symbolic(pdf_font_resource_t *pdfont); + #endif /* gdevpdtd_INCLUDED */ |