none
列印標籤的問題 RRS feed

  • 問題

  • 1.使用 VB2008
    2.配合 PrintDocument 列印連續性個人資料標籤.
    3.使用 EPSON Stylus COLOR 1520 印表機.
    4.使用傳統式連續性標籤紙. Letter 格式,內有 11 列的標籤紙.

    問題
    因印表機在列印時,會空出上下左右邊界. 而我使用的是傳統式連續性標籤紙, 標籤紙一張接一張, 這會因印表機留有下邊界, 以致在紙張下邊界處的標籤紙只會印一半字串, 而後隨即產生跳頁, 如此每頁標籤頁都會有一列的標籤列列印錯誤.

    1.請問我該如何進行軟硬體設定,才能讓每列的標籤紙,都能正確列印出字串.
    2.我在 VB 內指定使用 Letter 紙張,因它的尺寸就是傳統連續性標籤頁的尺寸.

    敬請指導,謝謝.




    chian
    2009年7月23日 上午 03:02

解答

  • 你可以先使用支援滿版列印的虛擬印表機測試,大部分虛擬印表機都支援滿版列印,這張測試圖是用:Microsoft Office Document Image Writer

    文字屬於單位業務機密,所以把它炸掉了,從位置看可以得知是使用滿版列印:


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Lolota Lee 2009年7月29日 上午 06:48
    2009年7月24日 上午 06:03
  • 4. 要用 PaperSize.Height - PrintableArea.Bottom 才是下邊界。
    5. 你可以先用虛擬印表機測,比較容易判斷是否為程式問題。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Lolota Lee 2009年7月29日 上午 06:49
    2009年7月25日 上午 03:35

所有回覆

  • 這篇不就是你開的?為什麼不繼續往下寫,要開新討論緒?大家再重來一次嗎?
    http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/ce996188-14ed-46cd-99d2-a5eb910ca286

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月23日 下午 01:36
  • 1. 心冷熱情熄前輩, 您誤解題意了.
    2. 本次的問題在於列印連續性標籤紙. 它的紙張大小與 Letter 相同, 但其內含有 12 列的小標籤紙.
    3. 我使用的是 EPSON Stylus COLOR 1520 印表機, 此機的特色是可以印如  A4 的單張紙, 也能捲動傳統式連續性報表紙, 非常適用於列印連續性標籤紙.
    4.我的問題在於, 印表機列印時會留有上下左右的空白邊界, 這問題大了, 它會造成 Latter 規格頁面, 第 12  列小標籤紙, 因該列位於紙張邊界處, 這會造成資料只印一半, 或是跟本就不會印到該小標籤紙.
    5.所以我想知道, 該如何做才能讓印表機列印到每列的小標籤紙.

    感謝指導.

    chian
    2009年7月23日 下午 02:35
  • 用 Excel 把邊界拉到最大試印,若是不能拉大,是驅動程式問題,沒得改。
    另外,預設出血是 25.4 mm (1 in) ,你的程式碼有改過預設邊界嗎?


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月23日 下午 03:20
  • 1.我試過將印表機及文件的邊界值都設為 0 ,但沒效,不過沒試過設定出血, 也不會設, 請指導.
    2.我的前輩用過這台印表機,列印連續性標籤紙, 沒問題,但他掛了,且進了療養院(寫程式寫到瘋了,真實的喔).
    3.我在想,連續性標籤紙的使用方法, 是不是不能當成 Letter 紙張般使用, 以避免跳頁, 如此才會產生連續列印, 猜想的..


    謝謝指導. 
    chian
    2009年7月23日 下午 03:59
  • 1. 請展示你設定錯誤的程式碼。
    3. 早期連續性標籤紙是直接使用點陣式印表機的列印命令去印,Windows 是以圖形方式列印,所以出血必須大於驅動程式定義的硬體最小邊界。

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月24日 上午 02:04
  • PrintDocument.PrinterSettings.DefaultPageSettings.Margins.Bottom = 0
    PrintDocument.PrinterSettings.DefaultPageSettings.Margins.Top = 0
    PrintDocument.PrinterSettings.PrintRange = Printing.PrintRange.AllPages

    chian
    2009年7月24日 上午 05:36
  • 1. 直接用 PrintDocument.DefaultPageSettings ,你用錯屬性了。
    2. 配合 PrintDocument.DefaultPageSettings.PrintableArea 與 PrintDocument.DefaultPageSettings.PaperSize 計算 PrintDocument.DefaultPageSettings.Margins 可設定的最小值。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月24日 上午 05:51
  • 你可以先使用支援滿版列印的虛擬印表機測試,大部分虛擬印表機都支援滿版列印,這張測試圖是用:Microsoft Office Document Image Writer

    文字屬於單位業務機密,所以把它炸掉了,從位置看可以得知是使用滿版列印:


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Lolota Lee 2009年7月29日 上午 06:48
    2009年7月24日 上午 06:03
  • 1.感謝您辛苦的指導.
    2. 經向 EPSON 公司查詢, 他們的說法是機械本身沒有無邊界列印功能, 因此每張紙在列印時都會有上下邊界, 以至每一大張的標籤頁紙, 列印到第 12 列處, 因逢邊界處, 必然無法列印. 這個答案真讓人洩氣.
    3. 我使用您指導的方法, 查看預覽列印, 文件呈正常狀態, 只因印表機無法列印下邊界資料, 因而遺漏列印.
    4.我使用 PrintableArea 秀出列印高度為 1200 (百分之一英寸) Bottom 為 1045, 這表示它含有 155 的邊界值.
    5. 我使用 PrintDocument.DefaultPageSettings.Margins.Bottom = 1100 去重設下邊界, 但不知何故, 都無法改變 1045 的預設值.

    感謝指導.



    chian
    2009年7月25日 上午 03:30
  • 4. 要用 PaperSize.Height - PrintableArea.Bottom 才是下邊界。
    5. 你可以先用虛擬印表機測,比較容易判斷是否為程式問題。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Lolota Lee 2009年7月29日 上午 06:49
    2009年7月25日 上午 03:35
  • 1.本來想算了,本問題擺著不管了, 如今挨括,只好再請前輩賜教了.
    2.我試過幾次, 都無法正確以 PaperSize.Height - PrintableArea.Bottom  方式設定印表機下邊界.
    3. 請心冷熱情熄 前輩, 是否可以列出完整程式碼供參考, 謝囉.

    chian
    2009年7月31日 上午 10:13
  • 就這樣設啊?
    vPageSetings.Margins.Bottom = Math.Max(vBottom, vPageSetings.PaperSize.Height - vPageSetings.PrintableArea.Bottom)
    設定下邊界與硬體邊界取大的作為真正邊界。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月31日 下午 12:27