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

Velicina stranice

[es] :: .NET :: Velicina stranice

[ Pregleda: 3288 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.fiberop.matgnet.com.

Sajt: www.mika.rs


+6 Profil

icon Velicina stranice10.03.2005. u 12:31 - pre 232 meseci
Pozdrav narode, treba da stampam na matricnom stampacu, ali ne mogu nikako da podesim velicinu stranice - stampac je zakucao na njegov default za A4.
Trazio sam po netu, nasao sam samo jedan tekst da je to jos jedan od bagova .Net-a i da se moze preko API-ja zaobici.

Da li zna neko kako bi se to moglo uraditi bez poziva API-ja ?
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

miodrag77
Miodrag Dragic
NS

Član broj: 43159
Poruke: 59
*.com
Via: [es] mailing liste



Profil

icon Re: Velicina stranice10.03.2005. u 13:33 - pre 232 meseci
>
samo sve smest u crystal u gornji levi ugao i to sljaka. Ja sam tako
napravio prog koji stampa recepte za lekove
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.fiberop.matgnet.com.

Sajt: www.mika.rs


+6 Profil

icon Re: Velicina stranice10.03.2005. u 13:54 - pre 232 meseci
Hvala ti miodrag77, ali to nije to. Izvini, nisam bio precizniji o cemu se radi, moja glupost :(

Stampanje radim preko klase PrintDocument.

Promena velicine stranice:
Code:

public void SetPaperSize(string name, float width_in_CM, float height_in_CM, bool bLandscape)
        {            
        if(name == null) name = "default";        

        m_prnDoc.DefaultPageSettings.Landscape = bLandscape;
        m_prnDoc.DefaultPageSettings.PaperSize = new PaperSize("List",
                (int)(width_in_CM * 39.37f),
                (int)(height_in_CM * 39.37f));
        }


Kontam da treba da se napravi novi PaperSize i da se taj novi format ubaci u kolekciju PaperSizes od PrinterSettings-a, ali su svi property-i read-only.

Kada podesim rezoluciju stampanja DefaultPageSettings-a, to radi, ali ne i sa velicinom stranice.

Any ideas ?
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Sasa Popovic
Software Architect / co-owner, Vega IT
Sourcing
Novi Sad

Član broj: 7402
Poruke: 33
*.leased.neobee.net.

Sajt: www.vegaitsourcing.rs


Profil

icon Re: Velicina stranice14.03.2005. u 15:40 - pre 232 meseci
Pozdrav dusty,

Imam isti problem kao i ti a evo sta sam do sada uradio:

1. hvatam QueryPageSettings event PrintDocument klase. Ovaj event se desi svaki put pre nego sto se zapocne stampa i mislim da je to mesto na kom treba podesiti sve sto je potrebno stampacu.
2. postavim papersize na odgovarajuci format:
Code:

        private void printDocument_QueryPageSettings(object sender, QueryPageSettingsEventArgs e) {
            e.PageSettings.PaperSize = new PaperSize(PaperKind.Custom.ToString(), 700, 300);
        }


Nakon sto se izvrsi ovaj kod, paper size je stvarno podesen na odgovarajucu velicinu ali stampa i dalje stampa isto kao i ranije A4 format.

Jesi li mozda uspeo da uradis nesto vise?
Da li mozda imas resenje koriscenjem API poziva?
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.fiberop.matgnet.com.

Sajt: www.mika.rs


+6 Profil

icon Re: Velicina stranice24.03.2005. u 08:47 - pre 232 meseci
Zadnja dva-tri dana se zezam sa ovim i nista nisam uradio :(
Poslednji ocajnicki pokusaj je bio da pokupim DevMode strukturu perko metode GetHDevMode i kada podesim papir da je vratim sa SetHDevMode. I naravno nista.

Code:

IntPtr hDevMode = m_prnDoc.PrinterSettings.GetHdevmode();
IntPtr pDevMode = Win32.GlobalLock(hDevMode);

Debug.WriteLine((string)Marshal.PtrToStringUni(pDevMode));
Debug.WriteLine("Length " + ((int)Marshal.ReadInt16((IntPtr)((int)pDevMode + 0x50))).ToString());
Debug.WriteLine("Height " + ((int)Marshal.ReadInt16((IntPtr)((int)pDevMode + 0x52))).ToString());

Marshal.WriteInt16(pDevMode, 0x50, Convert.ToInt16(height_in_CM * 100));
Marshal.WriteInt16(pDevMode, 0x52, Convert.ToInt16(width_in_CM * 100));            
m_prnDoc.PrinterSettings.SetHdevmode(hDevMode);
Debug.WriteLine("GlobalUnlock unlocked: " + Win32.GlobalUnlock(hDevMode).ToString());


Kontam da su idijoti iz Microsoft-a zaj@bali bas na SetHDevMode metodi. Ostaje jedino da napravim .dll u C-u koji ce da odradi stampu :(

Ovo stvarno nema smisla sta kretenski MS radi celom svetu :(
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

[es] :: .NET :: Velicina stranice

[ Pregleda: 3288 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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