/* * << Haru Free PDF Library 2.0.2 >> -- JPFontDemo.cs * * 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. * */ using System; using System.IO; using HPdf; public class JPFontDemo { public static void Main() { Console.WriteLine("libhpf-" + HPdfDoc.HPdfGetVersion()); try { const int PAGE_HEIGHT = 210; string samp_text = "アメンボ赤いなあいうえお。浮き藻に小エビもおよいでる。"; HPdfFont[] detail_font = new HPdfFont[16]; HPdfDoc pdf = new HPdfDoc(); /*declaration for using Japanese font, encoding. */ pdf.UseJPEncodings(); pdf.UseJPFonts(); detail_font[0] = pdf.GetFont("MS-Mincyo", "90ms-RKSJ-H"); detail_font[1] = pdf.GetFont("MS-Mincyo,Bold", "90ms-RKSJ-H"); detail_font[2] = pdf.GetFont("MS-Mincyo,Italic", "90ms-RKSJ-H"); detail_font[3] = pdf.GetFont("MS-Mincyo,BoldItalic", "90ms-RKSJ-H"); detail_font[4] = pdf.GetFont("MS-PMincyo", "90msp-RKSJ-H"); detail_font[5] = pdf.GetFont("MS-PMincyo,Bold", "90msp-RKSJ-H"); detail_font[6] = pdf.GetFont("MS-PMincyo,Italic", "90msp-RKSJ-H"); detail_font[7] = pdf.GetFont("MS-PMincyo,BoldItalic", "90msp-RKSJ-H"); detail_font[8] = pdf.GetFont("MS-Gothic", "90ms-RKSJ-H"); detail_font[9] = pdf.GetFont("MS-Gothic,Bold", "90ms-RKSJ-H"); detail_font[10] = pdf.GetFont("MS-Gothic,Italic", "90ms-RKSJ-H"); detail_font[11] = pdf.GetFont("MS-Gothic,BoldItalic", "90ms-RKSJ-H"); detail_font[12] = pdf.GetFont("MS-PGothic", "90msp-RKSJ-H"); detail_font[13] = pdf.GetFont("MS-PGothic,Bold", "90msp-RKSJ-H"); detail_font[14] = pdf.GetFont("MS-PGothic,Italic", "90msp-RKSJ-H"); detail_font[15] = pdf.GetFont("MS-PGothic,BoldItalic", "90msp-RKSJ-H"); /*configure pdf-document to be compressed. */ pdf.SetCompressionMode(HPdfDoc.HPDF_COMP_ALL); /*Set page mode to use outlines. */ pdf.SetPageMode(HPdfPageMode.HPDF_PAGE_MODE_USE_OUTLINE); /*create outline root. */ HPdfOutline root = pdf.CreateOutline(null, "JP font demo", null); root.SetOpened (true); for (int i = 0; i <= 15; i++) { float x_pos; /*add a new page object. */ HPdfPage page = pdf.AddPage(); /*create outline entry */ HPdfOutline outline = pdf.CreateOutline(root, detail_font[i].GetFontName(), null); HPdfDestination dst = page.CreateDestination(); outline.SetDestination(dst); HPdfFont title_font = pdf.GetFont("Helvetica", null); page.SetFontAndSize(title_font, 10); page.BeginText(); /*move the position of the text to top of the page. */ page.MoveTextPos(10, 190); page.ShowText(detail_font[i].GetFontName()); page.SetFontAndSize(detail_font[i], 15); page.MoveTextPos(10, -20); page.ShowText("abcdefghijklmnopqrstuvwxyz"); page.MoveTextPos(0, -20); page.ShowText("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); page.MoveTextPos(0, -20); page.ShowText("1234567890"); page.MoveTextPos(0, -20); page.SetFontAndSize(detail_font[i], 10); page.ShowText(samp_text); page.MoveTextPos(0, -18); page.SetFontAndSize(detail_font[i], 16); page.ShowText(samp_text); page.MoveTextPos(0, -27); page.SetFontAndSize(detail_font[i], 23); page.ShowText(samp_text); page.MoveTextPos(0, -36); page.SetFontAndSize(detail_font[i], 30); page.ShowText(samp_text); HPdfPoint p = page.GetCurrentTextPos(); /*finish to print text. */ page.EndText(); page.SetLineWidth(0.5f); x_pos = 20; for (int j = 0; j <= samp_text.Length / 2; j++) { page.MoveTo(x_pos, p.y - 10); page.LineTo(x_pos, p.y - 12); page.Stroke(); x_pos = x_pos + 30; } page.SetWidth(p.x + 20); page.SetHeight(PAGE_HEIGHT); page.MoveTo(10, PAGE_HEIGHT - 25); page.LineTo(p.x + 10, PAGE_HEIGHT - 25); page.Stroke(); page.MoveTo(10, PAGE_HEIGHT - 85); page.LineTo(p.x + 10, PAGE_HEIGHT - 85); page.Stroke(); page.MoveTo(10, p.y - 12); page.LineTo(p.x + 10, p.y - 12); page.Stroke(); } pdf.SaveToFile("JPFontDemo.pdf"); } catch (Exception e) { Console.Error.WriteLine(e.Message); } } }