[英]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.