none
報表紙張種類的設定方式 RRS feed

  • 問題

  • 1.在 VB 內配合 PrintDocument 列印文件。
    2.連續報表紙的標準尺寸為 8.5x11 in。而我使用的是加一刀的報表紙,也就是將 8.5x11 in 報表紙分割成上下兩張的小尺寸報表紙,這時它的尺寸為 8.5x5.5 in。我使用下例方式設定紙張大小:

    PrintDocument.DefaultPageSettings.PaperSize=  New Printing.PaperSize("Custom", 816, 529)

    3. 由於尺寸換算為像素,不是很準確,所以換頁的結果會逐頁異位,這該如何處理呢?
    4. 此外,我須要使用表準 Letter 連續報表紙列印文件,因它有 Letter 這個標準名稱,請問我該如何使用PaperSize.Kind 宣告使用 Letter 報表紙。
    5.由於我不是老手,諸多不懂,若不介意,請附較完整範例供參考,謝了。

    敬請指導,謝謝。

    chian
    2009年6月20日 上午 02:26

解答

  • Dim pageLetter As Drawing.Printing.PaperSize

    For Each pageLetter In PrintDocument1.PrinterSettings.PaperSizes

         If pageLetter.PaperName = "Letter" Then

              PrintDocument1.DefaultPageSettings.PaperSize = pageLetter

              Exit For

         End If

    Next


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 chian 2009年6月21日 上午 03:03
    2009年6月20日 下午 03:55

所有回覆

  • 2009年6月20日 上午 05:17
  • 1.感謝您的範例。
    2. 我是要以報表紙名稱 Letter 來指定紙張種類,因此須使用到 PaperSize.Kind ,但我不會使用它。
    3.我嘗試使用下例程式碼設定紙張種類,但它產生 Kind 是 ReadOnly 錯誤,請問這該如何排除問題。

    e.PageSettings.PaperSize.Kind = Printing.PaperKind.Letter

    敬請再指導,謝謝。
    chian
    2009年6月20日 上午 06:49
  • Dim pageLetter As Drawing.Printing.PaperSize

    For Each pageLetter In PrintDocument1.PrinterSettings.PaperSizes

         If pageLetter.PaperName = "Letter" Then

              PrintDocument1.DefaultPageSettings.PaperSize = pageLetter

              Exit For

         End If

    Next


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 chian 2009年6月21日 上午 03:03
    2009年6月20日 下午 03:55
  • 1.感謝您的範例,這對我非常有幫忙。
    2.範例經使用之後,產生「無法變更 PaperSize,除非 Kind 屬性設定為 Custom。」訊息,請問該如何設定 Kind 屬性呢,若能改變,應該也能直接設定使用 Printing.PaperKind.Letter。

    敬請再指導,謝了。
    chian
    2009年6月21日 上午 01:04
  • 這段程式碼是用虛擬印表機測試過的,請明確說明何種狀況下發生不能設定。

    注意:你可以換不同的預設印表機測看看,可能是特定印表機驅動程式問題。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年6月21日 上午 03:07