Delphi怎么调用打印机啊 用PrinterSetupDialog1或PrintDialog1菜鸟 详细点 谢谢 毕业设计用到的,谢谢了 菜鸟详细点 调用出来就行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用编辑文本的方式,往lpt口发送数据就行了 //转个帖子 在DELPHI 中 提 供 了PRINTDIALOG、PRINTERSETUPDIALOG 两 个 控 件 允 许 我 们 进 行 打 印 机 以 及 其 他 影 响 打 印 输 出 的 选 择, 此 外 最 重 要 的 一 点 是 要 想 实 现 打 印 功 能 必 须 在 编 译 程 序 以 前 将PRINTERS 加 入 到INTERFACE 或 者IMPLEMENTATION 的UESE 语 句 当 中, 因 为PRINTER 单 元 包 括ASSIGNPRN 和 其 他 控 制 打 印 机 的 过 程。 首 先 在FORM 当 中 加 入MEMO、PRINTDIALOG、PRINTERSETUPDIALOG 和 两 个BUTTON 控 件, 两 个 BUTTON 的CAPTION 分 别 为“ 打 印 设 置” 和“ 打 印”。 然 后 编 写BUTTON 的 事 件 驱 动 程 序( 代 码 在 下 面), 这 个 简 单 的 例 子 中 只 要 单 击“ 打 印” 按 钮 时 便 可 以 在 打 印 机 上 输 出 文 件0S2.TXT, 打 印 事 件 的 清 单 如 下: implementation uses printers; {$R *.DFM} procedure TForm1.BitBtn1Click(Sender: TObject); begin printersetupdialog1.execute; //选择输出的打印机以及其他打印控制选项 end; procedure TForm1.BitBtn2Click(Sender: TObject); var lines:integer; prntext:system.text; //将PRNTEXT声名为一个在SYSTEM程序单元当中定义的文本文件 begin if printdialog1.execute then assignprn(prntext); //将PRNTEST分配给打印机 rewrite(prntext); //调用REWRITE函数,为输出打开已分配的文件 printer.canvas.font:=memo1.font; //把当前MEMO1的字体指定给打印对象的CANVAS的字体属性 for lines:=0 to memo1.lines.count-1 do writeln(prntext,memo1.lines[lines]); //把MEMO的内容写到打印机对象 system.close(prntext); //关闭打印文件 end; procedure TForm1.FormCreate(Sender: TObject); begin memo1.lines.loadfromfile( 'c:\dos\os2.txt '); //在FORM建立时读入C:\DOS\OS2.TXT文件 end; end. 2、 图 形 的 打 印 功 能, 简 单 的 图 形 打 印 功 能 也 如 打 印 文 本 一 样 的 容 易, 只 是 告 诉 打 印 机 对 象(TPRINTER) 开 始 打 印, 把 图 形 简 单 的 复 制 到 打 印 机 上 去, 最 后 告 诉 打 印 机 结 束 打 印 工 作。 举 例 说 明: 将 上 面 的 例 子 的MEMO 控 件 换 成IMAGE 控 件, 再 经 过 一 些 简 单 的 修 改, 图 形 打 印 的 代 码 如 下: procedure TForm1.BitBtn1Click(Sender: TObject); begin if printdialog1.execute then begin printer.begindoc; printer.canvas.draw(0,0,image1.picture.graphic); printer.enddoc; end; end; 在 这 种 情 况 下, 使 用 的 是 打 印 机 的 分 辨 率, 图 形 在 页 面 的 左 上 角 开 始 打 印 输 出, 打 出 的 图 形 很 小, 在 很 多 的 情 况 下 不 能 符 合 要 求, 但 是 打 印 机 画 布CANVAS 的STRETHDRAW 的 方 法, 可 以 让 我 们 对 图 形 进 行 灵 活 的 处 理, 画 布(CANVAS) 的STRETCHDRAW 方 法 声 名 为: procedure StretchDraw(const Rect: TRect; Graphic: TGraphic); 其中的RECT参数代表图形输出区域的大小,TRECT的类型声名为: TRect = record case Integer of 0: (Left, Top, Right, Bottom: Integer); 1: (TopLeft, BottomRight: TPoint); end; 因 此 我 们 只 要 调 整RECT 的 大 小 及 其 在 打 印 页 面 上 的 位 置, 进 而 达 到 自 己 满 意 的 效 果, 下 面 的 代 码 是 不 断 的 放 大 图 形, 充 满 我 们 定 义 的 矩 形 区 域, 并 将 其 定 位 在 打 印 机 画 布(CANVAS) 的 中 央 进 行 输 出。 代 码 如 下: procedure TForm1.Button1Click(Sender: TObject); VAR strect:Trect; //定义打印输出矩形框的大小 temhi,temwd:integer; begin if printdialog1.execute then begin temhi:=image1.picture.height; temwd:=image1.picture.width; while (temhi printer.pageheight div 2)and //将图形放大到打印页面的1/2大小 (temwd printer.pagewidth div 2) do begin temhi:=temhi+temhi; temwd:=temwd+temwd; end; with strect do //定义图形在页面上的中心位置输出 begin left:=(printer.pagewidth -temwd) div 2; top:=(printer.pageheight-temhi) div 2; right:=left+temwd; bottom:=top+temhi; end; with printer do begin begindoc; //将放大的图形向打印机输出 canvas.stretchdraw(strect,image1.picture.graphic); enddoc; end; end; end; 以 上 代 码 在DELPHI2.0 上 编 译 通 过 求DBISAM 3版本 ADOQuery设置为缓存后,如何知道缓存中是否更新了数据,请高手帮忙 能够实现这样的报表吗?在线等待,来者有分 请问一个查询语句(解决马上给分) 请问怎样删除已在版面上自己定义的控件? delphi7挺有意思,在每个组件的提示信息里面把组件所属的单元都列出了 帮帮忙 请问各位,我的问题是否BDE的Bug?Oracle相关。 if ...else标准语法格式。 看看这个过程错在那里啊! DLL 中窗体消息循环求助 Delphi里的集合的问题,新手麻烦不要鄙视
在DELPHI 中 提 供 了PRINTDIALOG、PRINTERSETUPDIALOG 两 个 控 件 允 许 我 们 进 行 打 印 机 以 及 其 他 影 响 打 印 输 出 的 选 择, 此 外 最 重 要 的 一 点 是 要 想 实 现 打 印 功 能 必 须 在 编 译 程 序 以 前 将PRINTERS 加 入 到INTERFACE 或 者IMPLEMENTATION 的UESE 语 句 当 中, 因 为PRINTER 单 元 包 括ASSIGNPRN 和 其 他 控 制 打 印 机 的 过 程。 首 先 在FORM 当 中 加 入MEMO、PRINTDIALOG、PRINTERSETUPDIALOG 和 两 个BUTTON 控 件, 两 个 BUTTON 的CAPTION 分 别 为“ 打 印 设 置” 和“ 打 印”。 然 后 编 写BUTTON 的 事 件 驱 动 程 序( 代 码 在 下 面), 这 个 简 单 的 例 子 中 只 要 单 击“ 打 印” 按 钮 时 便 可 以 在 打 印 机 上 输 出 文 件0S2.TXT, 打 印 事 件 的 清 单 如 下: implementation
uses printers;
{$R *.DFM} procedure TForm1.BitBtn1Click(Sender: TObject);
begin
printersetupdialog1.execute; //选择输出的打印机以及其他打印控制选项
end; procedure TForm1.BitBtn2Click(Sender: TObject);
var
lines:integer;
prntext:system.text;
//将PRNTEXT声名为一个在SYSTEM程序单元当中定义的文本文件
begin
if printdialog1.execute then
assignprn(prntext); //将PRNTEST分配给打印机
rewrite(prntext); //调用REWRITE函数,为输出打开已分配的文件
printer.canvas.font:=memo1.font; //把当前MEMO1的字体指定给打印对象的CANVAS的字体属性
for lines:=0 to memo1.lines.count-1 do
writeln(prntext,memo1.lines[lines]);
//把MEMO的内容写到打印机对象
system.close(prntext); //关闭打印文件
end; procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.lines.loadfromfile( 'c:\dos\os2.txt ');
//在FORM建立时读入C:\DOS\OS2.TXT文件
end;
end. 2、 图 形 的 打 印 功 能, 简 单 的 图 形 打 印 功 能 也 如 打 印 文 本 一 样 的 容 易, 只 是 告 诉 打 印 机 对 象(TPRINTER) 开 始 打 印, 把 图 形 简 单 的 复 制 到 打 印 机 上 去, 最 后 告 诉 打 印 机 结 束 打 印 工 作。 举 例 说 明: 将 上 面 的 例 子 的MEMO 控 件 换 成IMAGE 控 件, 再 经 过 一 些 简 单 的 修 改, 图 形 打 印 的 代 码 如 下: procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if printdialog1.execute then
begin
printer.begindoc;
printer.canvas.draw(0,0,image1.picture.graphic);
printer.enddoc;
end;
end; 在 这 种 情 况 下, 使 用 的 是 打 印 机 的 分 辨 率, 图 形 在 页 面 的 左 上 角 开 始 打 印 输 出, 打 出 的 图 形 很 小, 在 很 多 的 情 况 下 不 能 符 合 要 求, 但 是 打 印 机 画 布CANVAS 的STRETHDRAW 的 方 法, 可 以 让 我 们 对 图 形 进 行 灵 活 的 处 理, 画 布(CANVAS) 的STRETCHDRAW 方 法 声 名 为: procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);
其中的RECT参数代表图形输出区域的大小,TRECT的类型声名为:
TRect = record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end; 因 此 我 们 只 要 调 整RECT 的 大 小 及 其 在 打 印 页 面 上 的 位 置, 进 而 达 到 自 己 满 意 的 效 果, 下 面 的 代 码 是 不 断 的 放 大 图 形, 充 满 我 们 定 义 的 矩 形 区 域, 并 将 其 定 位 在 打 印 机 画 布(CANVAS) 的 中 央 进 行 输 出。 代 码 如 下: procedure TForm1.Button1Click(Sender: TObject);
VAR
strect:Trect; //定义打印输出矩形框的大小
temhi,temwd:integer;
begin
if printdialog1.execute then
begin
temhi:=image1.picture.height;
temwd:=image1.picture.width;
while (temhi printer.pageheight div 2)and
//将图形放大到打印页面的1/2大小
(temwd printer.pagewidth div 2) do
begin
temhi:=temhi+temhi;
temwd:=temwd+temwd;
end;
with strect do //定义图形在页面上的中心位置输出
begin
left:=(printer.pagewidth -temwd) div 2;
top:=(printer.pageheight-temhi) div 2;
right:=left+temwd;
bottom:=top+temhi;
end;
with printer do
begin
begindoc;
//将放大的图形向打印机输出
canvas.stretchdraw(strect,image1.picture.graphic);
enddoc;
end;
end;
end; 以 上 代 码 在DELPHI2.0 上 编 译 通 过