|
Lines 1797-1802
get_missing_width(gs_font_base *cfont, i
Link Here
|
| 1797 |
pwidths->Width.xy.y; |
1797 |
pwidths->Width.xy.y; |
| 1798 |
pwidths->Width.v.x = - pwidths->Width.xy.y / 2; |
1798 |
pwidths->Width.v.x = - pwidths->Width.xy.y / 2; |
| 1799 |
pwidths->Width.v.y = - pwidths->Width.xy.y; |
1799 |
pwidths->Width.v.y = - pwidths->Width.xy.y; |
|
|
1800 |
#if 1 /* XXX */ |
| 1801 |
/* pwidths->Width.v.y *= 0.84; should use ascent/descent ratio */ |
| 1802 |
pwidths->Width.v.y *= |
| 1803 |
cfont->FontBBox.q.y/(-cfont->FontBBox.p.y+cfont->FontBBox.q.y); |
| 1804 |
#endif |
| 1800 |
} else { |
1805 |
} else { |
| 1801 |
pwidths->Width.xy.x = pwidths->real_width.xy.x = |
1806 |
pwidths->Width.xy.x = pwidths->real_width.xy.x = |
| 1802 |
finfo.MissingWidth * scale_c; |
1807 |
finfo.MissingWidth * scale_c; |
|
Lines 1875-1882
pdf_glyph_widths(pdf_font_resource_t *pd
Link Here
|
| 1875 |
|
1880 |
|
| 1876 |
if (get_missing_width(cfont, 0, scale_c, &widths1) < 0) |
1881 |
if (get_missing_width(cfont, 0, scale_c, &widths1) < 0) |
| 1877 |
v.x = 0; |
1882 |
v.x = 0; |
|
|
1883 |
#if 1 /* XXX */ /* Adobe-Japan specific */ |
| 1884 |
#define in_cid(s,e,cid,g) \ |
| 1885 |
((gs_min_cid_glyph + cid) <= g && g <= (gs_min_cid_glyph + cid + e - s)) |
| 1886 |
#define Roman(g) in_cid(0x20, 0x7e, 231, g) |
| 1887 |
#define Hankaku(g) \ |
| 1888 |
(in_cid(0x20, 0x5f, 231, g) || in_cid(0x60, 0x60, 231, g) || \ |
| 1889 |
in_cid(0x61, 0x7e, 296, g) || in_cid(0x81, 0x85, 327, g) || \ |
| 1890 |
in_cid(0x86, 0x8f, 516, g) || in_cid(0x90, 0x90, 342, g) || \ |
| 1891 |
in_cid(0x91, 0x9f, 526, g) || in_cid(0xa1, 0xdf, 327, g) || \ |
| 1892 |
in_cid(0xe0, 0xfd, 541, g) || in_cid(0xfe, 0xff, 388, g)) |
| 1893 |
#define Hiragana(g) \ |
| 1894 |
(in_cid(0x20, 0x20, 515, g) || in_cid(0x21, 0x25, 327, g) || \ |
| 1895 |
in_cid(0x26, 0x2f, 516, g) || in_cid(0x30, 0x30, 342, g) || \ |
| 1896 |
in_cid(0x31, 0x5d, 526, g) || in_cid(0x5e, 0x5f, 388, g) || \ |
| 1897 |
in_cid(0x60, 0x62, 571, g) || in_cid(0x66, 0x7e, 574, g)) |
| 1898 |
|
| 1899 |
#define adobe_japan_ascii(fp, gly) \ |
| 1900 |
fp->FontType == ft_CID_TrueType && \ |
| 1901 |
((gs_font_cid2*)fp)->cidata.common.CIDSystemInfo.Registry.size == 5 && \ |
| 1902 |
!memcmp(((gs_font_cid2*)fp)->cidata.common.CIDSystemInfo.Registry.data,"Adobe",5) && \ |
| 1903 |
((gs_font_cid2*)fp)->cidata.common.CIDSystemInfo.Ordering.size == 6 && \ |
| 1904 |
!memcmp(((gs_font_cid2*)fp)->cidata.common.CIDSystemInfo.Ordering.data,"Japan1",6) && \ |
| 1905 |
(Roman(gly) || Hankaku(gly) || Hiragana(gly)) |
| 1906 |
|
| 1907 |
else { |
| 1908 |
v.x = widths1.Width.w / 2; |
| 1909 |
if (adobe_japan_ascii(ofont,glyph)) |
| 1910 |
v.x /= 2; |
| 1911 |
} |
| 1912 |
#else |
| 1878 |
else |
1913 |
else |
| 1879 |
v.x = widths1.Width.w / 2; |
1914 |
v.x = widths1.Width.w / 2; |
|
|
1915 |
#endif |
| 1880 |
} else |
1916 |
} else |
| 1881 |
v.x = pwidths->Width.v.x; |
1917 |
v.x = pwidths->Width.v.x; |
| 1882 |
} else if (code < 0) |
1918 |
} else if (code < 0) |
|
Lines 1898-1905
pdf_glyph_widths(pdf_font_resource_t *pd
Link Here
|
| 1898 |
|
1934 |
|
| 1899 |
if (get_missing_width(cfont, 0, scale_c, &widths1) < 0) |
1935 |
if (get_missing_width(cfont, 0, scale_c, &widths1) < 0) |
| 1900 |
v.x = 0; |
1936 |
v.x = 0; |
|
|
1937 |
#if 1 /* XXX */ /* Adobe-Japan specific */ |
| 1938 |
else { |
| 1939 |
v.x = widths1.Width.w / 2; |
| 1940 |
if (adobe_japan_ascii(ofont,glyph)) |
| 1941 |
v.x /= 2; |
| 1942 |
} |
| 1943 |
#undef in_cid |
| 1944 |
#undef Roman |
| 1945 |
#undef Hankaku |
| 1946 |
#undef Hiragana |
| 1947 |
#undef adobe_japan_ascii |
| 1948 |
#else |
| 1901 |
else |
1949 |
else |
| 1902 |
v.x = widths1.Width.w / 2; |
1950 |
v.x = widths1.Width.w / 2; |
|
|
1951 |
#endif |
| 1903 |
} |
1952 |
} |
| 1904 |
} else { |
1953 |
} else { |
| 1905 |
if (info.members & (GLYPH_INFO_VVECTOR0 << wmode)) { |
1954 |
if (info.members & (GLYPH_INFO_VVECTOR0 << wmode)) { |