表單打印的多個部分都可以進(jìn)行自定義,大多數(shù)的自定義選項(xiàng)存在于PrintInfo對象中。大多數(shù)打印選項(xiàng)是在PrintInfo對象上進(jìn)行設(shè)置, 并在表單級別上應(yīng)用。當(dāng)你執(zhí)行打印操作時,你將一個特定的表單發(fā)送給使用這些設(shè)置的打印機(jī)。如果你想為不同的表單使用不同的打印設(shè)置,那么你可能需要重置 PrintInfo對象,然后在表單打印的間隔內(nèi)做必要的修改。
深入理解打印選項(xiàng)
你可以通過設(shè)置PrintInfo對象的 屬性,并將表單的PrintInfo屬性值設(shè)置為該對象,來自定義打印設(shè)置。PrintInfo對象提供了以下屬性用來自定義打印:
屬性 |
描述 |
AbortMessage |
獲取或設(shè)置退出對話框顯示的信息。 |
BestFitCols |
獲取或設(shè)置列寬是否為滿足打印最長字符串的寬度而調(diào)整。 |
BestFitRows |
獲取或設(shè)置行高是否為滿足打印最高字符串的高度而調(diào)整。 |
Centering |
獲取或設(shè)置打印輸出是否居中。 |
Colors |
獲取或設(shè)置可在自定義頁眉或頁腳文本中使用的顏色列表。 |
ColStart和 ColEnd |
用來打印表單的一部分。 |
FirstPageNumber |
獲取或設(shè)置打印在半島外圍網(wǎng)上直營上的頁碼。 |
Footer |
為打印頁面提供頁腳。 |
Header |
為打印的頁面提供頁眉。 |
Images |
獲取或設(shè)置可在自定義頁眉或頁腳中使用的圖片列表。 |
JobName |
獲取或設(shè)置打印作業(yè)的名稱。 |
Margin |
獲取或設(shè)置打印的頁面空白。 |
Opacity |
獲取或設(shè)置打印表單時所使用的不透明度; 它可以用來首先打印一個水印,然后再打印表單的內(nèi)容。 |
Orientation |
獲取或設(shè)置打印時的頁面方向。 |
PageStart和 PageEnd |
用來打印一個頁面區(qū)域。 |
PageOrder |
獲取或設(shè)置頁面打印的順序。 |
PaperSize |
獲取或設(shè)置所使用的紙張大小。 |
PaperSource |
獲取或設(shè)置所使用的紙張來源。 |
Preview |
用來提供打印預(yù)覽。 |
Printer |
獲取或設(shè)置用來打印的打印機(jī)名稱。 |
PrintNotes |
獲取或設(shè)置是否打印單元格注釋。 |
PrintShapes |
獲取或設(shè)置是否打印浮動對象。 |
PrintType |
獲取或設(shè)置需要打印的內(nèi)容。 |
RepeatColStart和 RepeatColEnd |
獲取或設(shè)置是否在每一個頁面上打印相同的列集。 |
RepeatRowStart 和 RepeatRowEnd |
獲取或設(shè)置是否在每一個頁面上打印相同的行集。 |
RowStart和 RowEnd |
用來打印表單的一部分。 |
ShowBorder |
獲取或設(shè)置是否在表單的四周打印邊界。 |
ShowColor |
獲取或設(shè)置是否打印在屏幕上出現(xiàn)的顏色。 |
ShowColumnHeader 和 ShowRowHeader |
獲取或設(shè)置是否打印列標(biāo)題和行標(biāo)題。 |
ShowGrid |
獲取或設(shè)置是否打印表單的網(wǎng)格線。 |
ShowPrintDialog |
獲取或設(shè)置打印前是否顯示打印對話框。 |
ShowShadows |
獲取或設(shè)置是否打印標(biāo)題陰影。 |
SmartPrintPagesTall |
獲取或設(shè)置打印的頁高。 |
SmartPrintPagesWide |
獲取或設(shè)置打印的頁寬。 |
SmartPrintRules |
用來設(shè)置打印優(yōu)化的規(guī)則。 |
UseMax |
獲取或設(shè)置是否只打印包含數(shù)據(jù)的行。 |
UseSmartPrint |
用來開啟打印優(yōu)化的規(guī)則。 |
ZoomFactor |
獲取或設(shè)置打印頁面時使用的縮放因子。 |
示例代碼創(chuàng)建了一個PrintInfo對象,并設(shè)置屬性指定不打印網(wǎng)格線或行標(biāo)題,并且只打印包含數(shù)據(jù)的單元格。
//創(chuàng)建PrintInfo對象并設(shè)置屬性。 |
FarPoint.Win.Spread.PrintInfo printset =
new FarPoint.Win.Spread.PrintInfo(); |
printset.ShowGrid = false; |
printset.ShowRowHeader = FarPoint.Win.Spread.PrintHeader.Hide; |
//為第一個表單設(shè)置PrintInfo屬性。 |
fpSpread1.Sheets[0].PrintInfo = printset; |
自定義打印作業(yè)設(shè)置
如果你沒有指定其他打印機(jī)的話,表單會使用你的Windows系統(tǒng)環(huán)境中當(dāng)前的默認(rèn)打印機(jī)進(jìn)行打印。你可以在任意支持Windows的打印機(jī)上打印表單。
你可以自定義的打印作業(yè)設(shè)置項(xiàng)包括打印機(jī)、紙張來源、以及紙張大小。相對應(yīng)的,可以設(shè)置PrintInfo對象中的Printer,PaperSource,或PaperSize屬性。
下面的示例代碼從一個復(fù)選框中選擇了紙張來源,并在打印所有表單前設(shè)置了紙張的大小。
private void Form1_Load(object sender, System.EventArgs e) |
System.Drawing.Printing.PrinterSettings ps =
new System.Drawing.Printing.PrinterSettings(); |
for (i = 0; i <= ps.PaperSources.Count - 1; i++) |
comboBox1.Items.Add(ps.PaperSources[i].SourceName); |
comboBox1.Text = ps.PaperSources[0].SourceName; |
private void button1_Click(object sender, System.EventArgs e |
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo(); |
System.Drawing.Printing.PrinterSettings
ps = new System.Drawing.Printing.PrinterSettings(); |
pi.PaperSize = new System.Drawing.Printing.PaperSize("Letter", 600, 300); |
pi.PaperSource = ps.PaperSources[comboBox1.SelectedIndex]; |
fpSpread1.Sheets[0].PrintInfo = pi; |
fpSpread1.PrintSheet(-1); |
自定義打印頁眉或頁腳
你可以在打印頁面上顯示頁眉和頁腳。使用PrintInfo類的 Header屬性和 Footer屬性,可能包含特殊的控制指令,你可以指定文本和變量,如頁數(shù),也可以指定字體的設(shè)置。與字體相關(guān)的指令以"f"開頭。
下面的表中列出了可插入到頁眉和頁腳中的控制指令。
控制字符 |
完整的命令 |
打印頁面的頁眉或頁腳的行為 |
/ |
/ |
插入正斜杠字符(/) |
/c |
/c |
調(diào)整項(xiàng)目居中 |
/cl |
/cl"n" |
設(shè)置文本的字體顏色,使用以0為基準(zhǔn)的顏色索引,n,在引號中(n可以是0或更大); 請參考Colors屬性。 |
/dl |
/dl |
使用長格式,插入日期 |
/ds |
/ds |
使用短格式,插入日期 |
/f |
/f"n" |
重新調(diào)用先前保存的字體設(shè)置(查看表中的/fs),使用以0為基準(zhǔn)的索引,n,在引號中(n可以是0或更大)。 |
/fb |
/fb0 |
關(guān)閉加粗字體類型 |
|
/fb1 |
打開加粗字體類型 |
/fi |
/fi0 |
關(guān)閉斜體字體類型 |
|
/fi1 |
打開斜體字體類型 |
/fk |
/fk0 |
關(guān)閉刪除線 |
|
/fk1 |
打開刪除線 |
/fn |
/fn"name" |
使用引號中字體的名稱,設(shè)置字體的名稱。 |
/fs |
/fs"n" |
保存字體設(shè)置以便重復(fù)使用,使用以0為基準(zhǔn)的字體設(shè)置索引,n,在引號中(查看表中的/f) |
/fu |
/fu0 |
關(guān)閉下劃線 |
|
/fu1 |
打開下劃線 |
/fz |
/fz"n" |
設(shè)置字體的大小 |
/g |
/g"n" |
插入一張圖形(圖片),以0為基準(zhǔn)的圖片索引,n,在引號中(n可以為0或更大) 請參考Images屬性。 |
/l |
/l |
左對齊該項(xiàng)目(這是字母l或L,與Left等價) |
/n |
/n |
插入一個新行 |
/p |
/p |
插入頁碼 |
/pc |
/pc |
插入頁數(shù)(打印作業(yè)中的總頁面數(shù)) |
/r |
/r |
右對齊該項(xiàng)目 |
/tl |
/tl |
使用長格式插入時間 |
/ts |
/ts |
使用短格式插入時間 |
如果你使用了多個控制字符,不要在字符之間留空格。字符可以為小寫或大寫格式; 為了簡單起見,顯示在這里的所有命令和示例都使用小寫格式。
打印表單(運(yùn)行PrintSheet 方法)前定義頁眉和頁腳(設(shè)置 Header 和 Footer 屬性)。
如果顏色已經(jīng)在Colors屬性中進(jìn)行了預(yù)定義,那么你可以從顏色列表中為文本指定一個顏色。
如果圖片已經(jīng)在Images屬性中進(jìn)行了預(yù)定義,你可以指定一個圖片。
你可以添加文本包括頁數(shù)和總的打印頁數(shù)。
你可以保存頁眉或頁腳中的字體設(shè)置,以便重復(fù)使用。
這個是下面代碼運(yùn)行的結(jié)果。

下面的示例代碼打印帶有指定頁眉和頁腳文本的表單:
//創(chuàng)建PrintInfo對象并設(shè)置屬性。 |
FarPoint.Win.Spread.PrintInfo
printset = new FarPoint.Win.Spread.PrintInfo();
|
printset.Colors = new Color[] {Color.Green,
Color.Yellow, Color.Gold, Color.Indigo, Color.Brown};
|
printset.Images = new Image[] {Image.FromFile
("C:\\images\\point.jpg"), Image.FromFile("C:\\images\\logo.gif"),
Image.FromFile("C:\\images\\icon.jpg")}; |
printset.Header = ""/fn\"Book Antiqua\" /fz\"14\" Print job for FarPoint Inc./n "; |
printset.Footer = "/g\"1\"/r/cl\"4\"This is page /p of /pc"; |
//為第一個表單設(shè)置PrintInfo屬性。 |
fpSpread1.Sheets[0].PrintInfo = printset; |
在打印頁面上循環(huán)打印行或列
你可以指定出現(xiàn)在每一個打印頁頂部的行或左邊的列。使用PrintInfo對象的RepeatRowStart,RepeatRowEnd,RepeatColStart,和RepeatColEnd屬性。
下面的示例代碼設(shè)置了循環(huán)選項(xiàng),并使用了預(yù)覽對話框。
FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo(); |
printset.RepeatColStart = 0; |
printset.RepeatColEnd = 2; |
printset.RepeatRowStart = 0; |
printset.RepeatRowEnd = 2; |
fpSpread1.Sheets[0].PrintInfo = printset; |
添加分頁符
你可以在指定的行或列前添加強(qiáng)制分頁符。分頁符不會在屏幕上顯示,但是在打印表單時會強(qiáng)制分頁。列的分頁符位于指定列的左邊。行的分頁符位于指定行的上方。要添加或設(shè)置分頁符,使用SetRowPageBreak 和SetColumnPageBreak方法。
你也可以檢索到表單中位于分頁符后的下一行或列。要查看已經(jīng)設(shè)置的分頁符,使用GetRowPageBreaks方法返回行分頁符的數(shù)量,使用GetColumnPageBreaks方法返回列分頁符的數(shù)量。
你可以使用GetPrintPageCount方法 計(jì)算表單的打印頁數(shù)。
下面的示例代碼設(shè)置了行分頁符,并為行分頁符返回了總行數(shù)。
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo(); |
fpSpread1.Sheets[0].PrintInfo = pi; |
fpSpread1.Sheets[0].SetRowPageBreak(5,true); |
i = fpSpread1.GetRowPageBreaks(0); |
為打印頁面添加水印
在打印表單時,你可以打印一張背景圖片或水印。打印時,觸發(fā)PrintBackground事件,然后在該事件中指定背景圖片,并使用 PrintInfo.Opacity屬性設(shè)置不透明度; 打印表單時,如果不透明度最高(透明度最低),則沒有水印;而如果不透明度低(透明度高)時,則會顯示水印。
下面的代碼示例展示了如何打印水印。
private void fpSpread1_PrintBackground(object sender, FarPoint.Win.Spread.PrintBackgroundEventArgs e) |
FarPoint.Win.Picture pic = new FarPoint.Win.Picture
(System.Drawing.Image.FromFile("C:\\Spread70\\Samples\\Files\\cover.jpg"), FarPoint.Win.RenderStyle.Normal);
|
pic.AlignHorz = FarPoint.Win.HorizontalAlignment.Left; |
pic.AlignVert = FarPoint.Win.VerticalAlignment.Top; |
pic.Paint(e.Graphics, e.SheetRectangle); |
private void button1_Click(object sender, System.EventArgs e) |
FarPoint.Win.Spread.PrintInfo pi = new FarPoint.Win.Spread.PrintInfo(); |
fpSpread1.ActiveSheet.PrintInfo = pi; |
標(biāo)簽:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:博客園