如何从 Windows 窗体程序保存打印设置?

Posted

技术标签:

【中文标题】如何从 Windows 窗体程序保存打印设置?【英文标题】:How to save print settings from a Windows Forms Program? 【发布时间】:2011-06-11 16:17:37 【问题描述】:

我有打印标签的程序,我必须允许用户保存/记住打印机的设置。所以我有这个代码:

private void printerToolStripButton_Click(object sender, EventArgs e)

     PrintDialog dialog = new PrintDialog();
     dialog.ShowDialog();

用户选择打印机并单击属性按钮,进行一些更改(纸张大小、方向等),然后单击“确定”,然后单击 PrintDialog 上的“确定”。

我的问题是这些更改没有被记住...当我再次单击按钮或重新启动应用程序时,它们消失了...

有谁知道如何将它们持久化在应用程序范围内?或者如果应用范围是不可能的,那么也许如何将它们保存在系统中(所以当我进入控制面板 - > 打印机 - > 右键单击​​打印机 - > 他们会在那里)?

【问题讨论】:

怎么样,你试过我的解决方案了吗? 嗨!还没有,但我这周会试试看:) 【参考方案1】:

你可以使用我自己的interface-driven serialization。 ;)

您可以使用我的 xml 序列化属性扩展接口驱动的序列化。顺便说一句,当您使用接口继承时,接口驱动的序列化很酷;)

using System;
using System.IO;
using System.Windows.Forms;

// download at [http://xmlserialization.codeplex.com/]
using System.Xml.Serialization;
namespace test

    public partial class Form1 : Form
    
        public Form1()
        
            InitializeComponent();
        

        [XmlRootSerializer("PrinterSettings")]
        public interface IPrinterSettings
        
            bool PrintToFile  get; set; 
        

        private static readonly string PrinterConfigurationFullName = Path.Combine(Application.StartupPath, "PrinterSettings.xml");

        private void Form1_Load(object sender, EventArgs e)
        
            if (File.Exists(PrinterConfigurationFullName))
            
                XmlObjectSerializer.Load<IPrinterSettings>(File.ReadAllText(PrinterConfigurationFullName), printDialog1);
            
        

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        
            File.WriteAllText(PrinterConfigurationFullName, XmlObjectSerializer.Save<IPrinterSettings>(printDialog1));
        

        private void button1_Click(object sender, EventArgs e)
        
            if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            
                // do required stuff here...
            
        
    

【讨论】:

我知道,但我需要记住应用程序重新启动之间的此设置。可以通过将它们保存到打印机系统设置,我只是不知道如何做到这一点。 好的,它已经启动并运行了!准备好了 ;) 请下载最新的变更集,[xmlserialization.codeplex.com/SourceControl/changeset/changes/… 感谢您的努力 :) 我会检查您的解决方案并告诉您进展如何 :)

以上是关于如何从 Windows 窗体程序保存打印设置?的主要内容,如果未能解决你的问题,请参考以下文章

c# windows 窗体 如何 设置菜单的权限

如何在 Windows 窗体中分离 UI 线程和进程线程

C# - Windows 窗体应用程序 - 保存文件

delphi程序如何从任务栏及时还原、显示窗体?

如何将打印机设置保存为文本文件

如何在 Windows 窗体中运行 MS Access 2013 中保存的查询。 C#