I need to print an existing PDF where the printer selection window is displayed to the user in C#, without a paid library. And print immediately afterwards.
I have this snippet of code, using PdfiumViewer, but it doesn’t work, because it doesn’t find the DLL:
<code>public static void PrintPDF(string path)
{
try
{
PrintDialog printDialog = new PrintDialog();
printDialog.PrinterSettings = new PrinterSettings();
if (printDialog.ShowDialog() == DialogResult.OK)
{
PrinterSettings printerSettings = new PrinterSettings();
printerSettings.PrinterName = printDialog.PrinterSettings.PrinterName;
printerSettings.Copies = (short)1;
PageSettings pageSettings = new PageSettings(printerSettings);
pageSettings.Margins = new Margins(0, 0, 0, 0);
using (PdfDocument document = PdfDocument.Load(path))
{
using (PrintDocument printDocument = document.CreatePrintDocument())
{
printDocument.PrinterSettings = printerSettings;
printDocument.DefaultPageSettings = pageSettings;
printDocument.PrintController = new StandardPrintController();
printDocument.Print();
}
}
}
}
catch (Exception ex)
{
Throw new Exception(ex.Message)
}
}
</code>
<code>public static void PrintPDF(string path)
{
try
{
PrintDialog printDialog = new PrintDialog();
printDialog.PrinterSettings = new PrinterSettings();
if (printDialog.ShowDialog() == DialogResult.OK)
{
PrinterSettings printerSettings = new PrinterSettings();
printerSettings.PrinterName = printDialog.PrinterSettings.PrinterName;
printerSettings.Copies = (short)1;
PageSettings pageSettings = new PageSettings(printerSettings);
pageSettings.Margins = new Margins(0, 0, 0, 0);
using (PdfDocument document = PdfDocument.Load(path))
{
using (PrintDocument printDocument = document.CreatePrintDocument())
{
printDocument.PrinterSettings = printerSettings;
printDocument.DefaultPageSettings = pageSettings;
printDocument.PrintController = new StandardPrintController();
printDocument.Print();
}
}
}
}
catch (Exception ex)
{
Throw new Exception(ex.Message)
}
}
</code>
public static void PrintPDF(string path)
{
try
{
PrintDialog printDialog = new PrintDialog();
printDialog.PrinterSettings = new PrinterSettings();
if (printDialog.ShowDialog() == DialogResult.OK)
{
PrinterSettings printerSettings = new PrinterSettings();
printerSettings.PrinterName = printDialog.PrinterSettings.PrinterName;
printerSettings.Copies = (short)1;
PageSettings pageSettings = new PageSettings(printerSettings);
pageSettings.Margins = new Margins(0, 0, 0, 0);
using (PdfDocument document = PdfDocument.Load(path))
{
using (PrintDocument printDocument = document.CreatePrintDocument())
{
printDocument.PrinterSettings = printerSettings;
printDocument.DefaultPageSettings = pageSettings;
printDocument.PrintController = new StandardPrintController();
printDocument.Print();
}
}
}
}
catch (Exception ex)
{
Throw new Exception(ex.Message)
}
}
I tried with PdfDocument, PrintDocument but none of them worked.