Hello, I've got some problems printing PDF documents through PdfViewer:
When I print my document on a virtual printer (like Foxit PDF printer or Adobe Pdf virtual printer) it seems to be everything correct (see attachment "LabelCorrect.pdf") when I try to print the same document with any real printer the document appears stretched to fit the entire space on the page (see attachment "LabelWrong.pdf").
Note that I set the page size (in this case 100mm x 100mm) because these document have to be printed both on a Label Printer (with 100x100mm labels as paper) and on regular A4 laser printers but I'm obtaining the same results even if I don't set anything.
What I expect is to have the same visual results on both printers. Any suggestion?
The code I use to create the label and print it is:
// creates of PDF document an load it into PDFViewer
var pdfStream = new Drawer().GetPDFStream([...]); // Do some stuff to read from database and create a PDFStream
var pdfDocument = new PdfLoadedDocument(pdfStream);
pdfViewer.Load(pdfDocument);
[...]
private void tsBtnPrint_Click(object sender, EventArgs e)
{
PrintDialog dialog = new PrintDialog();
dialog.ShowDialog();
if (string.IsNullOrEmpty(dialog.PrinterSettings.PrinterName))
return;
var pageWidth = Convert.ToInt32([Label_Width] * Helpers.Mm2HundredthInches);
var pageHeight = Convert.ToInt32([Label_Height] * Helpers.Mm2HundredthInches);
var pageSettings = new PageSettings
{
PaperSize = new PaperSize("Custom", pageWidth, pageHeight),
};
pdfViewer.PrintDocument.PrinterSettings.FromPage = 1;
pdfViewer.PrintDocument.PrinterSettings.ToPage = pdfViewer.PageCount;
pdfViewer.PrintDocument.PrinterSettings.PrinterName = dialog.PrinterSettings.PrinterName;
pdfViewer.PrintDocument.PrinterSettings.Copies = 1;
pdfViewer.PrintDocument.DefaultPageSettings = pageSettings;
pdfViewer.PrintDocument.PrintController = new StandardPrintController();
pdfViewer.PrintDocument.Print();
}
Thank you
Luca Cavicchioli
Attachment:
Labels_86e2207c.zip