none
Form表單列印問題 RRS feed

  • 問題

  • 小弟自行看書,做了一個簡單的結帳軟體

    但是在列印表單時碰到了問題

    表單無法完整的列印,會有一部分無法顯示

    請問眾高手們~能否幫小弟解決這個疑問!!

    以下是小弟寫的程式完整檔案

    麻煩大家了~~

    使用vs2015  win7  解析度3840*2160的螢幕(不知道這部分是否會影響)

    下方是完整程式專案檔, 請眾高手幫小弟解答!!

    謝謝大家~~

    https://drive.google.com/file/d/0BzestUj5qgaaZVlndlhfQmFWNmc/view

    另請教  在這發問時因系統提示帳戶未經過驗證,有些功能無法使用(例如貼圖及超連結),我該如何去驗證帳戶?

    再次感謝大家!!


    • 已編輯 allen1127 2016年3月30日 下午 04:38
    • 已編輯 AskaSuModerator 2016年3月31日 上午 03:42 修改適當標題,移除與問題無關的描述,原始標題;新手求教!!Form表單列印問題!!
    2016年3月30日 下午 04:36

解答

所有回覆

  • 請直接貼關鍵程式碼跟錯誤圖形,不是所有人都有空去下載程式碼測試。

    在 PrintDocument_PrintPage 事件中

    用 e.Graphics.DrawImage(img, destRect) 去將畫面縮放到印表機大小。

    可以參考這個網址取得印表機可列印大小後,再將 bitmap 跟可列印大小算出比例得到 desRect 。

    http://tlcheng.twbbs.org/TLCheng/Net/NetList.aspx?Action=Function&Module=24&Function=273


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2016年3月30日 下午 04:45
  • 先感謝心冷大大的快速回復,其實小弟完全是個門外漢,買了3-4本入門書,邊看書邊上網,複製程式碼來邊看邊改,對這些語法著實不

    了解,可否麻煩您給小弟一個類似範例,我在研究看看它的意思是甚麼? 非常抱歉有這樣的請求!! 如果給您造成影響!!請多包涵!!

    下方這個程式碼片段是我目前用來擷取表單後存在硬碟裡,然後再用印表機把它當圖片印出來!!

    擷取出來的表單大小是正常的,可是如果加上程式碼讓他自行列印的話,印出來就會變成下方網址連結裡的那張圖片一樣

    不知道是哪裡出問題? (單純的想要將表單能夠完整印出即可) 完全門外漢的問法,不知道有沒有問對問題.

    請各位大大笑小力一點~~

    private void button3_Click(object sender, EventArgs e) { Image myImage = new Bitmap(1084, 1291); Graphics g = Graphics.FromImage(myImage); g.CopyFromScreen(new Point(0,0), new Point(0,0), new Size(1084, 1291)); IntPtr dc1 = g.GetHdc(); g.ReleaseHdc(dc1); myImage.Save("h:\\1.jpg"); }

    下面是印出來的結果

    https://drive.google.com/file/d/0BzestUj5qgaaRTJmNGtnWlptRms/view?usp=sharing


    2016年3月30日 下午 05:38
  • 您好,

    可以使用 Control.DrawToBitmap Method,類似如下

    var bm = new Bitmap(Width, Height);
    this.DrawToBitmap(bm, this.Bounds);
    bm.Save(@"d:\1.gif", ImageFormat.Gif);


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2016年3月31日 上午 01:09
  • 也非常感謝亂馬大的回覆,該段程式碼是指將表單存成GIF檔嗎?

    bm.Save(@"d:\1.gif", <---這段是指存檔我了解 後面這段ImageFormat.Gif   是代表甚麼意思?(貼上後顯示錯誤)

    (錯誤 CS0103 名稱 'ImageFormat' 不存在於目前的內容中)

    我有試著將程式碼貼上(貼在列印按鈕)再稍作修改(改存檔名的地方,其他不動)

    然後去執行後,有再硬碟裡多一個檔案,不過檔案內容是空白,大小只有72KB,這部份似乎有錯誤!!

    是不是小弟缺了哪一部分沒寫到?

    還請大大有空時幫小弟解惑~~~謝謝您喔!!


    2016年3月31日 下午 12:37
  • 既然連物件帶事件了,直接在 MSDN 搜尋或是論壇搜尋既有討論都有。

    https://msdn.microsoft.com/zh-tw/library/system.drawing.printing.printdocument.aspx


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2016年3月31日 下午 03:35
  • Ya, 是指定 gif.

    或是您改成 bmp, 如下,

    bm.Save(@"d:\1.bmp", ImageFormat.Bmp);

    大小是 2.4M


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 allen1127 2016年4月10日 上午 09:08
    2016年4月9日 上午 03:57