Использование предварительного просмотра в .Net Winforms - PullRequest
1 голос
/ 31 декабря 2008

Я пишу код на c # в .Net 2008 Winforms.

Я создал окно предварительного просмотра для создания отчета. Он работает нормально, я могу просмотреть отчет, а затем распечатать его. Единственная проблема - он не такой гибкий, как предварительный просмотр Office Print. Пользователи не могут выбрать принтер, отличный от принтера по умолчанию, и они не могут ограничивать печать определенными страницами. Возможно, мне не хватает некоторых необходимых мне вещей.

Вот часть кода, который я использую:

PrintDocument pd = new PrintDocument();
            pd.PrintPage += new PrintPageEventHandler(this.PrintTheGraph);
            pd.DefaultPageSettings.Landscape = true;
            // Allocate a print preview dialog object.
            PrintPreviewDialog dlg = new PrintPreviewDialog();
            dlg.Width = 100;
            dlg.MinimumSize = new Size(375, 250);
            dlg.SetBounds(100, -550, 800, 800);
            dlg.Document = pd;
            DialogResult result = dlg.ShowDialog();

Спасибо,

Bob

Ответы [ 2 ]

5 голосов
/ 01 января 2009

Предварительный просмотр и печать - это разные функции и должны быть разные пункты меню. Выбор предварительного просмотра не должен печатать ваш документ, вполне вероятно, что пользователь захочет увидеть, как выглядит его документ, выложенный на странице, без фактической его печати. ​​

Чтобы распечатать страницу и разрешить выбор устройств принтера, используйте:

PrintDialog pDialog = new PrintDialog( );
pDialog.Document = printDocument;
if (pDialog.ShowDialog( ) == DialogResult.OK) {
    printDocument.DocumentName = fileName;
    printDocument.Print( );
    }

Класс PrintDialog имеет свойство UseEXDialog, которое можно использовать для отображения расширенного диалогового окна «Параметры страницы» с вариантами печати, диапазонами, n-up печатью и т. Д. и др. Обработка всех этих опций - большая работа, сначала PrintDialog работает.

0 голосов
/ 26 июня 2013

спасибо

public OpenFileDialog dlg; private PrintDocument printDocument = new PrintDocument (); private void FileUpload_Click (отправитель объекта, EventArgs e) { dlg = new OpenFileDialog (); dlg.Filter = "Файл документа ( .doc, .docx) | .pdf ; *. xls, .xlsx, .txt";

        if (dlg.ShowDialog() == DialogResult.OK)
           txtFilename.Text = dlg.FileName;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        label2.Text = txtFilename.Text;
        string sFileName = "";
        long nLength = 0;
        byte[] barFile = null;
        if (dlg.FileName != "")
        {
            System.IO.FileStream fs = new System.IO.FileStream(dlg.FileName, System.IO.FileMode.Open);
            System.IO.FileInfo fileInfo = new System.IO.FileInfo(dlg.FileName);
            sFileName = fileInfo.Name;
            nLength = fs.Length;
            barFile = new byte[fs.Length];
            fs.Read(barFile, 0, Convert.ToInt32(fs.Length));
            fs.Close();
            PrintDialog pDialog = new PrintDialog();
            pDialog.Document = printDocument;
            if (pDialog.ShowDialog() == DialogResult.OK)
            {
                printDocument.DocumentName = dlg.FileName;
                printDocument.Print();
            }
        }
        else
        {
            MessageBox.Show("Please Select the File For File Upload");
        }
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...