Display PrintDialog in a console application c# - c#

i am working on a c# console application but want to know :
if it is possible to show the PrintDialog in a console application ?

If you want to print something from your console application and want PrintDialog, you can use the below code.
PrintDialog printDlg = new PrintDialog();
PrintDocument printDoc = new PrintDocument();
printDoc.DocumentName = "Print Document";
printDlg.Document = printDoc;
printDlg.AllowSelection = true;
printDlg.AllowSomePages = true;
//Call ShowDialog
if (printDlg.ShowDialog() == DialogResult.OK) printDoc.Print();

Related

C# Winform PrintDialog Pages popup

in C# Winform, i'm sending an Image to the printer using the PrintDialog... using this code:
private void PrintSnippedImage()
{
PrintDocument pDoc = new PrintDocument();
pDoc.PrintPage += PrintPage;
PrintDialog pDialog = new PrintDialog();
pDialog.ShowHelp = true;
pDialog.AllowSelection = false;
pDialog.AllowSomePages = false;
pDialog.Document = pDoc;
if (pDialog.ShowDialog() == DialogResult.OK)
{
pDoc.Print();
};
}
private void PrintPage(object o, PrintPageEventArgs e)
{
System.Drawing.Image img = Glob.SnippedImage;
Point loc = new Point(10, 10);
e.Graphics.DrawImage(img, loc);
}
I get a popup that shows "Printing... Page 1 of document" with a Cancel button.
it appears in seemingly random locations on one of my monitors.
is there a way to inhibit this popup, or at least force it to appear on the monitor in the general location of the application that called it?
it looks like this:
It should be a case of swapping the PrintController implementation from PrintControllerWithStatusDialog (the default) to StandardPrintController. See https://learn.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument.printcontroller?view=dotnet-plat-ext-6.0#system-drawing-printing-printdocument-printcontroller

How to hide or disable a printer in C# printer dialog?

There are 3 printers in the printer list, but is there a way to hide or disable one of them when I call the printdialog? For example, how to disable or hide the printers which names start with "Brother MFC", so that only allows users to select "HP" printers?
PrintDialog printDlg = newPrintDialog();
PrintDocument printDoc = newPrintDocument();
printDoc.DocumentName = "Print Document";
printDlg.Document = printDoc;
printDlg.AllowSelection = true;
printDlg.AllowSomePages = true;
//Call ShowDialog
if (printDlg.ShowDialog() == DialogResult.OK) printDoc.Print();

Programmatically print to PDF using "Microsoft Print to PDF" in c# windows 10

I am trying to print to pdf using "Microsoft Print to PDF" in c#. I worked really hard on it and wrote below code.
It is creating an empty pdf file instead of filling it with the content of I sent to the printer.
Could anyone help me?
try
{
PrintDocument pd = new PrintDocument();
ProcessStartInfo info = new ProcessStartInfo("E:\\ba\\Asp.pdf");
info.Verb = "Print";
pd.PrinterSettings.PrintToFile = true;
pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
pd.PrinterSettings.PrintToFile = true;
pd.PrinterSettings.PrintFileName = Path.Combine("e://", "hktespri" + ".pdf");
pd.Print();
info.CreateNoWindow = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
you have not given what to print to the pdf document.
heres my code I am using it for having my panel to print
protected void btnPrint_Click(object sender, EventArgs e)
{
PrintDialog pd = new PrintDialog();
PrintDocument pdoc = new PrintDocument();
pdoc.PrintPage += pdoc_PrintPage;
if (pd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
pdoc.Print();
}
}
void pdoc_PrintPage(object sender, PrintPageEventArgs e)
{
Bitmap bitmap = new Bitmap(outerPanel.Width, outerPanel.Height);
outerPanel.DrawToBitmap(bitmap, new System.Drawing.Rectangle(5, 5, outerPanel.Width, outerPanel.Height));
e.Graphics.DrawImage(bitmap, 5, 5);
bitmap.Dispose();
}

Can not Print in WPF

I have such a problem here. I have a window in my WPF project, and have a button, with what I want To print With printer that page. My click event for that button is this.
PrintDialog dlg = new PrintDialog();
Window currentMainWindow = Application.Current.MainWindow;
Application.Current.MainWindow = this;
if ((bool)dlg.ShowDialog().GetValueOrDefault())
{
Application.Current.MainWindow = currentMainWindow;
}
When I click on buton, the Print dialog is popped out.
Here
But When clicking on print, nothing happenes, the dialog is just closing, and no results, it is not working not with Adobe PDF, not with ARX CoSign...
What to do ? Thanks
The rough working
var printDoc = new PrintDocument()
var dlg = new PrintDialog()
If(dlg.ShowDialog() == DialogResult.OK)
{
printDoc.Document = [doc to print]
printDoc.Setting = dlg.settings
PrintDoc.print()
}
enter code here
PrintDialog dlg = new PrintDialog();
Window currentMainWindow = Application.Current.MainWindow;
Application.Current.MainWindow = this;
if ((bool)dlg.ShowDialog().GetValueOrDefault())
{
Application.Current.MainWindow = currentMainWindow; // do it early enough if the 'if' is entered
dlg.PrintVisual(this, "Certificate");
}

Printer only prints to default printer

Here is the code I use (just the printing-related part):
Button 1 onclick handler method:
printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
pd.PrinterSettings.PrintToFile = true;
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pd.Print();
}
And my pd_PrintPage method:
Bitmap bitmapCanvas = new Bitmap(1000, 1000);
Graphics g = Graphics.FromImage(bitmapCanvas);
g.Clear(Color.White);
...
some g.Draw...() stuff
...
e.Graphics.DrawImage(bitmapCanvas, A(2), A(2));
//where e is the PrintPageEventArgs defined in the method signature
First part of my problem is that, this doesn't print to the selected printer (selected on the print dialog).
It only prints to a printer if that is the default printer.
Under Windows 7 it works, it recognizes the default printer, so the default printer will be selected by default in the comboBox on the print dialog which comes up after I click the button.
My main problem is that, this doesn't work under Windows Xp at all (unfortunately I only can use that). And I'm kind of curious why. So I don't know if I made a mess, or it is not supported under Windows Xp.
With what should I complete or correct my code?
Any help is appreciated and thank you very much!
Mitulat bati
Try this,
printDialog1 = new PrintDialog();
printDialog1.AllowPrintToFile = true;
printDialog1.PrintToFile = false;
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
printDialog1.Document.DefaultPageSettings.PaperSize = new PaperSize("A4", 826, 1169);
printDialog1.Document.PrinterSettings.PrintToFile = true;
printDialog1.Document.PrintPage += new PrintPageEventHandler(pd_PrintPage);
printDialog1.Document.Print();
}

Categories