summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/cidtype0.c
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2020-10-18 20:56:51 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2020-10-18 20:56:51 +0000
commit412557e971ebdfb7d50a96e8fff49025641dcd5f (patch)
tree9e0abdbac8a19bce537abe75c79635ba3afb76df /Build/source/texk/dvipdfm-x/cidtype0.c
parent2451453f775a750ce7472628d0ed7b41e5f4ec3c (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.c61
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,