5 Private Sub DrawLine(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
7 page.MoveTextPos(x, y - 10)
11 page.MoveTo(x, y - 15)
12 page.LineTo(x + 220, y - 15)
16 Private Sub DrawLine2(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
18 page.MoveTextPos(x, y)
22 page.MoveTo(x + 30, y - 25)
23 page.LineTo(x + 160, y - 25)
27 Private Sub DrawRect(ByRef page As HPdfPage, ByVal x As Single, ByVal y As Single, ByVal label As String)
29 page.MoveTextPos(x, y - 10)
33 page.Rectangle(x, y - 40, 220, 25)
37 Console.WriteLine("libhpdf-" + HPdfDoc.HPdfGetVersion())
40 Const page_title As String = "LineDemo"
42 Dim pdf As HPdfDoc = New HPdfDoc()
45 Dim font As HPdfFont = pdf.GetFont("Helvetica", Nothing)
47 ' add a new page object.
48 Dim page As HPdfPage = pdf.AddPage()
50 ' print the lines of the page.
52 page.Rectangle(50, 50, page.GetWidth() - 100, page.GetHeight() - 110)
55 ' print the title of the page (with positioning center).
56 page.SetFontAndSize(font, 24)
57 Dim tw As Single = page.TextWidth(page_title)
59 page.MoveTextPos((page.GetWidth() - tw) / 2, page.GetHeight() - 50)
60 page.ShowText(page_title)
63 page.SetFontAndSize(font, 10)
65 ' Draw verious widths of lines.
67 DrawLine(page, 60, 770, "line width = 0")
69 page.SetLineWidth(1.0F)
70 DrawLine(page, 60, 740, "line width = 1.0")
72 page.SetLineWidth(2.0F)
73 DrawLine(page, 60, 710, "line width = 2.0")
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}
80 page.SetLineWidth(1.0F)
82 page.SetDash(dash_mode1, 1)
83 DrawLine(page, 60, 680, "dash_ptn=[3], phase=1 -- 2 on, 3 off, 3 on...")
85 page.SetDash(dash_mode2, 2)
86 DrawLine(page, 60, 650, "dash_ptn=[7, 3], phase=2 -- 5 on 3 off, 7 on,...")
88 page.SetDash(dash_mode3, 0)
89 DrawLine(page, 60, 620, "dash_ptn=[8, 7, 2, 7], phase=0")
91 page.SetDash(Nothing, 0)
94 page.SetRGBStroke(0.0F, 0.5F, 0.0F)
97 page.SetLineCap(HPdfLineCap.HPDF_BUTT_END)
98 DrawLine2(page, 60, 570, "HPDF_BUTT_END")
100 page.SetLineCap(HPdfLineCap.HPDF_ROUND_END)
101 DrawLine2(page, 60, 505, "HPDF_ROUND_END")
103 page.SetLineCap(HPdfLineCap.HPDF_PROJECTING_SCUARE_END)
104 DrawLine2(page, 60, 440, "HPDF_PROJECTING_SCUARE_END")
107 page.SetLineWidth(30)
108 page.SetRGBStroke(0.0F, 0.0F, 0.5F)
110 page.SetLineJoin(HPdfLineJoin.HPDF_MITER_JOIN)
111 page.MoveTo(120, 300)
112 page.LineTo(160, 340)
113 page.LineTo(200, 300)
117 page.MoveTextPos(60, 360)
118 page.ShowText("HPDF_MITER_JOIN")
121 page.SetLineJoin(HPdfLineJoin.HPDF_ROUND_JOIN)
122 page.MoveTo(120, 195)
123 page.LineTo(160, 235)
124 page.LineTo(200, 195)
128 page.MoveTextPos(60, 255)
129 page.ShowText("HPDF_ROUND_JOIN")
132 page.SetLineJoin(HPdfLineJoin.HPDF_BEVEL_JOIN)
134 page.LineTo(160, 130)
139 page.MoveTextPos(60, 150)
140 page.ShowText("HPDF_BEVEL_JOIN")
145 page.SetRGBStroke(0, 0, 0)
146 page.SetRGBFill(0.75F, 0.0F, 0.0F)
148 DrawRect(page, 300, 770, "Stroke")
151 DrawRect(page, 300, 720, "Fill")
154 DrawRect(page, 300, 670, "Fill then Stroke")
158 page.GSave() ' Save the current graphic state
159 DrawRect(page, 300, 620, "Clip Rectangle")
162 page.SetFontAndSize(font, 13)
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")
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
183 page.SetRGBFill(0, 0, 0)
186 page.MoveTextPos(300, 540)
187 page.ShowText("CurveTo2(x1, y1, x2. y2)")
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)")
199 page.SetDash(dash_mode1, 0)
201 page.SetLineWidth(0.5F)
206 page.SetDash(Nothing, 0)
208 page.SetLineWidth(1.5F)
211 page.CurveTo2(x1, y1, x2, y2)
214 ' Curve Example(CurveTo3)
220 page.MoveTextPos(300, 390)
221 page.ShowText("CurveTo3(x1, y1, x2. y2)")
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)")
233 page.SetDash(dash_mode1, 0)
235 page.SetLineWidth(0.5F)
240 page.SetDash(Nothing, 0)
242 page.SetLineWidth(1.5F)
244 page.CurveTo3(x1, y1, x2, y2)
247 ' Curve Example(CurveTo)
254 page.MoveTextPos(300, 240)
255 page.ShowText("CurveTo(x1, y1, x2. y2, x3, y3)")
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)")
269 page.SetDash(dash_mode1, 0)
271 page.SetLineWidth(0.5F)
279 page.SetDash(Nothing, 0)
281 page.SetLineWidth(1.5F)
283 page.CurveTo(x1, y1, x2, y2, x3, y3)
286 pdf.SaveToFile("LineDemo.pdf")
289 Catch ex As Exception
290 Console.Error.WriteLine(ex.Message)