簡體   English   中英

GTK#-打印:如何設置紙張尺寸

[英]GTK# - printing: How to set the paper size

我正在用GTK#打印一些文本,類似於您可以在此處找到的演示代碼:

https://github.com/mono/gtk-sharp/blob/master/sample/GtkDemo/DemoPrinting.cs

文本可以正確打印,但是我希望頁面輸出的紙張尺寸不同。

如何以編程方式設置紙張尺寸?

PrintOperation print = new PrintOperation();

print.BeginPrint += new BeginPrintHandler(OnBeginPrint);
print.DrawPage += new DrawPageHandler(OnDrawPage);
print.EndPrint += new EndPrintHandler(OnEndPrint);
print.Run(PrintOperationAction.Print, null);

編輯我發現, PrintOperation類有兩個成員,分別稱為DefaultPageSetupPrintSettings ,它們包含一個PaperSize,但是這些對象在創建后為null( new PrintOperation() )。 並且在OnBeginPrint上已經設置了這些值。

我終於找到了如何設置自定義紙張尺寸的方法! 您必須設置PrintSettingsDefaultPageSetupPrintOperation

PrintSettings settings = new PrintSettings();
settings.PaperSize = new PaperSize("XXX", "XXX", 500, 5000);

PageSetup setup = new PageSetup();
setup.SetBottomMargin(0, Unit.Pixel);
setup.SetTopMargin(0, Unit.Pixel);
setup.SetLeftMargin(0, Unit.Pixel);
setup.SetRightMargin(0, Unit.Pixel);
setup.PaperSize = settings.PaperSize;

PrintOperation print = new PrintOperation();
print.DefaultPageSetup = setup;
print.PrintSettings = settings;

print.BeginPrint += new BeginPrintHandler(OnBeginPrint);
print.DrawPage += new DrawPageHandler(OnDrawPage);
print.EndPrint += new EndPrintHandler(OnEndPrint);
print.Run(PrintOperationAction.Print, null);

暫無
暫無

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

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