請問打印日期標籤的程序,用API的,MFC不熟悉,100分不夠再加

developCpp 2005-05-09 05:12:16
要打印小标签,就像超市商品上的价格卷标一样
很小的,用的针式打印机打印,行高和列宽都是固定的常数,每行8个小标签,纸张宽度是A4的
求程序怎么写呢?
在下是菜鸟,请求写详细点哦
谢谢了
http://community.csdn.net/Expert/topic/3992/3992651.xml?temp=.6685297
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidawen 2005-05-10
  • 打赏
  • 举报
回复
up
老夏Max 2005-05-10
  • 打赏
  • 举报
回复
其实楼主只要你的英语不是很差,手上有MSDN,那么你就可以得到很多东西,很多时候,很多问题都可以在MSDN中得到答案。要学会使用MSDN。API打印无非就是这几个:StartDoc 、StartPage、EndPage、EndDoc。你只要在MSDN帮助中的“搜索”页中输入“StartDoc”你就可以获得很多的信息。包括例子等等。你这个问题只要搜索一下MSDN就可以获得很多的API打印的例子代码。还有完整的例子。如“EZPRNT”等等,自己看吧!
老夏Max 2005-05-10
  • 打赏
  • 举报
回复
楼主可以参考:
http://www.vccode.com/file_show.php?id=1711
happyct 2005-05-10
  • 打赏
  • 举报
回复
也是抄来的
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int DPIx,DPIy;
PreviewScale = StrToInt(Edit3->Text); // 预览显示比例
ZoomScale = StrToInt(Edit4->Text);
// 获取打印机每英寸的点数
DPIx = GetDeviceCaps(Printer()->Handle, LOGPIXELSX);
DPIy = GetDeviceCaps(Printer()->Handle, LOGPIXELSY);
// 1英寸= 2 . 5 4厘米
// 计算左边距和上边距
LeftMargin = (StrToFloat(Edit1->Text)/2.54*DPIx) / PreviewScale;
TopMargin = (StrToFloat(Edit2->Text)/2.54*DPIy) / PreviewScale;
}
happyct 2005-05-10
  • 打赏
  • 举报
回复
WindowsAPI函数提供了强大的打印方面的功能。具体的函数及其功能简介见下表7-2。
表7-2WindowsAPI打印操作常用函数
函数说明
AbortPrinter在假脱机的情况下删除打印缓冲文件
AbortProc当打印作业取消时调用的一个应用程序定义的回调函数
AddForm为指定的打印机从有效窗体列表中新增一个窗体
AddJob获取一个文件名用来保存打印缓冲工作
AddMonitor新安装一个打印机管理器
AddPort新增一个打印机端口
AddPrinter在指定的服务器上新安装一个打印机
AddPrinterConnection在当前用户和指定的打印机之间建立一个联系
AddPrinterDriver为本地或网络打印机安装打印机驱动程序
AddPrintProcessor在指定的打印服务器上安装一个打印处理器
AddPrintProvidor新增一个打印机支持器
AdvancedDocumentProperties设置打印机的高级属性
ClosePrinter关闭指定的打印机
ConfigurePort通过端口设置对话框来设置指定服务器上的端口
ConnectToPrinterDlg显示一个浏览对话并与网络打印机连接
DeleteForm从窗体列表中删除一个窗体名称
DeleteMonitor删除打印机监示器
DeletePort删除打印机端口
DeletePrinter删除指定的打印机对象
DeletePrinterConnection删除一个打印机连接
DeletePrinterData删除打印机的配置数据
DeletePrinterDriver删除指定打印机的驱动程序
DeletePrintProcessor删除一个打印机的处理器
DeletePrintProvidor删除一个打印机的支持器
DocumentProperties取得或设置打印机的初始化信息或显示打印机配置对话框
EndDocPrinter结束指定打印机上的打印作业
EndPagePrinter在指定打印机上结束一页并开始新的一页
EnumForms列举打印机支持的窗体信息
EnumJobs获取打印机的作业信息
EnumMonitors获取指定服务器上的打印监示器信息
EnumPorts列举指定服务器上支持的端口信息
EnumPrinterData获取指定打印机上的配置数据信息
EnumPrinterDrivers列举指定打印机上安装的打印机驱动程序
EnumPrinters列举可用的打印机、网络打印机等
EnumPrintProcessorDataTypes列举指定的打印处理器支持的数据类型
EnumPrintProcessors列举指定服务器上安装的打印处理器
FindClosePrinterChangeNotification关闭由FindFirstPrinterChangeNotification函数产生的一个变化
通知对象
FindFirstPrinterChangeNotification产生一个变化通知对象
FindNextPrinterChangeNotification获取最近一次变化通知的信息
FreePrinterNotifyInfo释放由FindNextPrinterChangeNotification函数分配的内存空

GetForm获取打印机中指定窗体的信息
GetJob获取指定打印机打印作业的数据信息
GetPrinter获取指定打印机的信息
GetPrinterData获取指定打印机的配置信息
GetPrinterDriver获取指定打印机驱动程序的数据信息
GetPrinterDriverDirectory获取指定打印机驱动程序所在的目录
GetPrintProcessorDirectory获取指定服务器上打印处理器所在的目录
OpenPrinter获取指定打印机或服务器的句柄
PrinterMessageBox显示打印异常信息对话框
PrinterProperties显示指定打印机的属性对话框
ReadPrinter从指定的打印机读取数据
ResetPrinter设置打印机的数据类型和设备模式等
ScheduleJob获取指定打印作业的打印缓冲时间表
SetForm设置指定打印机的窗体信息
SetJob暂停、继续、取消和重新开始指定打印机上的打印作业
SetPort设置打印机端口的状态
SetPrinter设置打印机的状态信息
SetPrinterData设置打印机的配置信息
StartDocPrinter通知打印缓冲器一个打印作业将被送往打印
StartPagePrinter通知打印缓冲器一个页面将送往打印
WritePrinter通知打印缓冲器数据将被写到指定的打印机
happyct 2005-05-10
  • 打赏
  • 举报
回复
好像不太会有专门打印日期标签的API吧?

置于输出打印(控制打印)的代码,网上已经很多了

转自www.51bcb.com网站

来自bcb视野
TPrinter类中封装了Windows打印机的接口。

类关系 TObjeet

  使用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函数自动调用。方法为打印机分配内存,并调用继承的构造方法。然后设置正确的驱动器、设备和端口
developCpp 2005-05-10
  • 打赏
  • 举报
回复
怎么没有人理我呢
其实只要复制点API输出打印机的代码给我,我就结帖子了
最好给点详细的简单的代码哦
谢谢了
随便复制点给我吧马上给分

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧