Beispiel #1
0
        /// <summary>
        /// Print
        /// </summary>
        /// <param name="printerName">Printer Name</param>
        public void PrintX(string printername)
        {
            if (PdfResult == 0 && pdfFile != null)
            {
                try
                {
                    //打印机设置
                    PrinterSettings settings = new PrinterSettings();
                    settings.PrinterName = printername;
                    settings.PrintToFile = false;
                    settings.Copies      = 1;
                    settings.PrintRange  = PrintRange.AllPages;
                    //设置纸张大小(可以不设置取,取默认设置)
                    PaperSize ps = new PaperSize("Your Paper Name", 595, 842);
                    ps.RawKind = 9;         //如果是自定义纸张,就要大于118

                    //打印设置
                    PDFRender.Printing.PDFPrintSettings pdfPrintSettings = new PDFRender.Printing.PDFPrintSettings(settings);
                    pdfPrintSettings.AutoRotate            = false;             //自动旋转
                    pdfPrintSettings.BitmapPrintResolution = 560;               //图片打印精度
                    pdfPrintSettings.PaperSize             = ps;                //纸张尺寸
                    pdfPrintSettings.PageScaling           = PDFRender.Printing.PageScaling.FitToPrinterMarginsProportional;

                    pdfFile.Print(pdfPrintSettings);
                }
                catch (Exception ex)
                {
                    Console.Write(ex.Message);
                    PdfResult = 14;
                }
            }
        }
Beispiel #2
0
        public bool pdf_Printer_fast(printerParam param, int copys, out string resultString)
        {
            resultString = "";
            PDFFile pdf = PDFFile.Open(param.FileName);

            try
            {
                PrinterSettings settings = new PrinterSettings();
                settings.PrinterName = param.printerName;
                settings.PrintToFile = false;
                if (!settings.IsValid)
                {
                    throw new Exception("打印机:" + param.printerName + "无效");
                }
                //设置纸张大小(可以不设置,取默认设置)3.90 in,  8.65 in
                PaperSize ps = new PaperSize("test", 4, 9);
                ps.RawKind = 9; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx)
                O2S.Components.PDFRender4NET.Printing.PDFPrintSettings pdfPrintSettings = new O2S.Components.PDFRender4NET.Printing.PDFPrintSettings(settings);
                pdfPrintSettings.PaperSize               = ps;
                pdfPrintSettings.PageScaling             = O2S.Components.PDFRender4NET.Printing.PageScaling.FitToPrinterMarginsProportional;
                pdfPrintSettings.PrinterSettings.Collate = true;
                if (pdf.GetPageSize(0).Width > pdf.GetPageSize(0).Height)
                {
                    pdfPrintSettings.PrinterSettings.DefaultPageSettings.Landscape = true;
                }
                else
                {
                    pdfPrintSettings.PrinterSettings.DefaultPageSettings.Landscape = false;
                }
                pdfPrintSettings.PrinterSettings.Copies = Convert.ToInt16(copys);
                if (!param.isColor)
                {
                    if (pdfPrintSettings.PrinterSettings.PaperSources.Count <= param.PaperSource)
                    {
                        //MessageBox.Show("纸盒参数错误!");
                        throw new Exception("纸盒参数错误!");
                    }
                    else
                    {
                        pdfPrintSettings.PaperSource = pdfPrintSettings.PrinterSettings.PaperSources[param.PaperSource];
                    }
                }
                else
                {
                    for (int i = 0; i < pdfPrintSettings.PrinterSettings.PaperSources.Count; i++)
                    {
                        if (pdfPrintSettings.PrinterSettings.PaperSources[i].SourceName.ToString().Contains("纸盘 " + (param.PaperSource + 1).ToString()))
                        {
                            pdfPrintSettings.PaperSource = pdfPrintSettings.PrinterSettings.PaperSources[i];
                        }
                    }
                    if (pdfPrintSettings.PaperSource == null)
                    {
                        throw new Exception("纸盒参数错误!");
                    }
                }
                pdfPrintSettings.PrinterSettings.DefaultPageSettings.Margins.Left = Math.Max(0, (int)(pdfPrintSettings.PrinterSettings.DefaultPageSettings.PaperSize.Width - pdf.GetPageSize(0).Width) / 2);
                pdfPrintSettings.PrinterSettings.DefaultPageSettings.Margins.Top  = Math.Max(0, (int)(pdfPrintSettings.PrinterSettings.DefaultPageSettings.PaperSize.Height - pdf.GetPageSize(0).Height) / 2);
                if (param.isColor)
                {
                    pdfPrintSettings.PrinterSettings.DefaultPageSettings.Color = true;
                }
                bool isDuplex = pdfPrintSettings.PrinterSettings.CanDuplex;
                if (!isDuplex)
                {
                    if (param.DoubleForm)
                    {
                        throw new Exception("该打印机不支持双面打印!");
                    }
                    else
                    {
                        pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Simplex;
                    }
                }
                else
                {
                    if (param.DoubleForm)
                    {
                        if (pdf.GetPageSize(0).Width > pdf.GetPageSize(0).Height)
                        {
                            pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Horizontal;
                        }
                        else
                        {
                            pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical;
                        }
                    }
                    else
                    {
                        pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Simplex;
                    }
                }
                pdf.Print(pdfPrintSettings);
                pdf.Dispose();
                resultString = "";
                return(true);
            }
            catch (Exception ex)
            {
                resultString += ex.Message + ";";
                pdf.Dispose();
                return(false);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Print
        /// </summary>
        /// <param name="printerName">Printer Name</param>
        public void PrintX(string printername)
        {
            if(PdfResult == 0 && pdfFile != null)
            {
                try
                {
                    //打印机设置
                    PrinterSettings settings = new PrinterSettings();
                    settings.PrinterName = printername;
                    settings.PrintToFile = false;
                    settings.Copies = 1;
                    settings.PrintRange = PrintRange.AllPages;
                    //设置纸张大小(可以不设置取,取默认设置)
                    PaperSize ps = new PaperSize("Your Paper Name",595,842);
                    ps.RawKind = 9; //如果是自定义纸张,就要大于118

                    //打印设置
                    PDFRender.Printing.PDFPrintSettings pdfPrintSettings = new PDFRender.Printing.PDFPrintSettings(settings);
                    pdfPrintSettings.AutoRotate = false;			//自动旋转
                    pdfPrintSettings.BitmapPrintResolution = 560;	//图片打印精度
                    pdfPrintSettings.PaperSize = ps;				//纸张尺寸
                    pdfPrintSettings.PageScaling = PDFRender.Printing.PageScaling.FitToPrinterMarginsProportional;

                    pdfFile.Print(pdfPrintSettings);

                }
                catch(Exception ex)
                {
                    Console.Write(ex.Message);
                    PdfResult = 14;
                }
            }
        }