2 * << Haru Free PDF Library 2.0.0 >> -- grid_sheet.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.
20 #include "grid_sheet.h"
30 error_handler (HPDF_STATUS error_no,
31 HPDF_STATUS detail_no,
34 printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
35 (HPDF_UINT)detail_no);
40 #endif /* STAND_ALONE */
43 print_grid (HPDF_Doc pdf,
46 HPDF_REAL height = HPDF_Page_GetHeight (page);
47 HPDF_REAL width = HPDF_Page_GetWidth (page);
48 HPDF_Font font = HPDF_GetFont (pdf, "Helvetica", NULL);
51 HPDF_Page_SetFontAndSize (page, font, 5);
52 HPDF_Page_SetGrayFill (page, 0.5);
53 HPDF_Page_SetGrayStroke (page, 0.8);
55 /* Draw horizontal lines */
59 HPDF_Page_SetLineWidth (page, 0.5);
61 if (HPDF_Page_GetLineWidth (page) != 0.25)
62 HPDF_Page_SetLineWidth (page, 0.25);
65 HPDF_Page_MoveTo (page, 0, y);
66 HPDF_Page_LineTo (page, width, y);
67 HPDF_Page_Stroke (page);
69 if (y % 10 == 0 && y > 0) {
70 HPDF_Page_SetGrayStroke (page, 0.5);
72 HPDF_Page_MoveTo (page, 0, y);
73 HPDF_Page_LineTo (page, 5, y);
74 HPDF_Page_Stroke (page);
76 HPDF_Page_SetGrayStroke (page, 0.8);
83 /* Draw virtical lines */
87 HPDF_Page_SetLineWidth (page, 0.5);
89 if (HPDF_Page_GetLineWidth (page) != 0.25)
90 HPDF_Page_SetLineWidth (page, 0.25);
93 HPDF_Page_MoveTo (page, x, 0);
94 HPDF_Page_LineTo (page, x, height);
95 HPDF_Page_Stroke (page);
97 if (x % 50 == 0 && x > 0) {
98 HPDF_Page_SetGrayStroke (page, 0.5);
100 HPDF_Page_MoveTo (page, x, 0);
101 HPDF_Page_LineTo (page, x, 5);
102 HPDF_Page_Stroke (page);
104 HPDF_Page_MoveTo (page, x, height);
105 HPDF_Page_LineTo (page, x, height - 5);
106 HPDF_Page_Stroke (page);
108 HPDF_Page_SetGrayStroke (page, 0.8);
114 /* Draw horizontal text */
117 if (y % 10 == 0 && y > 0) {
120 HPDF_Page_BeginText (page);
121 HPDF_Page_MoveTextPos (page, 5, y - 2);
123 _snprintf (buf, 12, "%u", y);
125 snprintf (buf, 12, "%u", y);
127 HPDF_Page_ShowText (page, buf);
128 HPDF_Page_EndText (page);
135 /* Draw virtical text */
138 if (x % 50 == 0 && x > 0) {
141 HPDF_Page_BeginText (page);
142 HPDF_Page_MoveTextPos (page, x, 5);
144 _snprintf (buf, 12, "%u", x);
146 snprintf (buf, 12, "%u", x);
148 HPDF_Page_ShowText (page, buf);
149 HPDF_Page_EndText (page);
151 HPDF_Page_BeginText (page);
152 HPDF_Page_MoveTextPos (page, x, height - 10);
153 HPDF_Page_ShowText (page, buf);
154 HPDF_Page_EndText (page);
160 HPDF_Page_SetGrayFill (page, 0);
161 HPDF_Page_SetGrayStroke (page, 0);
167 main (int argc, char **argv)
173 strcpy (fname, argv[0]);
174 strcat (fname, ".pdf");
176 pdf = HPDF_New (error_handler, NULL);
178 printf ("error: cannot create PdfDoc object\n");
187 /* add a new page object. */
188 page = HPDF_AddPage (pdf);
190 HPDF_Page_SetHeight (page, 600);
191 HPDF_Page_SetWidth (page, 400);
193 print_grid (pdf, page);
196 /* save the document to a file */
197 HPDF_SaveToFile (pdf, fname);
205 #endif /* STAND_ALONE */