CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

高分求教CB控制EXCEL中的打印机选择和打印纸大小选择

楼主xlchen99(祥林)2005-06-02 22:27:07 在 C++ Builder / 数据库及相关技术 提问

如何在C++   Builder中用程序控制EXCELL的打印机型号选择和打印纸规格及自定义纸张选择 问题点数:0、回复次数:5Top

1 楼happyct(绿叶对大树的情怀)回复于 2005-06-06 17:14:26 得分 0

这个贺用CB控制Excel等什么的没关系吧?  
   
    使用TPrinter对象可以执行应用程序中的任何打印操作。可以在Printers单元中通过调用Printer函数来获得一个TPrinter   对象。为了决定如何显示窗体的打印图像,可以使用Tform组件的PrintScale属性。    
    在一个文本变量或一个打印机画布准备好后就可以进行打印工作了。打印工作一直进行到调用EndDoe过程。显示在PrintManager(或网络头页)上的题目由Title   属性决定。如果想开始打印工作可以调用BeginDoc方法。结束一个成功打印的工作需要调用EndDoc过程。如果出现问题需要中断打印可以调用Abort方法。    
   
  属性列表    
  Aborted   中断打印    
  Canvas   当前打印页的表面    
  Capabilities   指示一个打印设备驱动器的当前设置    
  Copies   指定打印的份数    
  Fonts   列出当前打印机支持的字体    
  Handle   提供访问打印机对象句柄的能力    
  Orientation   决定打印工作在页上的方向    
  PageHeight   指示当前打印页的像素高度    
  pateNurnber   指示当前打印页    
  PageWidth   指示当前打印页的像素宽度    
  Printerlndex   在Printers属性中列出的是当前打印机    
  Printers   列出所有在Windows中安装的打印机    
  printing   指示打印工作正在进行    
  Title   显示在Ptint   Manager中主网络头页中的文本    
   
  方法列表    
  ~TPrinter   删除一个打印机实例    
  Abort   中断打印    
  BeginDoc   送一个打印工作到打印机中    
  EndDoc   结束当前打印工作并关闭文本文件变量    
  GrtPrinter   取回当前打印机    
  NewPage   开始一个新页    
  SetPrinter   指定一个打印机作为当前打印机    
  TPrinter   创建一个打印机    
   
   
  属性    
  TPrinter::Aborted    
    指示当前是否用户中断了打印,从而调用方法    
  __property   bool   Aborted   ={read   =   FAborted,nodefalt}   ;    
    如果属性Aborted为真,则表示打印工作已经中断。如果为假值,则表示用户并没有中断打印进程。    
   
  TPrinter::Canvas    
    表示当前打印页的表面。    
  __property   Graphics   :   :   TCanvas   *   Canvas   =   {   read   =   GetCanvas   }   ;    
    属性Canvas表示一页的打印表面。使用Canvas对象的Brush,Font   和Pen   属性可以决定如何绘制和显示页。一些打印机不支持图像,因此,对这些打印机调用Draw,StretchDraw或CopyRect方法将会失败。    
   
  TPrinter::Capabilities    
    指示一个打印设备驱动器的当前设置。    
  __property   TPrinterCajpabilities   Caoabukutues   ={read   =   FCapabities   ,   nodefault}   ;    
    属性Capabilities   包含了打印机有兼容性,它指定了打印的方向,页数和是否校对。    
   
  TPrinter::Copies    
    指定打印的份数。    
  __property   int   Copies   =   {read   =   GetNumCopies,   write   =SetNumCopies,   nodefault   }   ;    
    属性Copies中指定打印的份数。    
   
  TPrinter::Fonts    
    列出当前打印机支持的字体。    
  __property   Classes   ;;TStrings   *   Fonts   =   {   read   =GetFonts   }   ;    
    使用Fonts属性可以获得当前打印机支持的字体列表。列表中总是包含有TrueType字体,即使打印机中不包含这种字体,因为Windows   Graphies   Device   Interface(GDI)在打印机使用时可以准确地绘制这种字体。    
   
  TPrinter::Handle    
    提供访问打印机对象句柄的能力。    
  __property   HdC   Handle   =   {   read   =GetHandle   ,   node   fault   };    
    使用Handle   属性可以获得对打印机对象句柄有访问。    
   
  TPrinter::Orientation    
    决定打印工作在页上的方向,垂直或水平。    
  __property   TpinterOrientation   Orientation   =   {   read   =   GetPrientatiion,   write   =   SetOrienatiion   ,nodefault   }    
    使用Orientation   属性可以决定打印机打印的方向。Onienation属性值只能是TPrinterOrientation   类型。下表中列出了属性可能值:    
  TPrinter::PageHeight    
    指示当前打印页的像素高度。    
  __property   int   PageHeight   =   {read   =   GetPageHeight   ,nodefault   }   ;    
    在属性PageHeight中可以找到当前打印页的像素高度。    
   
  TPrinter::PageNumger    
    指示当前打印页。    
  __property   int   PageNumber   =   {   read   =   FPageNumber   ,   nodefault   }   ;    
    在属性PageNumber中可以获得当前打印的页码。在调用NewPage方法后属性PageNumber将加1。当页结束处输入回车并写入文本变量时,属性PageNumber也将加1   。    
   
  TPrinter::PageWidth    
    指示当前打印页的像素宽度。    
  __property   int   PageWidth   =   {read   =   GetPageWidth   ,   modefault   }   ;    
    在属性PsheWifyh中可以找到当前打印页的像素宽度。    
   
  TPrinter::Printerlndex    
    指定在Printers属性中列出的打印机是当前打印机。    
  __property   int   Printerlndex   =   {   read   =GetPrinterlndex   ,   write   =   SetPrinterlndex   ,nodefault   }   ;    
    属性Printerlndex指定当前打印机。如果改变了本属性值将自动调用EndDoc方法。如果想选择缺省的打印机,可以将属性Printerlndex   设置为   —   1   。在   Printers   属性中列出了安装的打印机。当前打印机支持的字体列表在Fonts属性中。    
   
  TPrinter::Printers    
    列出所有在Windows中安装的打印机。    
  __property   Classes   :   :   TStrings   *   Printers   =   {read   =GePrinters   }   ;    
    在Printers属性中列出了所有在Windows   中安装的打印机。属性Printerlndex   指定了当前选择的打印机。当前打印机支持的字体列表在Fonts属性中。    
   
  TPrinter::Printing    
    指示打印工作正在进行。    
  __property   bool   Printing   =   {read   =   FPrinting   ,   nodefault   }   ;    
    使用Printing属性可以决定是否正在进行一项打印工作。如果应用程序中调用了BeginDoc方法并在调用EndDoc方法(或Abort方法)之前将把Printing属性设置为真值。    
   
   
  TPrinter::Title    
    决定显示在Print   Manager中和网络头页中的文本。    
  __property   Systen   :   :   AndiString   Title   =   {   read   =   FTitle   ,   wrete   =   FTitle   }   ;    
    属性Title在Print   Manager由Windows使用,也作为网络的头页。    
   
  方法    
  TPrinter   :   :   ~TPrinter    
    删除一个打印机实例。    
  __fastcall   virtual   ~TPrinter   (   void   )   ;    
    一般不直接调用~TPrinter方法。打印机对象将自动创建和删除。当调用~TPrinter方法时,它将检查是否打印工作都已经结束。如果都结束了就释放资源。例如句柄、字体和画布等,最后关闭打印机并调用继承的析构函数。    
   
  TPrinter::Abort    
  void   __fastcall   Abort(void);    
    中断打印,放弃未打印数据。    
    使用Abort方法可以在打印工作完成前中断打印,否则将使用EndDoc方法。调用Abort方法后设备将设置为下一个打印工作。    
   
  TPrinter::BeginDoc    
  _void   __fastcall   BeginDoc(void);    
    送一个打印工作到打印机中。    
    调用BeginDoc可以初始化一个打印工作。如果打印工作被成功送入,应用程序将调用EndDoc方法结束打印。打印工作只有在调用EndDoc方法后才实际开始。    
   
  TPrinter::EndDoc    
  void   __fastcall   EndDoc(void);    
    结束当前打印工作并关闭文件变量。    
    调用EndDoc方法将结束打印工作(并关闭当前打开的文体)。打印工作将在EndDoc方法调用结束后开始。在应用程序中调用EndDoc方法后,打印机开始打印。将一个打印工作成功送入打印机后调用EndDoc方法。如果打印工作没成功,则调用Abort方法。    
   
  TPrinter::GetPrinter    
  void   __fastcall   GetPrinter(char*   ADevice,char*   ADriver,char*   APort,int&   ADeviceMode);    
    取回当前打印机。    
    不需要直接调用GetPrinter方法。可以通过访问Printers属性数组中的打印机来获得。如果想了解更多的信息,可以参见Win32Developer's   Reference(WIN32::HLP)中的CreateDC函数。    
   
  TPrinter::NewPage    
  void   __fastcall   NewPage(void);    
    开始一个新页,并将PageNumber属性值加1。    
    使用NewPage方法将强制在打印机的新页上继续打印工作。    
    NewPage方法将把PageNumber属性值加1。同时将把Canvas对象的Pen属性设置成(0,0)。    
   
  TPrinter::SetPrinter    
  void   __fastcall   SetPrinter(char*   ADevice,char*   ADriver,char*   APort,int   ADeviceMode);    
    指定一个打印机作为当前打印机。    
    不直接调用SetPrinter方法。可以通过访问Printers属性数组中的打印机来设置。如果想了解更多的信息,可以参见Win32Developer's   Reference(WIN32.HLP)中的CreateDC函数。    
   
  TPrinter::TPrinter    
  __fastcall   TPrinter(void);    
    创建一个打印机。    
    不能直接调用TPrinter方法。TPrinter方法将由Printer函数自动调用。方法为打印机分配内存,并调用继承的构造方法。然后设置正确的驱动器、设备和端口Top

2 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2005-06-06 19:50:42 得分 0

Variant   objExcelApp=Variants::CreateObject("Excel.Application");  
   
  Variant   objWorkBook=objExcelApp.OlePropertyGet("WorkBooks").OleFunction("Add");  
   
  objWorkBook.OlePropertyGet("Sheets").OleFunction("Item",1).OlePropertyGet("PageSetup").OlePropertySet("PaperSize",8/*xlPaperA3,A3纸张格式*/);  
   
  objWorkBook.OlePropertyGet("Sheets").OleFunction("Item",1).OlePropertyGet("PageSetup").OlePropertySet("Orientation",2/*xlLandscape,横向打印*/);  
  ...  
   
  其它的自己查VBA  
  当中的页眉/页脚分三段,分别为:  
  LeftHeader、CenterHeader、RightHeader  
  LeftFooter、CenterFooter、RightFooter  
  其设置格式类似如下:  
  &"宋体,加粗"&18&U标题  
   
  这样子就表示该标题内容为"标题",字体格式为18号宋体字加粗并带下划线.Top

3 楼xlchen99(祥林)回复于 2005-06-08 15:39:35 得分 0

Unsgned先生,谢谢你,我把你提供的代码试了一下,无法调通,其他功能的实现没有问题,如页边距,横竖打,页眉页脚等的打印,我已经实现,我要求的主要是打印机的选择和打印纸张的选择,我一直眉调通,按你的代码我也试过,你能否试一下,如何能实现。VBA的代码我有些能转换到CB,有些不能。就如打印机的选择和打印纸的选择就一直未转换过来。清指教。Top

4 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2005-06-08 16:45:34 得分 0

我上面的代码并不是调用Excel的PageSetup,你可以自己写一个选择打印机的对话框的。那样也可以返回打印机及纸张格式。Top

5 楼sanyou98(sanyou98)回复于 2005-06-08 17:38:35 得分 0

upTop

相关问题

  • 有谁知道打印机中的打印纸张大小的如何设置?(非自定义打印纸)
  • 佳能打印机是否一定要用佳能品牌的打印纸?
  • 怎么设置打印纸的长度,怎么用默认打印机打印
  • 在VB中,如何获取打印机支持的打印纸类型,如何自动设置打印纸的类型????
  • 给Data Report设计的每一张报表使用指定的打印机和打印纸?
  • 请问大虾,怎样获得Windows打印机当前打印纸张名称PaperName
  • 请问Epson LQ-1600K打印机选纸张大小问题(连体纸张,有孔的那种打印纸问题)
  • 请问EPSON LQ-300K+ ESC/P 2 打印机设置纸张格式(连体有孔的那种打印纸)
  • 非常急!!如何计算打印机输出到打印纸上的文本行数???
  • 如何取得当前打印机所支持的打印纸的类型和大小?

关键词

  • win32
  • 打印
  • 属性
  • 字体
  • 指示
  • 中断
  • 选择
  • 像素
  • 函数
  • tprinter

得分解答快速导航

  • 帖主:xlchen99

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo