在delphi中如何打印一个图片文件,比如pic.jpg;

yangfan369 2003-10-15 02:36:46
在delphi中如何打印一个图片文件,比如pic.jpg;
...全文
483 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Behard 2003-11-09
  • 打赏
  • 举报
回复
看看我写的 BCB 代码
void PrintImage(LPCSTR fielname)
{
TPrinter *prnRep = Printer();

int ipixelPerInchX=GetDeviceCaps(prnRep->Handle,LOGPIXELSX);
int ipixelPerInchY=GetDeviceCaps(prnRep->Handle,LOGPIXELSX);
int ipixelPerCmX=(int)(ipixelPerInchX / 2.54); // 1 英寸为 2.54 cm
int iPixelPerCmY=(int)(ipixelPerInchY / 2.54);

int BaseLeftY = iPixelPerCmY*2; // 自己处理上下预留高度
int BaseLeftX = ipixelPerCmX*2; // 自己处理左右预留宽度

prnRep->BeginDoc() ;

if(FileExists(fielname))
{
// 为什么要两句才能运行正常?
TImage *prnmage = new TImage ( NULL );
prnmage->Picture->LoadFromFile(fielname);
TRect drawRect;
drawRect.Left = BaseLeftX;
drawRect.Top = BaseLeftY;
drawRect.Right = BaseLeftX+ ipixelPerCmX*10; // 自己处理实际高度
drawRect.Bottom = BaseLeftY+ iPixelPerCmY*10; // 自己处理实际宽度
prnRep->Canvas->StretchDraw ( drawRect, prnmage->Picture->Bitmap );
prnRep->Canvas->StretchDraw ( drawRect, prnmage->Picture->Graphic );
delete prnmage;
}
Prntr->EndDoc();
}
很土 2003-11-09
  • 打赏
  • 举报
回复
使用 TPrinter 对象的 Canvas, 把 pic.jpg 画到 Canvas 上即可.

// 开始打印
Printer.BeginDoc;

// 画 pic.jpg 到 Printer.Canvas 上
// ... ...

// 结束打印
Printer.EndDoc;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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