예제 #1
0
fz_error
pdf_load_similar_cjk_font(pdf_xref *xref, pdf_font_desc *font, int ros, int serif)
{
	if (serif)
	{
		switch (ros)
		{
		case PDF_ROS_CNS: return pdf_load_windows_font(xref, font, "MingLiU");
		case PDF_ROS_GB: return pdf_load_windows_font(xref, font, "SimSun");
		case PDF_ROS_JAPAN: return pdf_load_windows_font(xref, font, "MS-Mincho");
		case PDF_ROS_KOREA: return pdf_load_windows_font(xref, font, "Batang");
		}
	}
	else
	{
		switch (ros)
		{
		case PDF_ROS_CNS: return pdf_load_windows_font(xref, font, "DFKaiShu-SB-Estd-BF");
		case PDF_ROS_GB:
			if (fz_okay == pdf_load_windows_font(xref, font, "KaiTi"))
				return fz_okay;
			return pdf_load_windows_font(xref, font, "KaiTi_GB2312");
		case PDF_ROS_JAPAN: return pdf_load_windows_font(xref, font, "MS-Gothic");
		case PDF_ROS_KOREA: return pdf_load_windows_font(xref, font, "Gulim");
		}
	}
	return -1;
}
예제 #2
0
static void
pdf_load_builtin_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fontname)
{
	unsigned char *data;
	unsigned int len;

#ifdef _WIN32
	/* SumatraPDF: prefer system fonts unless a base font is explicitly requested */
	char *clean_name = clean_font_name(fontname);
	if (!pdf_lookup_builtin_font(fontname, &len) &&
		/* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=2173 */
		(clean_name == fontname || strncmp(clean_name, "Times-", 6) != 0))
	{
void pdf_load_windows_font(fz_context *ctx, pdf_font_desc *font, char *fontname);
		/* TODO: the metrics for Times-Roman and Courier don't match
		   those of Windows' Times New Roman and Courier New; for
		   some reason, Poppler doesn't seem to have this problem */
		fz_try(ctx)
		{
			pdf_load_windows_font(ctx, fontdesc, fontname);
		}
		fz_catch(ctx) { }
printf("    fontdesc->font=%p\n",fontdesc->font);
		if (fontdesc->font)
			return;
	}