2 * << Haru Free PDF Library 2.0.0 >> -- jpfont_demo.c
4 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
6 * Permission to use, copy, modify, distribute and sell this software
7 * and its documentation for any purpose is hereby granted without fee,
8 * provided that the above copyright notice appear in all copies and
9 * that both that copyright notice and this permission notice appear
10 * in supporting documentation.
11 * It is provided "as is" without express or implied warranty.
28 error_handler (HPDF_STATUS error_no,
29 HPDF_STATUS detail_no,
32 printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
33 (HPDF_UINT)detail_no);
37 int main (int argc, char **argv)
42 HPDF_Font detail_font[16];
46 const HPDF_UINT PAGE_HEIGHT = 210;
49 FILE* f = fopen ("mbtext\\sjis.txt", "rb");
51 FILE* f = fopen ("mbtext/sjis.txt", "rb");
55 printf ("error: cannot open 'mbtext/sjis.txt'\n");
59 fgets (samp_text, 2048, f);
62 strcpy (fname, argv[0]);
63 strcat (fname, ".pdf");
65 pdf = HPDF_New (error_handler, NULL);
67 printf ("error: cannot create PdfDoc object\n");
76 /* configure pdf-document to be compressed. */
77 HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);
79 /* declaration for using Japanese font, encoding. */
80 HPDF_UseJPEncodings (pdf);
81 HPDF_UseJPFonts (pdf);
83 detail_font[0] = HPDF_GetFont (pdf, "MS-Mincyo", "90ms-RKSJ-H");
84 detail_font[1] = HPDF_GetFont (pdf, "MS-Mincyo,Bold", "90ms-RKSJ-H");
85 detail_font[2] = HPDF_GetFont (pdf, "MS-Mincyo,Italic", "90ms-RKSJ-H");
86 detail_font[3] = HPDF_GetFont (pdf, "MS-Mincyo,BoldItalic", "90ms-RKSJ-H");
87 detail_font[4] = HPDF_GetFont (pdf, "MS-PMincyo", "90msp-RKSJ-H");
88 detail_font[5] = HPDF_GetFont (pdf, "MS-PMincyo,Bold", "90msp-RKSJ-H");
89 detail_font[6] = HPDF_GetFont (pdf, "MS-PMincyo,Italic", "90msp-RKSJ-H");
90 detail_font[7] = HPDF_GetFont (pdf, "MS-PMincyo,BoldItalic",
92 detail_font[8] = HPDF_GetFont (pdf, "MS-Gothic", "90ms-RKSJ-H");
93 detail_font[9] = HPDF_GetFont (pdf, "MS-Gothic,Bold", "90ms-RKSJ-H");
94 detail_font[10] = HPDF_GetFont (pdf, "MS-Gothic,Italic", "90ms-RKSJ-H");
95 detail_font[11] = HPDF_GetFont (pdf, "MS-Gothic,BoldItalic", "90ms-RKSJ-H");
96 detail_font[12] = HPDF_GetFont (pdf, "MS-PGothic", "90msp-RKSJ-H");
97 detail_font[13] = HPDF_GetFont (pdf, "MS-PGothic,Bold", "90msp-RKSJ-H");
98 detail_font[14] = HPDF_GetFont (pdf, "MS-PGothic,Italic", "90msp-RKSJ-H");
99 detail_font[15] = HPDF_GetFont (pdf, "MS-PGothic,BoldItalic",
102 /* Set page mode to use outlines. */
103 HPDF_SetPageMode(pdf, HPDF_PAGE_MODE_USE_OUTLINE);
105 /* create outline root. */
106 root = HPDF_CreateOutline (pdf, NULL, "JP font demo", NULL);
107 HPDF_Outline_SetOpened (root, HPDF_TRUE);
109 for (i = 0; i <= 15; i++) {
111 HPDF_Outline outline;
112 HPDF_Destination dst;
117 /* add a new page object. */
118 page = HPDF_AddPage (pdf);
120 /* create outline entry */
121 outline = HPDF_CreateOutline (pdf, root,
122 HPDF_Font_GetFontName (detail_font[i]), NULL);
123 dst = HPDF_Page_CreateDestination (page);
124 HPDF_Outline_SetDestination(outline, dst);
126 title_font = HPDF_GetFont (pdf, "Helvetica", NULL);
127 HPDF_Page_SetFontAndSize (page, title_font, 10);
129 HPDF_Page_BeginText (page);
131 /* move the position of the text to top of the page. */
132 HPDF_Page_MoveTextPos(page, 10, 190);
133 HPDF_Page_ShowText (page, HPDF_Font_GetFontName (detail_font[i]));
135 HPDF_Page_SetFontAndSize (page, detail_font[i], 15);
136 HPDF_Page_MoveTextPos (page, 10, -20);
137 HPDF_Page_ShowText (page, "abcdefghijklmnopqrstuvwxyz");
138 HPDF_Page_MoveTextPos (page, 0, -20);
139 HPDF_Page_ShowText (page, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
140 HPDF_Page_MoveTextPos (page, 0, -20);
141 HPDF_Page_ShowText (page, "1234567890");
142 HPDF_Page_MoveTextPos (page, 0, -20);
144 HPDF_Page_SetFontAndSize (page, detail_font[i], 10);
145 HPDF_Page_ShowText (page, samp_text);
146 HPDF_Page_MoveTextPos (page, 0, -18);
148 HPDF_Page_SetFontAndSize (page, detail_font[i], 16);
149 HPDF_Page_ShowText (page, samp_text);
150 HPDF_Page_MoveTextPos (page, 0, -27);
152 HPDF_Page_SetFontAndSize (page, detail_font[i], 23);
153 HPDF_Page_ShowText (page, samp_text);
154 HPDF_Page_MoveTextPos (page, 0, -36);
156 HPDF_Page_SetFontAndSize (page, detail_font[i], 30);
157 HPDF_Page_ShowText (page, samp_text);
159 p = HPDF_Page_GetCurrentTextPos (page);
161 /* finish to print text. */
162 HPDF_Page_EndText (page);
164 HPDF_Page_SetLineWidth (page, 0.5);
167 for (j = 0; j <= strlen (samp_text) / 2; j++) {
168 HPDF_Page_MoveTo (page, x_pos, p.y - 10);
169 HPDF_Page_LineTo (page, x_pos, p.y - 12);
170 HPDF_Page_Stroke (page);
174 HPDF_Page_SetWidth (page, p.x + 20);
175 HPDF_Page_SetHeight (page, PAGE_HEIGHT);
177 HPDF_Page_MoveTo (page, 10, PAGE_HEIGHT - 25);
178 HPDF_Page_LineTo (page, p.x + 10, PAGE_HEIGHT - 25);
179 HPDF_Page_Stroke (page);
181 HPDF_Page_MoveTo (page, 10, PAGE_HEIGHT - 85);
182 HPDF_Page_LineTo (page, p.x + 10, PAGE_HEIGHT - 85);
183 HPDF_Page_Stroke (page);
185 HPDF_Page_MoveTo (page, 10, p.y - 12);
186 HPDF_Page_LineTo (page, p.x + 10, p.y - 12);
187 HPDF_Page_Stroke (page);
190 HPDF_SaveToFile (pdf, fname);