Avatar
jt.e
Člen
Avatar
jt.e:

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:

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.