Can you help me!
I want to create direct printing, but i don't want to create files(eg. emf)
I using rdlc report file.
Now i using these following
private void Export(LocalReport report)
{
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>EMF</OutputFormat>" +
" <PageWidth>3in</PageWidth>" +
" <MarginLeft>0.1in</MarginLeft>" +
" <MarginRight>0.2in</MarginRight>" +
" <MarginBottom>0.2in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
m_streams = new List<Stream>();
report.Render("Image", deviceInfo, CreateStream,
out warnings);
foreach (Stream stream in m_streams)
stream.Position = 0;
}
private void PrintPage(object sender, PrintPageEventArgs ev)
{
Metafile pageImage = new
Metafile(m_streams[m_currentPageIndex]);
ev.Graphics.DrawImage(pageImage, ev.PageBounds);
m_currentPageIndex++;
ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
}
private Stream CreateStream(string name,
string fileNameExtension, Encoding encoding,
string mimeType, bool willSeek)
{
Stream stream = new FileStream(@"..\..\" + name +
"." + fileNameExtension, FileMode.OpenOrCreate);
m_streams.Add(stream);
return stream;
}
private void Print()
{
string printerName = "";
printerName = POSPOSTools.GetData("SELECT ReceiptPrinterPath FROM POS_MasterCode");
if (m_streams == null || m_streams.Count == 0)
return;
PrintDocument printDoc = new PrintDocument();
printDoc.PrinterSettings.PrinterName = printerName;
if (!printDoc.PrinterSettings.IsValid)
{
printerName = printerName = POSPOSTools.GetData("SELECT ReceiptPrinterPath FROM POS_MTerminal WHERE ComputerName = '" + SystemInformation.ComputerName.Trim() + "'");
printDoc.PrinterSettings.PrinterName = printerName;
if (!printDoc.PrinterSettings.IsValid)
{
string msg = String.Format(
"Can't find printer \"{0}\".", printerName);
ExternalClass.ShowMessageBox(msg, "Print Error",2);
return;
}
}
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
printDoc.PrintController = new StandardPrintController();
printDoc.Print();
}
It is one print file after create one emf file. It is biggest problem for me.
Plese give me suggestion to solve my problem!
Theingi Win