天天看點

NPOI列印設定

列印設定主要包括方向設定、縮放、紙張設定、頁邊距等。NPOI 1.2支援大部分列印屬性,能夠讓你輕松滿足客戶的列印需要。

方向設定

首先是方向設定,Excel支援兩種頁面方向,即縱向和橫向。 

在NPOI中如何設定呢?你可以通過HSSFSheet.PrintSetup.Landscape來設定,Landscape是布爾類型的,在英語中是橫向的意思。如果Landscape等于true,則表示頁面方向為橫向;否則為縱向。

縮放設定

這裡的縮放比例對應于HSSFSheet.PrintSetup.Scale,而頁寬和頁高分别對應于 HSSFSheet.PrintSetup.FitWidth和HSSFSheet.PrintSetup.FitHeight。要注意的是,這裡的 PrintSetup.Scale應該被設定為0-100之間的值,而不是小數。

紙張設定

接下來就是紙張設定了,對應于HSSFSheet.PrintSetup.PaperSize,但這裡的PaperSize并不是随便設定的,而是由一些固定的值決定的,具體的值與對應的紙張如下表所示:

值 紙張

1 US Letter 8 1/2 x 11 in
2 US Letter Small 8 1/2 x 11 in
3 US Tabloid 11 x 17 in
4 US Ledger 17 x 11 in
5 US Legal 8 1/2 x 14 in
6 US Statement 5 1/2 x 8 1/2 in
7 US Executive 7 1/4 x 10 1/2 in
8 A3 297 x 420 mm
9 A4 210 x 297 mm
10  A4 Small 210 x 297 mm
11  A5 148 x 210 mm
12  B4 (JIS) 250 x 354
13  B5 (JIS) 182 x 257 mm
14  Folio 8 1/2 x 13 in
15  Quarto 215 x 275 mm
16  10 x 14 in
17  11 x 17 in
18  US Note 8 1/2 x 11 in
19  US Envelope #9 3 7/8 x 8 7/8
20  US Envelope #10 4 1/8 x 9 1/2
21  US Envelope #11 4 1/2 x 10 3/8
22  US Envelope #12 4 \276 x 11
23  US Envelope #14 5 x 11 1/2
24  C size sheet
25  D size sheet
26  E size sheet
27  Envelope DL 110 x 220mm
28  Envelope C5 162 x 229 mm
29  Envelope C3 324 x 458 mm
30  Envelope C4 229 x 324 mm
31  Envelope C6 114 x 162 mm
32  Envelope C65 114 x 229 mm
33  Envelope B4 250 x 353 mm
34  Envelope B5 176 x 250 mm
35  Envelope B6 176 x 125 mm
36  Envelope 110 x 230 mm
37  US Envelope Monarch 3.875 x 7.5 in
38  6 3/4 US Envelope 3 5/8 x 6 1/2 in
39  US Std Fanfold 14 7/8 x 11 in
40  German Std Fanfold 8 1/2 x 12 in
41  German Legal Fanfold 8 1/2 x 13 in
42  B4 (ISO) 250 x 353 mm
43  Japanese Postcard 100 x 148 mm
44  9 x 11 in
45  10 x 11 in
46  15 x 11 in
47  Envelope Invite 220 x 220 mm
48  RESERVED–DO NOT USE
49  RESERVED–DO NOT USE
50  US Letter Extra 9 \275 x 12 in
51  US Legal Extra 9 \275 x 15 in
52  US Tabloid Extra 11.69 x 18 in
53  A4 Extra 9.27 x 12.69 in
54  Letter Transverse 8 \275 x 11 in
55  A4 Transverse 210 x 297 mm
56  Letter Extra Transverse 9\275 x 12 in
57  SuperA/SuperA/A4 227 x 356 mm
58  SuperB/SuperB/A3 305 x 487 mm
59  US Letter Plus 8.5 x 12.69 in
60  A4 Plus 210 x 330 mm
61  A5 Transverse 148 x 210 mm
62  B5 (JIS) Transverse 182 x 257 mm
63  A3 Extra 322 x 445 mm
64  A5 Extra 174 x 235 mm
65  B5 (ISO) Extra 201 x 276 mm
66  A2 420 x 594 mm
67  A3 Transverse 297 x 420 mm
68  A3 Extra Transverse 322 x 445 mm
69  Japanese Double Postcard 200 x 148 mm
70  A6 105 x 148 mm
71  Japanese Envelope Kaku #2
72  Japanese Envelope Kaku #3
73  Japanese Envelope Chou #3
74  Japanese Envelope Chou #4
75  Letter Rotated 11 x 8 1/2 11 in
76  A3 Rotated 420 x 297 mm
77  A4 Rotated 297 x 210 mm
78  A5 Rotated 210 x 148 mm
79  B4 (JIS) Rotated 364 x 257 mm
80  B5 (JIS) Rotated 257 x 182 mm
81  Japanese Postcard Rotated 148 x 100 mm
82  Double Japanese Postcard Rotated 148 x 200 mm
83  A6 Rotated 148 x 105 mm
84  Japanese Envelope Kaku #2 Rotated
85  Japanese Envelope Kaku #3 Rotated
86  Japanese Envelope Chou #3 Rotated
87  Japanese Envelope Chou #4 Rotated
88  B6 (JIS) 128 x 182 mm
89  B6 (JIS) Rotated 182 x 128 mm
90  12 x 11 in
91  Japanese Envelope You #4
92  Japanese Envelope You #4 Rotated
93  PRC 16K 146 x 215 mm
94  PRC 32K 97 x 151 mm
95  PRC 32K(Big) 97 x 151 mm
96  PRC Envelope #1 102 x 165 mm
97  PRC Envelope #2 102 x 176 mm
98  PRC Envelope #3 125 x 176 mm
99  PRC Envelope #4 110 x 208 mm
100 PRC Envelope #5 110 x 220 mm
101 PRC Envelope #6 120 x 230 mm
102 PRC Envelope #7 160 x 230 mm
103 PRC Envelope #8 120 x 309 mm
104 PRC Envelope #9 229 x 324 mm
105 PRC Envelope #10 324 x 458 mm
106 PRC 16K Rotated
107 PRC 32K Rotated
108 PRC 32K(Big) Rotated
109 PRC Envelope #1 Rotated 165 x 102 mm
110 PRC Envelope #2 Rotated 176 x 102 mm
111 PRC Envelope #3 Rotated 176 x 125 mm
112 PRC Envelope #4 Rotated 208 x 110 mm
113 PRC Envelope #5 Rotated 220 x 110 mm
114 PRC Envelope #6 Rotated 230 x 120 mm
115 PRC Envelope #7 Rotated 230 x 160 mm
116 PRC Envelope #8 Rotated 309 x 120 mm
117 PRC Envelope #9 Rotated 324 x 229 mm
118 PRC Envelope #10 Rotated 458 x 324 mm      

(此表摘自《Excel Binary File Format (.xls) Structure Specification.pdf》)

HSSFSheet下面定義了一些xxxx_PAPERSIZE的常量,但都是非常常用的紙張大小,如果滿足不了你的需要,可以根據上表自己給PaperSize屬性指派。是以,如果你要設定紙張大小可以用這樣的代碼: 

HSSFSheet.PrintSetup.PaperSize=HSSFSheet.A4_PAPERSIZE; 

或 

HSSFSheet.PrintSetup.PaperSize=9; (A4 210*297mm)

起始頁碼

再下來就是列印的起始頁碼,它對應于HSSFSheet.PrintSetup.PageStart和 HSSFSheet.PrintSetup.UsePage,如果UsePage=false,那麼就相當于“自動”,這時PageStart不起作用; 如果UsePage=true,PageStart才會起作用。是以在設定PageStart之前,必須先把UsePage設定為true。

網格線

“列印”欄中的“網格線”設定對應于HSSFSheet.IsPrintGridlines,請注意,這裡不是 HSSFSheet.PrintSetup下面,是以别搞混了。這裡之是以不隸屬于PrintSetup是由底層存儲該資訊的record決定的,底層是 把IsGridsPrinted放在GridsetRecord裡面的,而不是PrintSetupRecord裡面的,盡管界面上是放在一起的。另外還 有一個HSSFSheet.IsGridsPrinted屬性,這個屬性對應于底層的gridset Record,但這個record是保留的,從微軟的文檔顯示沒有任何意義,是以這個屬性請不要去設定。

其它

“單色列印”則對應于HSSFSheet.PrintSetup.NoColors,這是布爾類型的,值為true時,表示單色列印。

“草稿品質”對應于HSSFSheet.PrintSetup.IsDraft,也是布爾類型的,值為true時,表示用草稿品質列印。

這裡的列印順序是由HSSFSheet.PrintSetup.LeftToRight決定的,它是布爾類型的,當為true時,則表示“先行後列”;如果是false,則表示“先列後行”。

在NPOI 1.2中,“行号列标”、“批注”和“錯誤單元格列印為”、“頁邊距”暫不支援,将在以後的版本中支援。