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毫秒