我構建上有兩個相似圖片的ASP網站頁面上打印與點擊兩個圖像,但每幅圖像:如何自己的頁面
<asp:Image ID="ImgPg1" runat="server" ImageUrl="Page1.ashx" />
<asp:Image ID="ImgPg2" runat="server" ImageUrl="Page2.ashx" />
我想用一個打印兩個圖像單擊。
上Page1.ashx
的圖像需要第1頁上打印,需要在第2頁
要打印你怎麼每頁打印一個圖像上Page2.ashx
的形象呢?
這就是我所做的,但我發現PrintDocument
在服務器端運行,所以出現一個錯誤說「找不到打印機」。下面的代碼示例打印一個矩形作爲測試,但它是.ashx頁面對它們的反正。
protected void Print_Click(object sender, EventArgs e)
{
// Page.ClientScript.RegisterClientScriptBlock(GetType(), "Print CI", "window.print()", true);
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.Landscape = false;
nPage = 0;
pd.PrintPage += new PrintPageEventHandler(printImages);
pd.Print();
}
private void printImages(object sender, PrintPageEventArgs ev)
{
Rectangle rect = new Rectangle(0, 0, 353, 230); // 0.236 Inches @ 96 dpi = 23
switch (nPage)
{
case 0: // Page 1 just for test
ev.Graphics.FillRectangle(new SolidBrush(Color.LightGray), rect);
ev.Graphics.DrawRectangle(new Pen(Color.Black, 1), rect);
break;
case 1: // Page 2 just for test
rect = new Rectangle(360, 0, 353, 230);
ev.Graphics.FillRectangle(new SolidBrush(Color.LightPink), rect);
ev.Graphics.DrawRectangle(new Pen(Color.Black, 1), rect);
break;
}
++nPage;
if (nPage < 2)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
我之所以需要打印一個圖像每頁是因爲一個圖像是一種形式的前部,另一形象是它的背面。圖像尺寸小於8.5 x 11的紙張(大約1/4的紙張)。
感謝, 巴勃羅
凱西感謝您的回覆。我需要兩頁打印的原因是因爲一張圖片是一張表格的正面,另一張是背面。 ashx頁面只有圖像,沒有別的。現在,我已取消註釋'Page.ClientScript.RegisterClientScriptBlock(...)'在'Print_Click(...)'上的註釋並評論其他行。我已經嘗試了您的建議,但仍然只有一頁打印有兩張圖像。我可能沒有正確使用你的建議。 – Pabinator 2014-12-03 16:16:16
嗯。我承認我沒有試過這個。我曾經使用過CSS分頁符,並取得了成功。也許嘗試將每個圖像包裝在div標籤中,然後將樣式放在div上? – 2014-12-03 16:23:47
幾乎相同。由於div標籤,兩幅圖像都在一個頁面上,但現在一個在另一個上面。 – Pabinator 2014-12-03 16:31:54