# # This has been ported by Hiroshi Saito(hiroshi@winpg.jp) # Copyright notice of the original as below. # # * # * << Haru Free PDF Library 2.0.0 >> -- grid_sheet.c # * # * Copyright (c) 1999-2006 Takeshi Kanno # * # * Permission to use, copy, modify, distribute and sell this software # * and its documentation for any purpose is hereby granted without fee, # * provided that the above copyright notice appear in all copies and # * that both that copyright notice and this permission notice appear # * in supporting documentation. # * It is provided "as is" without express or implied warranty. # * # * @load "pdf" # --- # finction # --- function print_grid(pdf, page) { height = HPDF_Page_GetHeight(page); width = HPDF_Page_GetWidth(page); font = HPDF_GetFont(pdf, "Helvetica", NULL); HPDF_Page_SetFontAndSize(page, font, 5); HPDF_Page_SetGrayFill(page, 0.5); HPDF_Page_SetGrayStroke(page, 0.8); y = 0; while (y < height) { if (y % 10 == 0) HPDF_Page_SetLineWidth(page, 0.5); else { if (HPDF_Page_GetLineWidth(page) != 0.25) HPDF_Page_SetLineWidth(page, 0.25); } HPDF_Page_MoveTo(page, 0, y); HPDF_Page_LineTo(page, width, y); HPDF_Page_Stroke(page); if (y % 10 == 0 && y > 0) { HPDF_Page_SetGrayStroke(page, 0.5); HPDF_Page_MoveTo(page, 0, y); HPDF_Page_LineTo(page, 5, y); HPDF_Page_Stroke(page); HPDF_Page_SetGrayStroke(page, 0.8); } y += 5; } x = 0; while (x < width) { if (x % 10 == 0) HPDF_Page_SetLineWidth(page, 0.5); else { if (HPDF_Page_GetLineWidth(page) != 0.25) HPDF_Page_SetLineWidth(page, 0.25); } HPDF_Page_MoveTo(page, x, 0); HPDF_Page_LineTo(page, x, height); HPDF_Page_Stroke(page); if (x % 50 == 0 && x > 0) { HPDF_Page_SetGrayStroke(page, 0.5); HPDF_Page_MoveTo(page, x, 0); HPDF_Page_LineTo(page, x, 5); HPDF_Page_Stroke(page); HPDF_Page_MoveTo(page, x, height); HPDF_Page_LineTo(page, x, height - 5); HPDF_Page_Stroke(page); HPDF_Page_SetGrayStroke(page, 0.8); } x += 5; } y = 0; while (y < height) { if (y % 10 == 0 && y > 0) { HPDF_Page_BeginText(page); HPDF_Page_MoveTextPos(page, 5, y - 2); buf = sprintf("%u", y); HPDF_Page_ShowText(page, buf); HPDF_Page_EndText(page); } y += 5; } x = 0; while (x < width) { if (x % 50 == 0 && x > 0) { HPDF_Page_BeginText(page); HPDF_Page_MoveTextPos(page, x, 5); buf = sprintf("%u", x); HPDF_Page_ShowText(page, buf); HPDF_Page_EndText(page); HPDF_Page_BeginText(page); HPDF_Page_MoveTextPos(page, x, height - 10); HPDF_Page_ShowText(page, buf); HPDF_Page_EndText(page); } x += 5; } HPDF_Page_SetGrayFill(page, 0); HPDF_Page_SetGrayStroke(page, 0); } # ----- # main # ----- BEGIN{ fname = "pdf_grid.pdf"; pdf = HPDF_New(NULL, NULL); page = HPDF_AddPage(pdf); HPDF_Page_SetHeight(page, 600); HPDF_Page_SetWidth(page, 400); print_grid(pdf, page); HPDF_SaveToFile(pdf, fname); HPDF_Free(pdf); }