diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2020-10-18 20:56:51 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2020-10-18 20:56:51 +0000 |
commit | 412557e971ebdfb7d50a96e8fff49025641dcd5f (patch) | |
tree | 9e0abdbac8a19bce537abe75c79635ba3afb76df /Build/source/texk/dvipdfm-x/cidtype0.c | |
parent | 2451453f775a750ce7472628d0ed7b41e5f4ec3c (diff) |
Extension to load user defined CID-to-GID mapping for TrueType fonts. (S. Hirata)
git-svn-id: svn://tug.org/texlive/trunk@56697 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipdfm-x/cidtype0.c')
-rw-r--r-- | Build/source/texk/dvipdfm-x/cidtype0.c | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/Build/source/texk/dvipdfm-x/cidtype0.c b/Build/source/texk/dvipdfm-x/cidtype0.c index d6c10fa1d19..6e78cefdda9 100644 --- a/Build/source/texk/dvipdfm-x/cidtype0.c +++ b/Build/source/texk/dvipdfm-x/cidtype0.c @@ -823,17 +823,18 @@ CIDFont_type0_open_from_t1 (pdf_font *font, const char *name, int index, cid_opt pdf_new_name("Subtype"), pdf_new_name("CIDFontType0")); - memmove(fontname + 7, fontname, strlen(fontname) + 1); - pdf_font_make_uniqueTag(fontname); - fontname[6] = '+'; + pdf_font_make_uniqueTag(font->uniqueID); font->descriptor = pdf_new_dict(); - pdf_add_dict(font->descriptor, - pdf_new_name("FontName"), - pdf_new_name(fontname)); - pdf_add_dict(font->resource, - pdf_new_name("BaseFont"), - pdf_new_name(fontname)); + { + char *tmp; + + tmp = NEW(strlen(font->fontname)+8, char); + sprintf(tmp, "%s+%s", font->uniqueID, font->fontname); + pdf_add_dict(font->descriptor, pdf_new_name("FontName"), pdf_new_name(tmp)); + pdf_add_dict(font->resource, pdf_new_name("BaseFont"), pdf_new_name(tmp)); + RELEASE(tmp); + } { pdf_obj *csi_dict = pdf_new_dict(); pdf_add_dict(csi_dict, @@ -971,17 +972,18 @@ CIDFont_type0_open (pdf_font *font, const char *name, int index, cid_opt *opt) pdf_new_name("CIDFontType0")); if (opt->embed) { - memmove(fontname + 7, fontname, strlen(fontname) + 1); - pdf_font_make_uniqueTag(fontname); - fontname[6] = '+'; + char *tmp; + + tmp = NEW(strlen(font->fontname)+8, char); + pdf_font_make_uniqueTag(font->uniqueID); + sprintf(tmp, "%s+%s", font->uniqueID, font->fontname); + pdf_add_dict(font->descriptor, pdf_new_name("FontName"), pdf_new_name(tmp)); + pdf_add_dict(font->resource, pdf_new_name("BaseFont"), pdf_new_name(tmp)); + RELEASE(tmp); + } else { + pdf_add_dict(font->descriptor, pdf_new_name("FontName"), pdf_new_name(font->fontname)); + pdf_add_dict(font->resource, pdf_new_name("BaseFont"), pdf_new_name(font->fontname)); } - - pdf_add_dict(font->descriptor, - pdf_new_name("FontName"), - pdf_new_name(fontname)); - pdf_add_dict(font->resource, - pdf_new_name("BaseFont"), - pdf_new_name(fontname)); { pdf_obj *csi_dict = pdf_new_dict(); pdf_add_dict(csi_dict, @@ -1118,17 +1120,18 @@ CIDFont_type0_open_from_t1c (pdf_font *font, const char *name, int index, cid_op pdf_new_name("CIDFontType0")); if (opt->embed) { - memmove(fontname + 7, fontname, strlen(fontname) + 1); - pdf_font_make_uniqueTag(fontname); - fontname[6] = '+'; + char *tmp; + + tmp = NEW(strlen(font->fontname)+8, char); + pdf_font_make_uniqueTag(font->uniqueID); + sprintf(tmp, "%s+%s", font->uniqueID, font->fontname); + pdf_add_dict(font->descriptor, pdf_new_name("FontName"), pdf_new_name(tmp)); + pdf_add_dict(font->resource, pdf_new_name("BaseFont"), pdf_new_name(tmp)); + RELEASE(tmp); + } else { + pdf_add_dict(font->descriptor, pdf_new_name("FontName"), pdf_new_name(font->fontname)); + pdf_add_dict(font->resource, pdf_new_name("BaseFont"), pdf_new_name(font->fontname)); } - - pdf_add_dict(font->descriptor, - pdf_new_name("FontName"), - pdf_new_name(fontname)); - pdf_add_dict(font->resource, - pdf_new_name("BaseFont"), - pdf_new_name(fontname)); { pdf_obj *csi_dict = pdf_new_dict(); pdf_add_dict(csi_dict, |