Generovani tabulky pri tisku   otázka

C#, WinForms, Tisk, Grafika

Dobry den panove, potrebuji z aplikace tisknout data do tabulky. Generuju jen hlavicku a pod ni jiz umistuji zarovnany text. Problem nastava pri tom zarovnani.

Zkousel jsem jak String.PadRight tak PadLeft. Ale zarovnani bylo spatne. Tak jsem zkusil "tisknout" vsechny data na radek

ev.Graphics.DrawString(dataGridViewRowCol[numRow].Cells[0].Value.ToString(), printFont, printBrush, leftMargin + 10, yPrintPosition, new StringFormat());

ev.Graphics.DrawString(dataGridViewRowCol[numRow].Cells[1].Value.ToString(), printFont, printBrush, leftMargin + 50, yPrintPosition, new StringFormat());
...

Po vygenerovani se teprve odradkuje. Text se diky leftMarginu zarovnava dobre, ale treba cislo se zarovnava na zacatek, ale ne na konec (coz je jasne ze). Tedy jsou-li pod sebou cisla jako:

5000

0

30

tak by bylo dobre dyby to vypadalo nasledne

5000

0

30

Chtel sem tedy doplnit jeste posunuti o leftMargin o PadRight/PadLeft, ale jaksi bez efektu.

Jakou technikou/zpusobem vykreslit data (cisla) tak aby se zarovnavala dobre.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejak se to spatne naformatovalo po vlozeni takze jeste jednou: chci aby to vypadalo nasledne (misto mezer sem dal tecky)

5000

..40

..30

...5

5000

atd.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

při vypisování textu si pomocí MeasureString zjistíte velikost vypisovaného textu a podle ní upravíte počáteční pozici vypisovaného textu ve sloupci.

var text = dataGridViewRowCol[numRow].Cells[0].Value.ToString();
var sirkaSloupce = 140; 
var odsazeniTextu = 0;
int ppp;
if (int.TryParse(text, out ppp))
{
    var velikostTextu = ev.Graphics.MeasureString(text, new Font("Arial", 16));
    odsazeniTextu = (int)(sirkaSloupce - velikostTextu.Width);
}

ev.Graphics.DrawString(text, printFont, printBrush, leftMargin + 10 + odsazeniTextu, yPrintPosition, new StringFormat());

nahlásit spamnahlásit spam 0 odpovědětodpovědět

dekuji vyzkousim

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback