在项目的设置文件中创建一个设置键并为其选择System.drawing.Printing.PrinterSettings 类型并将其命名为例如PrinterSettins。然后你可以将你的打印机设置保存在这个属性中,或者简单地从这个属性中读取。
您还可以为PrinterSettings 的各个属性创建一些设置键,例如PrinterName 保存它们。
保存:
if(printDialog1.ShowDialog()==DialogResult.OK)
{
Properties.Settings.Default.PrinterSettings = printDialog1.PrinterSettings;
//Properties.Settings.PrinterName = printDialog1.PrinterSettings.PrinterName;
Properties.Settings.Default.Save();
}
阅读:
printDocument1.PrinterSettings = Properties.Settings.Default.PrinterSettings;
//printDocument1.PrinterSettings.PrinterName = Properties.Settings.Default.PrinterName;
注意:
编辑
由于PrinterSettings类是可序列化的,另一种解决方案是将其转换为base64字符串并保存在字符串中并从字符串中恢复。因此,您可以创建一个字符串设置键PrinterSettings 并将PrinterSettings 保存在其中或从中恢复:
保存:
Properties.Settings.Default.PrinterSettings=SettingToString( printDialog1.PrinterSettings);
Properties.Settings.Default.Save();
阅读:
printDocument1.PrinterSettings = SettingFromString(Properties.Settings.Default.PrinterSettings);
辅助方法:
private string SettingToString(PrinterSettings settings)
{
if (settings == null)
return null;
var bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, settings);
return Convert.ToBase64String(ms.ToArray());
}
}
private PrinterSettings SettingFromString(string base64)
{
try
{
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream(Convert.FromBase64String(base64)))
{
return (PrinterSettings)bf.Deserialize(ms);
}
}
catch (Exception)
{
return new PrinterSettings();
}
}