I have been using rdlc reports in vs 2013 for generating barcode labels along with some other info.
The PDF that gets generated is of correct dimensions that is (2.5cm x 1.7 cm) but when the print occurs the print is centralized and occupies just a short area of what seems to be an a4 size paper. I have tested in brother p-touch printer as well but its the same issue. I am using neodynamic webclientprint.
DataSet3 fd = new DataSet3(); DataSet3TableAdapters.Inventory_DetailTableAdapter dds = new DataSet3TableAdapters.Inventory_DetailTableAdapter(); dds.Fill(fd.Inventory_Detail, "210"); ReportDataSource ds = new ReportDataSource("DataSet3", fd.Tables[0]); //create PDF version of RDLC report PageSettings pageSet = new PageSettings(); LocalReport myReport = new LocalReport(); myReport.ReportPath = Server.MapPath("~/BarcodeReport.rdlc"); myReport.DataSources.Add(ds); ReportPageSettings rptSet = myReport.GetDefaultPageSettings(); pageSet.PaperSize = rptSet.PaperSize; //Export to PDF. Get binary content. string mimeType; string encoding; string fileNameExtension; string[] streams; Warning[] warnings; string deviceInfo = "<?xml version='1.0' encoding='UTF-8'?>" +"<DeviceInfo>" +"<OutputFormat>PDF</OutputFormat>" +"<PageWidth>2.5cm</PageWidth>" +"<PageHeight>1.8cm</PageHeight >" +"<MarginTop>0cm</MarginTop >" +"<MarginLeft>0cm</MarginLeft >" +"<MarginRight>0cm</MarginRight >" +"<MarginBottom>0cm</MarginBottom >" +"</DeviceInfo>"; byte[] pdfContent = myReport.Render("PDF", deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); //Now send this file to the client side for printing //IMPORTANT: Adobe Reader needs to be installed at the client side bool useDefaultPrinter = (Request["useDefaultPrinter"] == "checked"); string printerName = Server.UrlDecode(Request["printerName"]); //create a temp file name for our PDF report... string fileName = Guid.NewGuid().ToString("N") + ".pdf"; //Create a PrintFile object with the pdf report PrintFile file = new PrintFile(pdfContent, fileName); //Create a ClientPrintJob and send it back to the client! ClientPrintJob cpj = new ClientPrintJob(); //set file to print... cpj.PrintFile = file; //set client printer... if (useDefaultPrinter || printerName == "null") cpj.ClientPrinter = new DefaultPrinter(); else cpj.ClientPrinter = new InstalledPrinter(printerName); //send it... cpj.SendToClient(Response);