OSDN Git Service

binding with libharu.
[putex/putex.git] / src / texsourc / lib / libhpdf / if / vb.net / demo / LineDemo.vb
1 Imports HPdf
2
3 Module LineDemo
4
5     Private Sub DrawLine(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
6         page.BeginText()
7         page.MoveTextPos(x, y - 10)
8         page.ShowText(label)
9         page.EndText()
10
11         page.MoveTo(x, y - 15)
12         page.LineTo(x + 220, y - 15)
13         page.Stroke()
14     End Sub
15
16     Private Sub DrawLine2(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
17         page.BeginText()
18         page.MoveTextPos(x, y)
19         page.ShowText(label)
20         page.EndText()
21
22         page.MoveTo(x + 30, y - 25)
23         page.LineTo(x + 160, y - 25)
24         page.Stroke()
25     End Sub
26
27     Private Sub DrawRect(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
28         page.BeginText()
29         page.MoveTextPos(x, y - 10)
30         page.ShowText(label)
31         page.EndText()
32
33         page.Rectangle(x, y - 40, 220, 25)
34     End Sub
35
36     Sub Main()
37         Console.WriteLine("libhpdf-" + HPdfDoc.HPdfGetVersion())
38
39         Try
40             Const page_title As String = "LineDemo"
41
42             Dim pdf As HPdfDoc = New HPdfDoc()
43
44             ' create default-font 
45             Dim font As HPdfFont = pdf.GetFont("Helvetica", Nothing)
46
47             ' add a new page object.
48             Dim page As HPdfPage = pdf.AddPage()
49
50             ' print the lines of the page.
51             page.SetLineWidth(1)
52             page.Rectangle(50, 50, page.GetWidth() - 100, page.GetHeight() - 110)
53             page.Stroke()
54
55             ' print the title of the page (with positioning center). 
56             page.SetFontAndSize(font, 24)
57             Dim tw As Single = page.TextWidth(page_title)
58             page.BeginText()
59             page.MoveTextPos((page.GetWidth() - tw) / 2, page.GetHeight() - 50)
60             page.ShowText(page_title)
61             page.EndText()
62
63             page.SetFontAndSize(font, 10)
64
65             ' Draw verious widths of lines.
66             page.SetLineWidth(0)
67             DrawLine(page, 60, 770, "line width = 0")
68
69             page.SetLineWidth(1.0F)
70             DrawLine(page, 60, 740, "line width = 1.0")
71
72             page.SetLineWidth(2.0F)
73             DrawLine(page, 60, 710, "line width = 2.0")
74
75             ' Line dash pattern
76             Dim dash_mode1 As UShort() = {3}
77             Dim dash_mode2 As UShort() = {3, 7}
78             Dim dash_mode3 As UShort() = {8, 7, 2, 7}
79
80             page.SetLineWidth(1.0F)
81
82             page.SetDash(dash_mode1, 1)
83             DrawLine(page, 60, 680, "dash_ptn=[3], phase=1 -- 2 on, 3 off, 3 on...")
84
85             page.SetDash(dash_mode2, 2)
86             DrawLine(page, 60, 650, "dash_ptn=[7, 3], phase=2 -- 5 on 3 off, 7 on,...")
87
88             page.SetDash(dash_mode3, 0)
89             DrawLine(page, 60, 620, "dash_ptn=[8, 7, 2, 7], phase=0")
90
91             page.SetDash(Nothing, 0)
92
93             page.SetLineWidth(30)
94             page.SetRGBStroke(0.0F, 0.5F, 0.0F)
95
96             ' Line Cap Style
97             page.SetLineCap(HPdfLineCap.HPDF_BUTT_END)
98             DrawLine2(page, 60, 570, "HPDF_BUTT_END")
99
100             page.SetLineCap(HPdfLineCap.HPDF_ROUND_END)
101             DrawLine2(page, 60, 505, "HPDF_ROUND_END")
102
103             page.SetLineCap(HPdfLineCap.HPDF_PROJECTING_SCUARE_END)
104             DrawLine2(page, 60, 440, "HPDF_PROJECTING_SCUARE_END")
105
106             ' Line Join Style
107             page.SetLineWidth(30)
108             page.SetRGBStroke(0.0F, 0.0F, 0.5F)
109
110             page.SetLineJoin(HPdfLineJoin.HPDF_MITER_JOIN)
111             page.MoveTo(120, 300)
112             page.LineTo(160, 340)
113             page.LineTo(200, 300)
114             page.Stroke()
115
116             page.BeginText()
117             page.MoveTextPos(60, 360)
118             page.ShowText("HPDF_MITER_JOIN")
119             page.EndText()
120
121             page.SetLineJoin(HPdfLineJoin.HPDF_ROUND_JOIN)
122             page.MoveTo(120, 195)
123             page.LineTo(160, 235)
124             page.LineTo(200, 195)
125             page.Stroke()
126
127             page.BeginText()
128             page.MoveTextPos(60, 255)
129             page.ShowText("HPDF_ROUND_JOIN")
130             page.EndText()
131
132             page.SetLineJoin(HPdfLineJoin.HPDF_BEVEL_JOIN)
133             page.MoveTo(120, 90)
134             page.LineTo(160, 130)
135             page.LineTo(200, 90)
136             page.Stroke()
137
138             page.BeginText()
139             page.MoveTextPos(60, 150)
140             page.ShowText("HPDF_BEVEL_JOIN")
141             page.EndText()
142
143             ' Draw Rectangle
144             page.SetLineWidth(2)
145             page.SetRGBStroke(0, 0, 0)
146             page.SetRGBFill(0.75F, 0.0F, 0.0F)
147
148             DrawRect(page, 300, 770, "Stroke")
149             page.Stroke()
150
151             DrawRect(page, 300, 720, "Fill")
152             page.Fill()
153
154             DrawRect(page, 300, 670, "Fill then Stroke")
155             page.FillStroke()
156
157             ' Clip Rect
158             page.GSave()  ' Save the current graphic state
159             DrawRect(page, 300, 620, "Clip Rectangle")
160             page.Clip()
161             page.Stroke()
162             page.SetFontAndSize(font, 13)
163
164             page.BeginText()
165             page.MoveTextPos(290, 600)
166             page.SetTextLeading(12)
167             page.ShowText("Clip Clip Clip Clip Clip Clipi Clip Clip Clip")
168             page.ShowTextNextLine("Clip Clip Clip Clip Clip Clip Clip Clip Clip")
169             page.ShowTextNextLine("Clip Clip Clip Clip Clip Clip Clip Clip Clip")
170             page.EndText()
171             page.GRestore()
172
173             ' Curve Example(CurveTo2)
174             Dim x As Single = 330
175             Dim y As Single = 440
176             Dim x1 As Single = 430
177             Dim y1 As Single = 530
178             Dim x2 As Single = 480
179             Dim y2 As Single = 470
180             Dim x3 As Single = 480
181             Dim y3 As Single = 90
182
183             page.SetRGBFill(0, 0, 0)
184
185             page.BeginText()
186             page.MoveTextPos(300, 540)
187             page.ShowText("CurveTo2(x1, y1, x2. y2)")
188             page.EndText()
189
190             page.BeginText()
191             page.MoveTextPos(x + 5, y - 5)
192             page.ShowText("Current point")
193             page.MoveTextPos(x1 - x, y1 - y)
194             page.ShowText("(x1, y1)")
195             page.MoveTextPos(x2 - x1, y2 - y1)
196             page.ShowText("(x2, y2)")
197             page.EndText()
198
199             page.SetDash(dash_mode1, 0)
200
201             page.SetLineWidth(0.5F)
202             page.MoveTo(x1, y1)
203             page.LineTo(x2, y2)
204             page.Stroke()
205
206             page.SetDash(Nothing, 0)
207
208             page.SetLineWidth(1.5F)
209
210             page.MoveTo(x, y)
211             page.CurveTo2(x1, y1, x2, y2)
212             page.Stroke()
213
214             ' Curve Example(CurveTo3)
215             y -= 150
216             y1 -= 150
217             y2 -= 150
218
219             page.BeginText()
220             page.MoveTextPos(300, 390)
221             page.ShowText("CurveTo3(x1, y1, x2. y2)")
222             page.EndText()
223
224             page.BeginText()
225             page.MoveTextPos(x + 5, y - 5)
226             page.ShowText("Current point")
227             page.MoveTextPos(x1 - x, y1 - y)
228             page.ShowText("(x1, y1)")
229             page.MoveTextPos(x2 - x1, y2 - y1)
230             page.ShowText("(x2, y2)")
231             page.EndText()
232
233             page.SetDash(dash_mode1, 0)
234
235             page.SetLineWidth(0.5F)
236             page.MoveTo(x, y)
237             page.LineTo(x1, y1)
238             page.Stroke()
239
240             page.SetDash(Nothing, 0)
241
242             page.SetLineWidth(1.5F)
243             page.MoveTo(x, y)
244             page.CurveTo3(x1, y1, x2, y2)
245             page.Stroke()
246
247             ' Curve Example(CurveTo)
248             y -= 150
249             y1 -= 160
250             y2 -= 130
251             x2 += 10
252
253             page.BeginText()
254             page.MoveTextPos(300, 240)
255             page.ShowText("CurveTo(x1, y1, x2. y2, x3, y3)")
256             page.EndText()
257
258             page.BeginText()
259             page.MoveTextPos(x + 5, y - 5)
260             page.ShowText("Current point")
261             page.MoveTextPos(x1 - x, y1 - y)
262             page.ShowText("(x1, y1)")
263             page.MoveTextPos(x2 - x1, y2 - y1)
264             page.ShowText("(x2, y2)")
265             page.MoveTextPos(x3 - x2, y3 - y2)
266             page.ShowText("(x3, y3)")
267             page.EndText()
268
269             page.SetDash(dash_mode1, 0)
270
271             page.SetLineWidth(0.5F)
272             page.MoveTo(x, y)
273             page.LineTo(x1, y1)
274             page.Stroke()
275             page.MoveTo(x2, y2)
276             page.LineTo(x3, y3)
277             page.Stroke()
278
279             page.SetDash(Nothing, 0)
280
281             page.SetLineWidth(1.5F)
282             page.MoveTo(x, y)
283             page.CurveTo(x1, y1, x2, y2, x3, y3)
284             page.Stroke()
285
286             pdf.SaveToFile("LineDemo.pdf")
287
288
289         Catch ex As Exception
290             Console.Error.WriteLine(ex.Message)
291         End Try
292     End Sub
293 End Module