diff --git a/ShareX.HelpersLib/Printer/PrintHelper.cs b/ShareX.HelpersLib/Printer/PrintHelper.cs
index 9c4e0c49b..87c48b6b9 100644
--- a/ShareX.HelpersLib/Printer/PrintHelper.cs
+++ b/ShareX.HelpersLib/Printer/PrintHelper.cs
@@ -94,6 +94,25 @@ public void ShowPreview()
}
}
+ public void TryDefaultPrinterOverride()
+ {
+ string windowsDefault = printDocument.PrinterSettings.PrinterName;
+ if (Settings.DefaultPrinterOverride.Length > 0)
+ {
+ printDocument.PrinterSettings.PrinterName = Settings.DefaultPrinterOverride;
+ }
+ if (!printDocument.PrinterSettings.IsValid)
+ {
+ printDocument.PrinterSettings.PrinterName = windowsDefault;
+ using (MyMessageBox msgbox = new MyMessageBox("Printer \'" + Settings.DefaultPrinterOverride + "\' does not exist. Continuing with windows default printer, you can set the default printer override in application settings",
+ "Specified Printer not Valid",
+ MessageBoxButtons.OK))
+ {
+ msgbox.ShowDialog();
+ }
+ }
+ }
+
public bool Print()
{
if (Printable && (!Settings.ShowPrintDialog || printDialog.ShowDialog() == DialogResult.OK))
@@ -102,7 +121,7 @@ public bool Print()
{
printTextHelper.Font = Settings.TextFont;
}
-
+ TryDefaultPrinterOverride();
printDocument.Print();
return true;
}
diff --git a/ShareX.HelpersLib/Printer/PrintSettings.cs b/ShareX.HelpersLib/Printer/PrintSettings.cs
index d5f5764cc..aa10c7268 100644
--- a/ShareX.HelpersLib/Printer/PrintSettings.cs
+++ b/ShareX.HelpersLib/Printer/PrintSettings.cs
@@ -38,6 +38,8 @@ public class PrintSettings
public XmlFont TextFont { get; set; }
public bool ShowPrintDialog { get; set; }
+ public string DefaultPrinterOverride { get; set; }
+
public PrintSettings()
{
Margin = 5;
@@ -47,6 +49,7 @@ public PrintSettings()
CenterImage = false;
TextFont = new XmlFont("Arial", 10);
ShowPrintDialog = true;
+ DefaultPrinterOverride = "";
}
}
}
\ No newline at end of file
diff --git a/ShareX/Forms/ApplicationSettingsForm.Designer.cs b/ShareX/Forms/ApplicationSettingsForm.Designer.cs
index 5ba28e456..9c8a8378a 100644
--- a/ShareX/Forms/ApplicationSettingsForm.Designer.cs
+++ b/ShareX/Forms/ApplicationSettingsForm.Designer.cs
@@ -142,6 +142,8 @@ private void InitializeComponent()
this.cbRecentTasksShowInMainWindow = new System.Windows.Forms.CheckBox();
this.cbRecentTasksSave = new System.Windows.Forms.CheckBox();
this.tpPrint = new System.Windows.Forms.TabPage();
+ this.lblDefaultPrinterOverride = new System.Windows.Forms.Label();
+ this.txtDefaultPrinterOverride = new System.Windows.Forms.TextBox();
this.cbPrintDontShowWindowsDialog = new System.Windows.Forms.CheckBox();
this.cbDontShowPrintSettingDialog = new System.Windows.Forms.CheckBox();
this.btnShowImagePrintSettings = new System.Windows.Forms.Button();
@@ -322,6 +324,7 @@ private void InitializeComponent()
//
// cmsLanguages
//
+ this.cmsLanguages.ImageScalingSize = new System.Drawing.Size(20, 20);
this.cmsLanguages.Name = "cmsLanguages";
resources.ApplyResources(this.cmsLanguages, "cmsLanguages");
//
@@ -904,6 +907,10 @@ private void InitializeComponent()
this.lvSecondaryFileUploaders.View = System.Windows.Forms.View.Details;
this.lvSecondaryFileUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
//
+ // chSecondaryFileUploaders
+ //
+ resources.ApplyResources(this.chSecondaryFileUploaders, "chSecondaryFileUploaders");
+ //
// gbSecondaryImageUploaders
//
this.gbSecondaryImageUploaders.Controls.Add(this.lvSecondaryImageUploaders);
@@ -929,6 +936,10 @@ private void InitializeComponent()
this.lvSecondaryImageUploaders.View = System.Windows.Forms.View.Details;
this.lvSecondaryImageUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
//
+ // chSecondaryImageUploaders
+ //
+ resources.ApplyResources(this.chSecondaryImageUploaders, "chSecondaryImageUploaders");
+ //
// gbSecondaryTextUploaders
//
this.gbSecondaryTextUploaders.Controls.Add(this.lvSecondaryTextUploaders);
@@ -954,6 +965,10 @@ private void InitializeComponent()
this.lvSecondaryTextUploaders.View = System.Windows.Forms.View.Details;
this.lvSecondaryTextUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
//
+ // chSecondaryTextUploaders
+ //
+ resources.ApplyResources(this.chSecondaryTextUploaders, "chSecondaryTextUploaders");
+ //
// cbUseSecondaryUploaders
//
resources.ApplyResources(this.cbUseSecondaryUploaders, "cbUseSecondaryUploaders");
@@ -1071,12 +1086,25 @@ private void InitializeComponent()
// tpPrint
//
this.tpPrint.BackColor = System.Drawing.SystemColors.Window;
+ this.tpPrint.Controls.Add(this.lblDefaultPrinterOverride);
+ this.tpPrint.Controls.Add(this.txtDefaultPrinterOverride);
this.tpPrint.Controls.Add(this.cbPrintDontShowWindowsDialog);
this.tpPrint.Controls.Add(this.cbDontShowPrintSettingDialog);
this.tpPrint.Controls.Add(this.btnShowImagePrintSettings);
resources.ApplyResources(this.tpPrint, "tpPrint");
this.tpPrint.Name = "tpPrint";
//
+ // lblDefaultPrinterOverride
+ //
+ resources.ApplyResources(this.lblDefaultPrinterOverride, "lblDefaultPrinterOverride");
+ this.lblDefaultPrinterOverride.Name = "lblDefaultPrinterOverride";
+ //
+ // txtDefaultPrinterOverride
+ //
+ resources.ApplyResources(this.txtDefaultPrinterOverride, "txtDefaultPrinterOverride");
+ this.txtDefaultPrinterOverride.Name = "txtDefaultPrinterOverride";
+ this.txtDefaultPrinterOverride.TextChanged += new System.EventHandler(this.txtDefaultPrinterOverride_TextChanged);
+ //
// cbPrintDontShowWindowsDialog
//
resources.ApplyResources(this.cbPrintDontShowWindowsDialog, "cbPrintDontShowWindowsDialog");
@@ -1395,5 +1423,7 @@ private void InitializeComponent()
private System.Windows.Forms.NumericUpDown nudCleanupKeepFileCount;
private System.Windows.Forms.Label lblCleanupKeepFileCount;
private System.Windows.Forms.CheckBox cbAutomaticallyCleanupLogFiles;
+ private System.Windows.Forms.Label lblDefaultPrinterOverride;
+ private System.Windows.Forms.TextBox txtDefaultPrinterOverride;
}
}
\ No newline at end of file
diff --git a/ShareX/Forms/ApplicationSettingsForm.cs b/ShareX/Forms/ApplicationSettingsForm.cs
index fc74d2287..f037ed3d2 100644
--- a/ShareX/Forms/ApplicationSettingsForm.cs
+++ b/ShareX/Forms/ApplicationSettingsForm.cs
@@ -219,6 +219,8 @@ private void UpdateControls()
// Print
cbDontShowPrintSettingDialog.Checked = Program.Settings.DontShowPrintSettingsDialog;
cbPrintDontShowWindowsDialog.Checked = !Program.Settings.PrintSettings.ShowPrintDialog;
+ txtDefaultPrinterOverride.Text = Program.Settings.PrintSettings.DefaultPrinterOverride;
+ UpdatePrintControls();
// Advanced
pgSettings.SelectedObject = Program.Settings;
@@ -994,9 +996,15 @@ private void cbRecentTasksTrayMenuMostRecentFirst_CheckedChanged(object sender,
#region Print
+ private void UpdatePrintControls()
+ {
+ txtDefaultPrinterOverride.Enabled = !Program.Settings.PrintSettings.ShowPrintDialog;
+ }
+
private void cbDontShowPrintSettingDialog_CheckedChanged(object sender, EventArgs e)
{
Program.Settings.DontShowPrintSettingsDialog = cbDontShowPrintSettingDialog.Checked;
+ UpdatePrintControls();
}
private void btnShowImagePrintSettings_Click(object sender, EventArgs e)
@@ -1006,11 +1014,19 @@ private void btnShowImagePrintSettings_Click(object sender, EventArgs e)
{
printForm.ShowDialog();
}
+ UpdatePrintControls();
}
private void cbPrintDontShowWindowsDialog_CheckedChanged(object sender, EventArgs e)
{
Program.Settings.PrintSettings.ShowPrintDialog = !cbPrintDontShowWindowsDialog.Checked;
+ UpdatePrintControls();
+ }
+
+ private void txtDefaultPrinterOverride_TextChanged(object sender, EventArgs e)
+ {
+ Program.Settings.PrintSettings.DefaultPrinterOverride = txtDefaultPrinterOverride.Text;
+ UpdatePrintControls();
}
#endregion Print
diff --git a/ShareX/Forms/ApplicationSettingsForm.resx b/ShareX/Forms/ApplicationSettingsForm.resx
index 5f94b6fd5..0c8acd4fd 100644
--- a/ShareX/Forms/ApplicationSettingsForm.resx
+++ b/ShareX/Forms/ApplicationSettingsForm.resx
@@ -2959,6 +2959,63 @@
6
+
+ True
+
+
+ NoControl
+
+
+ 17, 115
+
+
+ 4, 0, 4, 0
+
+
+ 358, 17
+
+
+ 3
+
+
+ Default Printer Override (uses windows default if empty)
+
+
+ lblDefaultPrinterOverride
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpPrint
+
+
+ 0
+
+
+ 21, 135
+
+
+ 4, 4, 4, 4
+
+
+ 509, 22
+
+
+ 4
+
+
+ txtDefaultPrinterOverride
+
+
+ System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpPrint
+
+
+ 1
+
True