Database 版 (精华区)

发信人: wodeji (西西), 信区: Database
标  题: [转载] PowerBuilder开发系列谈(6)
发信站: 紫 丁 香 (Tue Sep 29 17:50:47 1998), 站内信件

【 以下文字转载自 Programming 讨论区 】
【 原文由 two 所发表 】


 ----PowerBuilder 提 供 了 一 组 打 印 控 制 函 数 来 控 制 要 交 给 打 印 机 打 印 的 对
 象。 第 一 个 函 数P rintOpen() 在 这 章 的 前 面 我 们 已 介 绍 过 了, 其 它 还 有: 

 ----PrintCancel(print_job_number) 

 ---- 这 个 函 数 将 中 止 打 印 作 业 号 所 打 印 的 作 业, 不 发 送 任 何 内 容 给 打 印
 机。 

 ----datawindowcontrol.PrintCancel() 

 ---- 这 个 函 数 与 上 一 函 数 的 区 别 是: 这 个 函 数 取 消 的 是
 用Datawindowcontrol.Print() 提 交 的 作 业。 

 ----PrintClose(print_job_number) 

 ---- 这 个 函 数 将 关 闭 指 定 的 打 印 作 业 并 且 把 它 发 给 打 印 机( 或 者 假 脱 机
 程 序)。 为 了 避 免 挂 起 打 印 作 业, 所 有 打 开 的 打 印 作 业 都 应 在 应 用 的 结
 束 前 被 关 闭 或 取 消。 

 ----PrintDefineFont(print_job_number,fontnumber,facename,height,weight,font-pit
 ch,fontfamily,italic,underline) 

 ---- 你 可 以 用 这 个 函 数 定 义 字 型。Power-Builder 允 许 在 一 个 打 印 作 业 中 使
 用 八 种 字 型, 用 这 个 函 数 可 定 义 其 中 的 任 一 个。 这 个 字 型 所 属 的 打 印 作
 业 号 由Print_job_number 参 数 指 定,fo nt_number 参 数 是 这 个 打 印 作 业 所 采 用 的
 字 型 号(1-8)。 其 余 的 参 数 描 述 了 字 型 如 何 显 示, 是 否 斜 体 字、 粗 体 和 下
 划 线 等。facename 参 数 是 一 个 包 含 了 你 所 定 义 的 字 体 名 字 的 字 符 串( 例
 :courier 100CPI)。height 参 数 是 你 所 需 的 以 千 分 之 一 寸 为 单 位 的 字 体 的 高 度(
 例:250 将 是 一 个18 点 阵courier 10 CPI 字 体),height 参 数 也 可 使 用 一 负 值 来 表 示
 点 阵 数 指 定 点 尺 寸( 例 :-18 是18 点 阵)。weight 参 数 值 是 您 所 要 的 字 型 的 笔
 画 权 值( 例:400 是 平 常 正 文,700 是 粗 体) 。fontpitch 参 数 是 一 个 枚 举 数 据 类 型,
 它 指 定 了 字 体 的 间 距(Default!,Fixed! 或variable! );fontfamily 参 数 也 是 一 个 枚 举 类
 型, 指 定 了 字 体 系 列(AnyFont!,Decorative!,Mod-ern!,R oman!,Script!,Swiss!)。 这 两 种
 参 数 只 在 基 于Windows 的 操 作 系 统 中 使 用, 在Macintosh 等 机 器 中 不 能 使
 用。italic 参 数 是 一 个 布 尔 型 变 量, 指 定 字 体 是 斜 体(True) 或 非 斜 体(False),un
 derline 参 数 也 是 一 个 布 尔 值, 用 法 同 上。 

 ----PrintOpen() 

 ---- 这 个 函 数 已 在 这 章 的 开 始 讲 述 过 了, 它 定 义 一 个 打 印 作 业 以 便 将 所
 有 的 打 印 项 成 组 发 送 给 打 印 机。 它 的 返 回 值 是 唯 一 的 打 印 作 业ID, 如 果
 返 回 值 为 负, 则 意 味 着 产 生 错 误。 

 ----PrintPage(print_job_number) 

 ---- 这 个 函 数 将 指 定 的 打 印 作 业 的 当 前 页 传 送 给 打 印 机( 或 假 脱 机 程 序),
 并 另 起 一 页 用 于 之 后 的 打 印 集。 

 ----PrintSend(print_job_number,string{,zero_character}) 

 ---- 这 个 函 数 在 打 印 作 业 中 发 送 一 个 特 定 的 字 符 串 给 打 印 机。 这 个 字 符
 串 一 般 是 一 个 包 含 转 义 字 符 的 命 令 串 用 来 启 动 或 操 作 打 印 机。 这 些 打
 印 机 的 控 制 代 码 因 打 印 机 的 不 同 而 不 同, 您 应 查 询 您 的 打 印 机 手 册 来 得
 到 正 确 的 代 码。 

 ---- 这 个 与 打 印 机 进 行 通 信 的 字 符 串 应 是 一 个ASCII 码 集, 并 以ASCII 码0 来
 结 束。 如 果 你 需 要 发 送ASCII 码0, 你 可 以 用 另 外 的 一 个 字 符 来 替 代0, 给 定
 的 这 个 替 代 字 符 的ASCII 值 由 可 选 参 数 zero-character 来 指 定。 这 个 函 数 一
 般 用 于 改 变 纸 的 定 向(Landscape 或por-trait) 或 者 改 变 打 印 用 的 纸 盘 等。 

 ----PrintSetFont(print_job_number,fontnumber) 

 ---- 这 个 函 数 设 置 当 前 打 印 机 字 体, 它 是 你 使 用PrintDefineFont() 函 数 中 定 义
 的 八 个 字 体 中 的 一 个。 

 ----PrintSetSpacing(print_job_number,spacing) 

 ---- 这 个 函 数 使 用Spacing 参 数 来 决 定 正 文 行 之 间 的 行 距。 这 个 值 乘 以 当
 前 字 体 高 得 到 行 距 , 缺 省 值 是1.2。 

 ----PrintSetup() 

 ---- 这 个 函 数 调 用Windows 的Print Setup 对 话 框, 实 际 显 示 的Setup 窗 口 依 赖 于
 你 所 安 装 的 打 印 机 驱 动 程 序。 

 ----PrintWidth(print_job_number,string) 

 ---- 这 个 函 数 的sting 参 数 返 回 字 符 串 的 宽 度( 以 千 分 之 一 寸 为 单 位)。 返 回
 值 的 大 小 是 依 赖 于 当 前 选 择 的 字 体。 

 ----PrintX(print_job_number) 

 ---- 这 个 函 数 返 回 当 前 打 印 光 标 的X 坐 标( 水 平) 值。 

 ----PrintY(print_job_number) 

 ---- 这 个 函 数 返 回 当 前 打 印 光 标 的Y 坐 标( 垂 直) 值。 

 ---- 除 非 特 别 说 明, 上 述 函 数 的 返 回 值1 意 味 着 成 功,-1 意 味 着 失 败。 

                       DataWindow 控 件 的 打 印 属 性 

 ---- 使 用modify 函 数, 我 们 可 以 改 变DataWindow 的 打 印 属 性。 在 打
 印DataW-indow 之 前, 我 们 可 以 调 用 如 图 所 示 的 窗 口, 从 而 得 到 我 们 想 让 用
 户 设 置 的 参 数。 这 个 窗 口 在PowerBuilder E nterprise 的 实 例 库 中, 您 也 可 以 在
 直 接 调 用 它 前 对 其 显 示 界 面 进 行 汉 化 和 作 适 当 修 改。 

 ---- 例 如, 我 们 使 用 下 面 语 句 来 改 变 我 们 想 打 印 的 份 数。 

 ----dw_data..Modify("DataWindow.Print.Copies=3") 

 ---- 你 可 以 使 用PowerBuilder Enterprise 打 包 软 件DWSYN40.EXE----DataWindow 语
 法 生 成 器 来 建 立Modify 语 句。 

 ---- 下 面 所 > 


 传输中断!

 全 部 以DataWindow.print 为 前 缀, 后 接 这 个 属 性。 

 ----Collate=Yes or No( 缺 省 为no, 不 作 校 对) 

 ---- 这 个 属 性 用 来 指 示 是 否 要 对 打 印 进 行 校 对。 校 对 通 常 较 慢, 因 为 整
 个 打 印 过 程 必 须 反 复 几 次 以 得 到 一 个 校 对 后 的 结 果。 

 ----Color=1( 彩 色)or 2( 单 色) 

 ---- 这 个 属 性 指 示 传 送 给 打 印 输 出 的 是 彩 色( 如 果 你 有 一 台 彩 色 打 印 机)
 还 是 单 色。 

 ----Columns= <an integer >( 缺 省 为1) 

 ---- 这 个 属 性 用 来 指 示DataWindow 以 报 纸 风 格 打 印 在 一 页 上 的 栏 的 数
 量。 

 ----Columns.Width= <an integer > 

 ---- 这 个 属 性 指 示 以 报 纸 风 格 打 印 的 栏 的 宽 度( 基 于 为DataWindow 指 定 的
 单 位)。 

 ----Copies= <an integer > 

 ---- 这 个 属 性 指 示 你 所 需 的 打 印 的 数 量。 

 ----DocumentName= <a string > 

 ---- 这 个 属 性 可 以 让 你 为 文 件 设 置 一 个 名 字。 这 个 名 字 在DataWindow 传
 送 给 打 印 机 时 在 打 印 序 列 中 出 现。 

 ----Duplex=1( 单 一)or 2( 水 平)or 3( 垂 直) 

 ---- 这 个 属 性 指 示 打 印 输 出 的 方 向。 

 ----Filename= <filename string > 

 ---- 这 个 属 性 仅 当 把DataWindow 输 出 为 一 个 文 件 时 才 有 用。 这 个 属 性 包
 含 的 字 符 串 是 将 在 磁 盘 中 存 储 的 文 件 的 名 字。 

 ----Margin.Bottom= <an integer > 

 ---- 这 个 属 性 为 一 整 型 指 示 页 面 下 部 空 白 的 宽 度( 用DataWindow 指 定 的 单
 位) 

 ----Margin.Left= <an integer > 

 ---- 功 能 与Margin.Botton 相 同, 但 指 示 的 是 左 侧 空 白 宽 度。 

 ----Margin.Right= <an integer > 

 ---- 功 能 与Mangin.Bottom 相 同, 但 指 示 的 是 右 侧 空 白 宽 度。 

 ----Margin.Top= <an integer > 

 ---- 功 能 与Mangin.Bottom 相 同, 但 指 示 的 是 顶 端 空 白 宽 度。 

 ----Orientation=0( 打 印 机 的 缺 省 设 置) 或2( 横 向 打 印) 或3( 纵 向 打 印) 这 个 属 性
 用 来 指 示 打 印 定 向。 你 可 以 使 用 打 印 机 缺 省 设 置, 或 者 设 置 成Landscape
 或Portrait 模 式, 覆 盖 缺 省 的 打 印 设 置。 

 ----Page.Range= <page range string > 

 ---- 这 个 属 性 为 一 字 符 串 指 明 你 要 打 印 的 页 数。 在 字 符 串 中 的 数 字 用 逗
 号 分 隔, 或 者 数 字 之 间 用 由 一 横 线 分 隔 表 示 一 范 围 或 两 者 同 时 使 用, 例
 如:"1,2,3,6-12", 空 字 符 串 表 示 要 打 印 所 有 的 页。 

 ----Page.RangeInclude=0( 全 部 打 印) 或1( 打 印 奇 数 页) 或2( 打 印 偶 数 页) 

 ---- 这 个 属 性 用 来 指 示 在Page.Range 指 示 的 范 围 中 哪 些 页 要 打 印。 你 可 以
 先 选 择 打 印 偶 数 页 , 然 后 将 纸 放 入 打 印 机 中, 再 选 择 奇 数 页 打 印。 这 一
 功 能 像 在 打 印 书 时 那 样, 需 在 纸 的 两 面 打 印 时 非 常 有 用。 

 ----Paper.Size= <an integer > 

 ---- 这 一 属 性 用 来 指 示 打 印 纸 的 尺 寸。 可 接 受 的 值 如 下: 

 ----0- 缺 省 

 ----1-Letter 8 1/2 x 11 in 

 ----2-LetterSmall 8 1/2 x 11 in 

 ----3-Tabloid 17 x 11 inches 

 ----4-Ledger 17 x 11 in 

 ----5-Legal 8 1/2 x 14 in 

 ----6-Statement 5 1/2 x 8 1/2 in 

 ----7-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 250 x 354 

 ----13-B5 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-Note 8 1/2 x 11 in 

 ----19-Envelope #9 3 7/8 x 8 7/8 

 ----20-Envelope #10 4 1/8 x 9 1/2 

 ----21-Envelope #11 4 1/2 x 10 3/8 

 ----22-Envelope #12 4 x 11 1/276 

 ----23-Envelope #14 5 x 11 1/2 

 ----24-C size sheet 

 ----25-D size sheet 

 ----26-E size sheet 

 ----27-Envelope DL 110 x 220 mm 

 ----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-Envelope Monarch 3.875 x 7.5 in 

 ----38-6 3/4 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 

 ----Paper.Source= <an integer > 

 ---- 这 一 属 性 是 一 个 整 型 值, 指 明 纸 的 来 源。 可 接 受 的 值 如 下: 

 ----0-Default 

 ----1-Upper 

 ----2-Lower 

 ----3-Middle 

 ----4-Manual 

 ----5-Envelope 

 ----6-Envelope manual 

 ----7-Auto 

 ----8-Tractor 

 ----9-Smallfmt 

 ----10-Largefmt 

 ----11-Large capacity 

 ----14-Cassette 

 ----Preview=Yes( 进 入 打 印 预 览 状 态) 或No( 缺 省- 退 出 打 印 预 览 状 态) 

 ---- 这 个 属 性 允 许 您 的DataWindow 进 入 和 退 出 打 印 预 览 状 态。 这 种 状 态
 可 以 所 见 即 所 得 地 看 到 用 户 即 将 打 印 的 结 果。 

 ----Preview.Rulers=Yes( 显 示 标 尺) 或No( 缺 省- 不 显 示 标 尺) 

 ---- 这 个 属 性 是 指Print Preview 状 态 下, 是 否 要 在DataWindow 对 象 上 显 示 标
 尺。 

 ----Preview.Zoom= <an integer > 

 ---- 这 个 属 性 是Print Preview 状 态 下, 为 预 览 的DataWindow 指 定 一 个 放 缩 因
 子。 缺 省 值 为1 00%(Preview.zoom=100%) 

 ----Prompt=Yes( 缺 省- 显 示 提 示) 或No( 无 提 示) 

 ---- 这 个 属 性 可 以 控 制PowerBuilder 显 示 一 个 允 许 用 户 在 作 业 打 印 前 取 消
 打 印 作 业 的 提 示。 

 ----Quality=0( 缺 省)or 1( 高)or 2( 适 中)or 3( 低)or 4( 草 稿) 

 ---- 这 个 属 性 可 以 选 择 打 印 输 出 的 质 量。 

 ----Scale= <an integer > 

 ---- 这 个 属 性 指 定 打 印 输 出 放 大 或 缩 小 的 比 例。 

                    制 作 一 个 屏 幕 打 印: 如 何 打 印 全 屏 

 ----PowerBuilder 4.0 的 一 个 新 特 征 是 可 以 把 屏 幕 图 像 提 交 打 印 作 业, 在 纸 上
 的 任 一 点 打 印 屏 幕。 我 们 使 用PrintScreen() 函 数 实 现 这 一 功 能。 

 ----PrintScreen() 的 语 法 如 下: 

 ----PrintScreen(print_job_number,x,y{,width,height}) 

 ---- 执 行 这 一 函 数, 在 指 定 的 打 印 作 业 中 将 当 前 屏 在 由X,Y 参 数( 千 分 之 一
 寸 为 单 位) 指 定 的 坐 标 处 打 印。width 和height 参 数 指 示 你 所 要 的 打 印 屏 幕
 的 宽 和 高。 最 后 这 两 个 参 数 是 可 选 的 , 如 果 缺 省, 屏 幕 将 按 初 始 的 宽 度
 和 高 度 打 印。 

                       



 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.97.236.132]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: whs.hit.edu.cn]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: cadcam.hit.edu.c]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.862毫秒