程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> web-打印,web打印控件

web-打印,web打印控件

編輯:C#入門知識

web-打印,web打印控件


項目前景

由於之前的打印是客戶端程序,也就是winform做的,現在需要改版成網頁版,其他功能都能夠很好的實現,就是在打印上遇到一些難點。由於第一次做打印功能,剛開始照搬winform中調用word文檔實現打印,在本地運行時都很正常,可是發布到IIS之後,怎麼也實現不了,經過研究學習,發現客戶端不可能調用服務器的文件保存,最後經過一些學習研究,找到了web版打印的兩種方法。

解決方案

1、頁面拼寫html,使用window.print()方法打印

這是用的最多的一種方法,先在頁面上使用html將需要打印的模板拼寫出來,然後在需要添加數據的地方動態添加數據(innerText),然後調用打印局部頁面的方法printdiv()進行打印,方法如下:

    function printdiv(printpage)  {  
         var headstr = "<html><head></title></head><body>";  
         var footstr = "</body>";
         var newstr = document.getElementById(printpage).innerHTML;
         var oldstr = document.body.innerHTML;  
         document.body.innerHTML = headstr+newstr+footstr;  
         window.print();  
         document.body.innerHTML = oldstr;  
    }  

此種打印出來頁眉頁腳上會顯示網站title以及網址等信息,需要在更多設置中去掉頁眉頁腳的勾選(Google浏覽器)

 

2、將打印模板保存為圖片,然後在圖片指定位置添加數據,最後將圖片打印出來

這種方法需要用到圖片處理類,先根據圖片(打印模板)的存儲路徑創建相應對象,使用Graphics封裝繪圖圖面

ms = new MemoryStream();
System.Drawing.Image myImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath(path));
map = new Bitmap(myImage);
myImage.Dispose();
graphics = Graphics.FromImage(map);
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;

然後再調用繪制方法,就可以在指定位置繪制所需要的文本內容

public void DrawText(float pointX, float pointY, string text, Color color, string fontfamily = "仿宋", float fontsize = 14)
{
     SolidBrush brush = new SolidBrush(color);
     PointF p = new PointF(pointX, pointY);
     using (Font font = new Font(fontfamily, fontsize))
     {
         graphics.DrawString(text, font, brush, p);
     }
 }

傳入的參數依次是:X坐標、Y坐標、文本內容、字體顏色、字體格式、字體大小,還可以將繪制好的圖片保存到指定路徑

System.Drawing.Image img = System.Drawing.Image.FromStream(factory.Memory);
img.Save(savePath, System.Drawing.Imaging.ImageFormat.Png);

圖片繪制好了,接下來就是如何將圖片打印出來了,可以將繪制的圖片保存至服務器應用程序的某個文件夾中,然後在頁面上添加該圖片

<div id="test">
     <img src="../images/print.png" alt="">
</div>

再調用1中的方法printdiv("test")即可完成圖片打印。。。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved