Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PrintForm - iskoristiti celu A4 stranicu

[es] :: Visual Basic 6 :: PrintForm - iskoristiti celu A4 stranicu

[ Pregleda: 2282 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.adsl.beotel.net.



+18 Profil

icon PrintForm - iskoristiti celu A4 stranicu10.11.2008. u 16:41 - pre 187 meseci
Pozdrav!
Da li je moguce da se kompletna forma razvuce na A4 stranicu i kako.
Kada stampam pomocu PrintForm, sve mi se odstampa do polovine stranice....

 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu10.11.2008. u 21:30 - pre 187 meseci
ja sam to pokusavao i nikada nisam uspeo, pa sam resio sa Printer.CurrentX i Printer.CurrentY jedino je problem sto za sav tekst moras da podesavas poziciju
 
Odgovor na temu

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.adsl-a-1.sezampro.yu.



+322 Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu11.11.2008. u 11:23 - pre 187 meseci
Meni uopste nije jasno sta ti ustvari zelis? Kako mislis da razvuces formu da ti stane na ceo list? Na cega bi to licilo ako bi ti ono sto stane na pola strane razvukao na citAVU? Sve bi se izoblicilo, izduzilo i mogu samo da zamislim kako bi izgledalo. A ako bas ne zelis da prihvatis da koristis printer.curentx i printer.curenty onda ti preostaje samo jedno a to mozes koristiti samo ako ce ta aplikacija da radi samo kod tebe kuci. Onda lepo desni klik na desktop--properties--settings pa povecaj rezoluciju pa ce ti se veci deo forme videti na ekranu i samim ti ces i odsstampati vise mada je to zaista glupa i neefikasna metoda. Nego lepo stavi jedan picturebox na formu, razvuci je visinu i sirinu da odgovara dimenziji A4 papira pa kucaj.
Code:

Picture1.AutoRedraw = True
Picture1.CurrentX = 500
Picture1.CurrentY = 2000
Picture1.Print "TEXT"
Picture1.CurrentX = 1500
Picture1.CurrentY = 3000
Picture1.Print "TEXT"


isprobaj ovo i imaces cak i lep printprewiev pre stampanja pa vidis sta tacno pravis
posle kada hoces to sto vidis da odstampas dodas red
Code:

Printer.PaintPicture Picture1.Image, 0, 0, Picture1.Width, Picture1.Height, 0, 0, Picture1.Width, Picture1.Height, vbSrcCopy
Printer.EndDoc

i to je to pa uzivaj, videces da je mnogo lepse i da imas bolju kontrolu

ovo 5000 i 2000 su ti pozicije po x i y osi u twipsima. (567 twips-a = 1 cm). Ako ne zelis u twipsima nego bi npr da ti skala bude u cm samo na pocetku koda upisi
Code:

Picture1.Scalemode = vbcentimeters

i skala ce ti biti u cm
onda ces umesto 500 i 2000 npr stavljati 5 i 20 sto ce ti biti 5 cm desno i 30 cm dole. Milim da sam ti pomogao. Probaj pa zakljuci sta je bolje resenje. Pozdrav!

Eh da... isto tako menjas i font(velicinu debljinu itd...)
Kazes Picture1.Font=15
Ustvari samo ukucas picture1. i on ce ti ponuditi sta sve mozes menjati pa ces naci i ostale stvari vezane za font.


[Ovu poruku je menjao Blue82 dana 11.11.2008. u 19:35 GMT+1]

[Ovu poruku je menjao Blue82 dana 11.11.2008. u 19:36 GMT+1]

[Ovu poruku je menjao Blue82 dana 11.11.2008. u 19:36 GMT+1]
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
91.148.92.*



+18 Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu11.11.2008. u 16:29 - pre 187 meseci
Ok...probacu tu varijantu...za sad sam se snasao...
Nisam se dobro izrazio, ne "razvuci", nego "zumirati" preko cele a4 strane...
Problem je sto ima oko 40-tak labela, 50 text box-ova linije i ostalo...i sve treba da stampam.
To je neki formular...treba ga odmah nakon ukucavanja podataka odstampati...
Hvala u svakom slucaju!!!!
 
Odgovor na temu

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.adsl-a-1.sezampro.yu.



+322 Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu11.11.2008. u 18:28 - pre 187 meseci
Pa i to se resava jednostavno.
npr...
Code:

picture1.curentx=text1.left
picture1.curenty=text1.top
picture1.print text1.text


ovim kodom si rekao da na papiru na lokaciji na kojoj se nalazio textbox upise to sto pise u njemu. I dobices identicnu formu.
za liniju koristis
Code:

picture1.line(0,0)-(5000,4000)



Moze se desiti da nesto od ovoga ne radi jer kucam iz glave pa mozda ima neki mali propist a ako imas problema sa nekom linijom koda napisi je pa cemo ispraviti. U sustini treba da je sve ok.

U prvoj zagradi su ti koordinate prve tacke u drugoj druge i linija koju ces dobiti povezuje te 2 tacke.

Ako imas neke podatke da stampas tabelarno jede ispod druge neces milion puta pisati koliko je curentX i curentY nego ih stavis u neku for petlju pa svaki put kada prodje jednu for putanju na njenom kraju dodajes za koliko da se poveca jedan red, znaci picture1.curenty=picture1.curentY+razmak_izmedju_redova
A za taj razmak stavis neki broj, npr 400 i on ce ti podatke pisati jedne ispod drugog. Malo masete, i kada probas osnovno dalje ce ti se kazati samo , samo da shvatis kako to funkcionise.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
91.148.92.*



+18 Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu12.11.2008. u 18:44 - pre 187 meseci
Ovo poslednja ideja je najbolja za sad...poceo sam tako i dobro je za sad...
Hvala...
 
Odgovor na temu

pega.cello
Predrag Mihailovic
Profesor muzike, Muzicka skola
Kraljevo

Član broj: 187434
Poruke: 5
93.86.129.*



Profil

icon Re: PrintForm - iskoristiti celu A4 stranicu13.11.2008. u 23:54 - pre 187 meseci
Mislim da će ti ovaj kod pomoći da odštampaš ceo format A4, a ne samo njegov jedan deo.

PrintForm metod štampa samo delove obrasca koji su prikazani na ekranu. Naredni deo demonstrira kako odštampati obrazac koji je na bilo koji način veći od ekrana, tj. kada je prikazan samo jedan njegov deo (deo obrasca).

Ako treba odštampati obrazac koji je veći od ekrana, onda kontrole na obrascu moraju biti postavljene u kontrolu PictureBox. U ovom slučaju štampač će štampati sve bitmape (kontrole izražene u bitovima), umesto zarobljene slike obrasca na ekranu (šta, u stvari PrintForm metoda čini).

Pošto se bitmapa (slika) kontrole PictureBox čuva u pomoćnoj memoriji, možemo pristupiti svim bitmapama unutar same kontrole PictureBox bez obzira šta je prikazano na ekranu.

Napomena: Visinu obrasca moramo podesiti na 11 inča. Ako se traži neka druga veličina papira, kao na primer 8.5 X 14 inča, podesićemo promenljivu sTall na traženu vrednost – 14. Napomenimo još da su sve vrednosti u tvipovima (engl. twips), zato što su tvipovi difoltni model veličine obrasca. Ako menjamo svojstvo ScaleMode, moramo pažljivo promeniti sve vrednosti.


Primer štampanja obrasca većeg od ekrana:

1. Startujemo nov StandardEXE projekat u Visual Basicu (podrazumevajući obrazac po difoltu je Form1).
2. Dodelimo dve kontrole PictureBox u obrazac Form1 (izbegnućemo crtanje druge kontrole PictureBox unutar prve
zato što takav akt čini drugu kontrolu PictureBox članom prve. Umesto toga, postavićemo početnu tačku druge
kontrole PictureBox levo od početne tačke prve kontrole PictureBox).

3. Desni klik na Picture2 i izaberemo SendToBack.
4. Dodamo kontrole koje želimo u Picture1. Picture2 ostavljamo praznu.
5. Dodamo sledeći kod u oblast za deklarisanje:


Private Const twipFactor = 1440
Private Const WM_PAINT = &HF
Private Const WM_PRINT = &H317
Private Const PRF_CLIENT = &H4& ' Draw the window's client area.
Private Const PRF_CHILDREN = &H10& ' Draw all visible child windows.
Private Const PRF_OWNED = &H20& ' Draw all owned windows.

Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long


6. U proceduru komandnog dugmeta ili stavke Print menija File (zavisno od toga šta odaberemo da štampa naš
projekat) unesemo koordinate Top i Left kontrola koje smo postavili u kontrolu Picture1 – npr:

Private Sub mnuFilePrint_Click ()
Dim sWide As Single, sTall As Single
Dim rv As Long

Me.ScaleMode = vbTwips ' default
sWide = 8.5
sTall = 14 ' or 11, etc.
Me.Width = twipFactor * sWide
Me.Height = twipFactor * sTall

With Picture1
.Top = 0
.Left = 0
.Width = twipFactor * sWide
.Height = twipFactor * sTall
End With

With Picture2
.Top = 0
.Left = 0
.Width = twipFactor * sWide
.Height = twipFactor * sTall
End With

With Text1
.Left = 9496
.Top = 2097.9
End With

With Text2
.Left = 9496
.Top = 4557.9
End With

Me.Visible = True
DoEvents

Picture1.SetFocus
Picture2.AutoRedraw = True
rv = SendMessage(Picture1.hwnd, WM_PAINT, Picture2.hDC, 0)
rv = SendMessage(Picture1.hwnd, WM_PRINT, Picture2.hDC, _
PRF_CHILDREN + PRF_CLIENT + PRF_OWNED)
Picture2.Picture = Picture2.Image
Picture2.AutoRedraw = False

CommonDialog1.ShowPrinter
Printer.Print ""
Printer.PaintPicture Picture2.Picture, 0, 0
Printer.EndDoc

Napomena: Svojstva Height i Width ne možemo menjati kodom već samo direktno u prozoru svojstava. Kako vidimo, osnovnom kodu smo dodali kod za koordinate dve kontrole TextBox.




[Ovu poruku je menjao pega.cello dana 14.11.2008. u 02:01 GMT+1]

[Ovu poruku je menjao pega.cello dana 15.11.2008. u 15:46 GMT+1]

[Ovu poruku je menjao pega.cello dana 15.11.2008. u 19:27 GMT+1]

[Ovu poruku je menjao pega.cello dana 15.11.2008. u 19:31 GMT+1]
 
Odgovor na temu

[es] :: Visual Basic 6 :: PrintForm - iskoristiti celu A4 stranicu

[ Pregleda: 2282 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.