62,041
社区成员
发帖
与我相关
我的任务
分享
private Document document;
private IEnumerator DocPages;
private ArrayList DocPagesList;
private const string PrinterName = @"//sutlej/SamsungM";
private const string DocLocation = @"D:/PB-OMSWeb/POC/FileStore/pcu.pdf";
private void cmdPrint_Click(object sender, System.EventArgs e)
{
FileStream file = null;
DocPagesList = new ArrayList();
try
{
file = new FileStream( DocLocation, FileMode.Open, FileAccess.Read );
byte[] buffer = new byte[ file.Length ];
file.Read( buffer, 0, buffer.Length );
document = new Document( new BinaryReader( new MemoryStream(
buffer ) ) );
for( int i = 0; i < document.Pages.Count; i++ )
{
DocPagesList.Add( i.ToString() );
}
DocPages = DocPagesList.GetEnumerator();
DocPages.Reset();
if( DocPages.MoveNext() )
{
PrintDocument oPrintDocument = new PrintDocument();
PrinterSettings oPrinterSettings = new PrinterSettings();
PageSettings oPageSettings = new PageSettings();
oPrinterSettings.PrinterName = PrinterName;
oPageSettings.Landscape = true;
oPrintDocument.DocumentName = document.Title;
oPrintDocument.PrinterSettings = oPrinterSettings;
oPrintDocument.DefaultPageSettings = oPageSettings;
oPrintDocument.PrintPage += new
PrintPageEventHandler(oPrintDocument_PrintPage);
oPrintDocument.Print();
}
}
catch( Exception exc )
{
lblResult.Text = exc.Message;
}
finally
{
file.Close();
}
}
private void oPrintDocument_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.PageUnit = GraphicsUnit.Point;
if ( null != DocPages.Current )
{
int pageIndex = Convert.ToInt32( DocPages.Current );
Page page = document.Pages[ pageIndex++ ];
page.Draw( e.Graphics );
}
e.HasMorePages = DocPages.MoveNext();
}