NPOI 教程 - 3.2 打印相关设置
转:http://www.cnblogs.com/wolfplan/archive/2013/01/13/2858991.html
打印设置主要包括方向设置、缩放、纸张设置、页边距等。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中,“行号列标”、“批注”和“错误单元格打印为”、“页边距”暂不支持,将在以后的版本中支持。
NPOI 教程 - 3.2 打印相关设置的更多相关文章
- 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例
你所不知道的 CSS 阴影技巧与细节 关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow ...
- NPOI教程
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. NPOI 官方网站:http://npoi.codeplex.com/( ...
- 使用VIRTUALBOX安装ANDROID系统 | 图文教程 | 相关设置
使用VIRTUALBOX安装ANDROID系统 | 图文教程 | 相关设置 http://icaoye.com/virtualbox-run-android/
- zend studio 9.0.4 破解、汉化和字体颜色及快捷键相关设置
转载:http://www.penglig.com/post-45.html 下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:h ...
- (转)打印相关_C#(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)
原文地址:http://www.cnblogs.com/smallsoftfox/archive/2012/06/25/2562718.html 参考文章:http://www.cnblogs.com ...
- zend studio 破解、汉化和字体颜色及快捷键相关设置
下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:http://www.geekso.com/ZendStudio9-key/ 注 ...
- Linux 之 网络相关设置
网络相关设置 参考教程:[千峰教育] 命令: ping: 作用:通常用于检测网络设备的连通性. 格式:ping IP/域名 选项:-c,指定方式测试数据包的次数 实例:ping www.baidu.c ...
- 2DToolkit官方文档中文版打地鼠教程(二):设置摄像机
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
- Xcode 生成静态库相关设置:
Xcode 生成静态库相关设置: #Build Setting1. Architectures ------- Architectures -----> $(ARCHS_STANDARD) -- ...
随机推荐
- MarkdownPad 破解学习
最近学习 Markdown,从网上下载了 Windows 下的编辑器:MarkdownPad.这款软件分为免费版和专业版(收费), 对于普通用户来说免费版已经足够,专业版比免费版多了如下几个功能: 一 ...
- 配置spring管理的bean的作用域
.singleton 在每一个spring Ioc容器中一个bean定义只有一个对象实例.默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init = "tru ...
- c++11之智能指针
在c++98中,智能指针通过一个模板“auto_ptr”来实现,auto_ptr以对象的方式来管理堆分配的内存,在适当的时间(比如析构),释放所获得的内存.这种内存管理的方式只需要程序员将new操作返 ...
- enum 使用
1.说明 enum是一个基本的关键字,却一直没弄清楚怎么用,这次在实现二叉树框架时需要用到常量,特地搜了一下,终于知道怎么用了. 2.enum使用要点 enum声明是一个类型,不是变量. enum经常 ...
- 【boost】BOOST_LOCAL_FUNCTION体验
c++11里支持使用lambda在函数内定义本地嵌套函数,将一些算法的判断式定义为本地函数可以使代码更加清晰,同时声明和调用靠近也使得更容易维护.遗憾的是公司开发平台任然停留在vs2008,使用boo ...
- 在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域
Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:
- mysql基础知识(3)--创建
创建表: 基本形式 create table [if not exists] 表名(字段列表, [约束或索引列表]) [表选项列表]; 说明:列表都是表示“多个”,相互之间用逗号分开. 字段基本 ...
- class int
class int(object): """ int(x=0) -> integer int(x, base=10) -> integer Convert a ...
- Light oj 1100 - Again Array Queries (鸽巢原理+暴力)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1100 给你n个数,数的范围是1~1000,给你q个询问,每个询问问你l到r之间 ...
- HDU2227Find the nondecreasing subsequences(树状数组+DP)
题目大意就是说帮你给出一个序列a,让你求出它的非递减序列有多少个. 设dp[i]表示以a[i]结尾的非递减子序列的个数,由题意我们可以写出状态转移方程: dp[i] = sum{dp[j] | 1&l ...