IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
jt.e
Člen
Avatar
jt.e:17.11.2015 19:57

Ahoj, už nějakou hodinu se snažím vytisknout na více stran.

Tady je můj celý testovací kód:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;

namespace PrintTest1
{
    public partial class Form1 : Form
    {
        private int page_counter;
        //--------------------------------------------------------------------
        public Form1()
        {
            InitializeComponent();
        }
        //--------------------------------------------------------------------
        private void Print_Page(object sender, PrintPageEventArgs ev)
        {
            SolidBrush brush = new SolidBrush(Color.Navy);

            PointF p_txt = new PointF(32, 24);
            string txt = String.Format("Page {0}", page_counter);
            Font font = new Font("Arial", 22.0f, FontStyle.Bold);

            ev.Graphics.DrawString(txt, font, brush, p_txt);

            ev.HasMorePages = (page_counter < 9);
        }
        //--------------------------------------------------------------------
        private PrintDocument GetPrintData()
        {
            PrintDocument pd = new PrintDocument();
            pd.DefaultPageSettings.PaperSize = new PaperSize("Page", 800, 1000);

            for (page_counter = 0; page_counter < 10; page_counter++)
            {
                pd.PrintPage += new PrintPageEventHandler(Print_Page);
            }

            return pd;
        }
        //--------------------------------------------------------------------
        private void btPrint_Click(object sender, EventArgs e)
        {
            PrintDialog dialog = new PrintDialog();
            dialog.Document = GetPrintData();

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                dialog.Document.Print();
            }
        }
        //--------------------------------------------------------------------
        private void btPrintPreview_Click(object sender, EventArgs e)
        {
            PrintPreviewDialog ppd = new PrintPreviewDialog();
            ppd.Document = GetPrintData();
            ppd.ShowDialog();
        }
        //--------------------------------------------------------------------
    }
}

Vytiskne mi to pouze stránku s textem: "Page 10". Já potřebuji, aby mi to vytisklo 10 stránek s textem "Page 0" až "Page 9"

 
Odpovědět
17.11.2015 19:57
Avatar
jt.e
Člen
Avatar
Odpovídá na jt.e
jt.e:17.11.2015 22:55

tak jsem to nějak vyřešil:

namespace PrintTest1
{
    public partial class Form1 : Form
    {
        private int page_counter;
        //--------------------------------------------------------------------
        public Form1()
        {
            InitializeComponent();
        }
        //--------------------------------------------------------------------
        private void PrintPage(object sender, PrintPageEventArgs ev)
        {
            ev.HasMorePages = false;
            SolidBrush brush = new SolidBrush(Color.Navy);
            //int top = page_counter * 200;
            PointF p_txt = new PointF(32, 24);
            string txt = String.Format("Page {0}", page_counter);
            Font font = new Font("Arial", 22.0f, FontStyle.Bold);

            ev.Graphics.DrawString(txt, font, brush, p_txt);
            page_counter++;
            ev.HasMorePages = (page_counter < 10);
        }
        //--------------------------------------------------------------------
        private PrintDocument GetPrintData()
        {
            PrintDocument pd = new PrintDocument();
            pd.DefaultPageSettings.PaperSize = new PaperSize("Page", 800, 1000);
            page_counter = 0;
            pd.PrintPage += new PrintPageEventHandler(PrintPage);

            return pd;
        }
        //--------------------------------------------------------------------
        private void btPrint_Click(object sender, EventArgs e)
        {
            PrintDialog pd = new PrintDialog();
            pd.Document = GetPrintData();
            if (pd.ShowDialog() == DialogResult.OK) pd.Document.Print();
        }
        //--------------------------------------------------------------------
        private void btPrintPreview_Click(object sender, EventArgs e)
        {
            PrintPreviewDialog ppd = new PrintPreviewDialog();
            ppd.Document = GetPrintData();
            ppd.ShowDialog();
        }
        //--------------------------------------------------------------------
    }
}
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
17.11.2015 22:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.