RosettaCodeData/Task/Pinstripe-Printer/FreeBASIC/pinstripe-printer.basic

37 lines
893 B
Plaintext

Const dpi As Integer = 360 '(300 is OK for laser one, 360 likely for inkjet)
Const size As String = "A4"
Dim As String filename = "Pinstripe-printer-FreeBASIC.bmp"
Dim As Integer w, h ' paper size in pixels
If size = "letter" Then
w = 8.5 * dpi
h = 11.0 * dpi
Elseif size = "A4" Then
w = 8.2677165 * dpi
h = 11.6929134 * dpi
End If
Dim As Integer gap = Int(w Mod (dpi * 8) / 2)
Dim As Integer rows = Log(8 * dpi) / Log(2)
Dim As Integer alto = dpi * 0.8
Screenres w, h, 32
' Set background to white
Line (0, 0) - (w - 1, h - 1), Rgb(255, 255, 255), BF
' Draw the black lines
Dim As Integer y = gap
For row As Integer = 0 To rows - 1
Dim As Integer x = gap
Dim As Integer ancho = 8 * dpi / (2 ^ row)
Do While x < (dpi * 8)
Line (x, y) - (x + ancho, y + alto), Rgb(0, 0, 0), BF
x += ancho * 2
Loop
y += alto
Next row
Bsave(filename, 0)