1. 程式人生 > 其它 >WPF 列印介面控制元件內容

WPF 列印介面控制元件內容

    public class PrintDialogHelper
    {
        private const string PrintServerName = "DESKTOP-49LV5U6";
        private const string PrintName = "80mm Series Printer";

        public PrintDialogHelper()
        {
        }

        /// <summary>
        /// 列印控制元件
        /// </summary>
        ///
<param name="element"></param> public void PrintVisual(FrameworkElement element) { var printDialog = new PrintDialog(); SetPrintProperty(printDialog); var printQueue = SelectedPrintServer(PrintServerName, PrintName); if (printQueue != null
) { printDialog.PrintQueue = printQueue; printDialog.PrintVisual(element, "QRPrint"); } } /// <summary> /// 查詢並獲取印表機 /// </summary> /// <param name="printerServerName">伺服器名字: Lee-pc</param> ///
<param name="printerName">印表機名字:Hp laserjet m1522 mfp series pcl 6 </param> /// <returns></returns> public PrintQueue SelectedPrintServer(string printerServerName, string printerName) { try { // var printers = PrinterSettings.InstalledPrinters;//獲取本機上的所有印表機 // PrintServer printServer = null; // foreach (string printer in printers) // { // if (printer.Contains(printerName)) // printServer = new PrintServer("\\\\" + printerServerName); // } // if (printServer == null) return null;//沒有找到印表機伺服器 // var printQueue = printServer.GetPrintQueue(printerName); var printQueue = LocalPrintServer.GetDefaultPrintQueue(); return printQueue; } catch (Exception) { return null;//沒有找到印表機 } } /// <summary> /// 設定列印格式 /// </summary> /// <param name="printDialog">列印文件</param> /// <param name="pageSize">列印紙張大小 a4</param> /// <param name="pageOrientation">列印方向 豎向</param> public void SetPrintProperty(PrintDialog printDialog, PageOrientation pageOrientation = PageOrientation.Portrait) { var printTicket = printDialog.PrintTicket; printTicket.PageMediaSize = new PageMediaSize(PageMediaSizeName.Unknown,198, 842); printTicket.PageOrientation = pageOrientation;//預設豎向列印 } }

參考連結: https://blog.csdn.net/liuruxin/article/details/28656829?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-28656829-blog-118187864.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-28656829-blog-118187864.pc_relevant_antiscanv2&utm_relevant_index=2

一張圖片的打印出來的實際尺寸是由此圖片的畫素和解析度共同決定的,畫素(Pixel)是指構成圖片的小色點,解析度(單位DPI)是指每英寸(Inch)上的畫素數量,可以看做是這些小色點的分佈密度;畫素相同時,解析度越高則畫素密度越大,實際列印尺寸越小,影象也越細膩。

實際尺寸(英寸)=畫素/解析度; 1英寸=2.54釐米; 如一張圖片寬為600畫素,解析度為300,那麼實際列印寬度為:600/300=2英寸,約為5釐米。

 畫素尺寸換算公式:  https://www.gaitubao.com/tools/pixel2cm.html