簡體   English   中英

如何在 C# 打印文檔中設置和打印自定義紙張尺寸?

[英]How to set up and print with custom paper size in C# printdocument?

我正在嘗試使用 PrintDocument 並設置要打印的紙張尺寸或條形碼熱敏打印機。 因為我附近沒有打印機,所以我正在使用 Win10 中出現的 Microsoft Print To PDF 選項。

在初始化期間,我有這樣的代碼: 設置自定義紙張尺寸時出現異常

如您所見,我在這里嘗試為默認紙張尺寸設置自定義紙張尺寸。 但是,我不能指定 Kind 屬性,因為它是只讀的。 RawKind 屬性沒有幫助。

作為替代,我有這樣的事件。 它也無濟於事。 它在預覽時正確顯示頁面布局,但在 PDF 文檔中,我觀察到默認情況下以 A4 打印的頁面。

private void PrintDoc_QueryPageSettings(object sender, QueryPageSettingsEventArgs e)
        {

            PageSettings nSettings = new PageSettings();
            int properWidthInHundretsOfInches = (int)(handlingClassRef.newconfig.labelParameters.barcodeLabelWidthMM * (1.0 / 25.4) * 100.0);
            int properHeightInHundretsOfInches = (int)(handlingClassRef.newconfig.labelParameters.barcodeLabelHeightMM * (1.0 / 25.4) * 100.0);
            nSettings.PaperSize = new PaperSize("label", (int)properWidthInHundretsOfInches, (int)properHeightInHundretsOfInches);            
            e.PageSettings = nSettings;

        }

我知道如何在 winforms 中使用自定義紙張尺寸打印問題,但我實際上並不理解答案。 我應該使用打印機屬性操作系統對話框重新配置打印機嗎? 我寧願不要求用戶以一種或另一種方式修改打印機的設置。 另外,我想在打印到 pdf 探索階段時取得適當的結果。

如何在 C# 打印文檔中設置和打印自定義紙張尺寸?


編輯:使用該行:

printDoc.DefaultPageSettings.PaperSize = new PaperSize("label", properWidthInHundretsOfInches, properHeightInHundretsOfInches);

沒有解決問題。

這是一個結果:

預覽很好而且很小,但打印的文檔很大並且頁面大小不合適

預覽很好而且很小,但打印的文檔很大並且頁面大小不合適

您可以嘗試在 System.Drawing.Printing 下初始化 PaperSize 類,然后您可以指定自定義大小

printDoc.DefaultPageSettings.PaperSize = new PaperSize("MyPaper", 600, 800);

我找到了解決方案!

簡短的回答是:

printDocument1.DefaultPageSettings.PaperSize = new PaperSize("MyPaper", 700, 900);

為什么它打印的是 A4 紙尺寸,而不是完整的報告?

因為 Windows 中的默認虛擬 pdf 打印機微軟打印到 Pdf 使用 A4 紙張尺寸,您可以嘗試從控制面板將其更改為 A5 並嘗試再次打印。 您會注意到它在 pdf output 上包含了更多行,所以不用擔心,我提到的代碼是正確的。 但這取決於您使用的打印機。 因為打印機只使用一些格式化的紙張尺寸,它不會接受更多的頁面。

更多解釋見這張圖

..

首先,我很生氣因為這個問題,我以為printpreviewDialog1有另一個Printable區域,我試圖讓它和printdocument1一樣精確,然后我發現它只是一個查看器。 經過數小時的研究和多次嘗試,我注意到打印機不再接受任何行; 我正在寫收銀員報告。 我需要為熱敏打印機制作一張長紙,但是當我在“打印到 pdf”打印機上進行測試時,它並沒有打印預覽控件上的所有行,因為它只是打印到 A4 大小,莫多莫少!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM