By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,492 Members | 1,199 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,492 IT Pros & Developers. It's quick & easy.

Problem Printing Objects From A Web Page

P: n/a
I am pulling my hair out trying to print various objects from a .net
web page
My apologies for cross posting but I need an answer and my previous
post has attracted no interest.

ASP.Net 2.0 using C#

This is a simple web page on our intranet (written as a test) and all
I am trying to do is print a document to a named printer.
If I use a StreamReader then I get an output to the printer. This
prints all the lines in the text file to the printer. However, this
only works for basic text files. I cannot achieve an output for an
Excel spreadsheet, a MS Word document or a pdf document.

If I choose not to use a StreamReader then all I get is a blank sheet
of paper no matter what type of file I try to print.

Can anyone please help as I am getting desperate as I need to create a
complex web based printing application very soon.

// A Simple HTML Page For A test web based application
<body>
<form runat="server">
<p>
<ASP:DropDownList id="ddlDebug"
runat="server"

AppendDataBoundItems="True"

AutoPostBack="True">
<ASP:ListItem value="Debug">Stream
</ASP:ListItem>
<ASP:ListItem value="NoDebug">No Stream
</ASP:ListItem>
</ASP:DropDownList>
</p>
<p>
<ASP:Button id="button2" runat="server"
text="Button">
</ASP:Button>
</p>
<p>
<ASP:ListBox id="listBox1" runat="server"
width="1156px"
height="442px">
</ASP:ListBox>
</p></font>
</form>
</body>
</html>

// Some of the code behind

if (! IsPostBack)
{
if(impersonateValidUser("Administrator", "domain",
"password"))
{
//Insert your code that runs under the security context of a
specific user here.

}
else
{
//Your impersonation failed. Therefore, include a fail-safe
mechanism here.
}
}
else
{
}
}

void myDoc_PrintPage(object sender, PrintPageEventArgs e)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = e.MarginBounds.Left;
float topMargin = e.MarginBounds.Top;
topMargin = topMargin + 50;

// When I try a direct print without Streaming I remove this
block of code
using (StreamReader streamToPrint = new
StreamReader(myDoc.DocumentName))
{
string Lline;
// Read and display lines from the file until the end of the
file is reached.
while ((Lline = streamToPrint.ReadLine()) != null)
{
listBox1.Items.Add(Lline); // For debug purposes - DIsplay
to browser listbox - Remove Later
topMargin = topMargin + 20;
yPos = topMargin + (count *
printFont.GetHeight(e.Graphics));
e.Graphics.DrawString(Lline, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
}
}

// e.HasMorePages = true;
}

private void button2_Click(object sender, System.EventArgs e)
{

listBox1.Items.Clear();
// Try and print the document
myDoc.DocumentName = @"\\MyPc\Temp\MyTestDoc.txt";

listBox1.Items.Add("Document Name - " + myDoc.DocumentName);

myDoc.PrinterSettings.PrinterName = LPrinterName;
listBox1.Items.Add("Printer Name - " +
myDoc.PrinterSettings.PrinterName);

foreach (System.Drawing.Printing.PaperSize paperSize in
myDoc.PrinterSettings.PaperSizes)
{
if (paperSize.PaperName == "A3")
{

myDoc.DefaultPageSettings.PaperSize
= paperSize;

myDoc.DefaultPageSettings.PrinterSettings.DefaultP ageSettings.Landscape
= true;
}
}

myDoc.PrinterSettings.FromPage = 1;
myDoc.PrinterSettings.MinimumPage = 1;
myDoc.PrintPage += new PrintPageEventHandler(myDoc_PrintPage);
myDoc.Print();
}
Jun 27 '08 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.