Re: Drukowanie (prawie) "czystego" tekstu - znaczki sterujące?

Autor: Grzegorz Niemirowski <gnthexfiles_at_poczta.onet.pl>
Data: Fri 26 Oct 2007 - 04:30:46 MET DST
Message-ID: <ffrjgk$2053$1@opal.icpnet.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original

Zby <zby@localhost> napisał(a):
> Szukałem po prostu niekłopotliwej metody na wyprowadzanie "w miarę
> sformatowanego" tekstu na drukarkę pod Windowsami. Ale po moich
> poszukiwaniach wychodzi na to, że chyba jednak nawet nie groff czy APT -
> ale w przypadku Windows właśnie HTML będzie chyba sposobem na to
> najprostszym. Po prostu tagi html-owe są mi znane, więc przygotowanie
> tekstu to nie problem - i niczego dodatkowo instalować nie trzeba.
> Oczywiście, wiadomo że HTML ma ograniczenia - w końcu nie z myślą o
> wydruku był tworzony - ale, jak pisałem, w tym momencie nie szukałem
> czegoś o dużych możliwościach (no, w takim wypadku wypadałoby po prostu
> Ghostscript zainstalować...), tylko możliwie prostego do zastosowania,
> np. w skrypcie.

Generalnie nie trzeba gadać z drukarką tylko z aplikacją, w której można
przygotować dokument do wydruku. Można więc przekazać kod HTML czemuś, co
umie HTMLa. Poniżej inne podejście, z wykorzystaniem .NETowej klasy
PrintDocument
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$doc = new-object System.Drawing.Printing.PrintDocument
$doc.add_PrintPage({
$font1 = new-object System.Drawing.Font("Courier", 36)
$font2 = new-object System.Drawing.Font("Times New Roman", 36)
Write-Host "Printing..."
$string1="Hello "
$string2="World!"
$measure=$_.Graphics.MeasureString($font1, $string1)
$tmargin=$_.MarginBounds.Top
$lmargin=$tmargin+$measure.Width/2
$_.Graphics.DrawString($string1, $font1, [System.Drawing.Brushes]::Green,
$tmargin, $tmargin, (new-object System.Drawing.StringFormat))
$_.Graphics.DrawString($string2, $font2, [System.Drawing.Brushes]::Blue,
$lmargin, $tmargin, (new-object System.Drawing.StringFormat))
})
$doc.Print()

-- 
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 13 days, 1 hours, 12 minutes and 52 seconds 
Received on Fri Oct 26 04:41:46 2007

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Fri 26 Oct 2007 - 04:42:03 MET DST