如何将Image的内容均匀的打印在A4纸张中间

mabc 2003-10-14 09:56:32
我的Image中的图像是可以放大缩小的,我想让图像在多大或多小的情况下打印,打印在A4纸上的图像对匀称的打上去;
最好能否给出代码,因为我的代码只能打印出去,单是在图像放大的的情况下,打印是出问题的。以下是我的代码:
TPrinter *Prntr = Printer();
DrawPanel->PrintScale = poPrintToFit;
TRect TheRect = Rect(0,0,5000,5000);//这个内容是我定义的数据,好像太小内容打印不好看
Prntr->BeginDoc();
Prntr->Canvas->StretchDraw(TheRect,Image1->Picture->Graphic);
Prntr->EndDoc();
我想问下是否还有其它的打印方法,可以指定将Image的内容均匀的打在A4纸张中。
我现在是以 A4 纸为默认的!!
谢谢!!!
...全文
179 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mabc 2003-10-16
  • 打赏
  • 举报
回复
TheRect = Rect(0,0,5000,5000);其实好像要设者好这里的数值即可实现
但是如果Image里的图谱过小,则打印出来就失真!就像bmp放大那样的模糊,字体看不清楚
myredsun 2003-10-15
  • 打赏
  • 举报
回复
lg
Behard 2003-10-14
  • 打赏
  • 举报
回复
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();
}
mabc 2003-10-14
  • 打赏
  • 举报
回复
能否可以由我将指定的Image矩形图像在打印到我指定纸张矩形里??纸张为A4。
请给出代码如何实现?
谢谢!!
mabc 2003-10-14
  • 打赏
  • 举报
回复
如何使用了?
能否给出一个例子?
swites 2003-10-14
  • 打赏
  • 举报
回复
你应该得到打印机纸张信息自调整TRect TheRect:
unsigned int hDevMode=0;
printer->GetPrinterA(ADevice,ADriver,APort,hDevMode);
mabc 2003-10-14
  • 打赏
  • 举报
回复
均匀可能是我表达的不清楚
我的意思就是无论我的Image放到多大或者缩小到多小,打印在纸张的图像也不要放大或缩小而是将图像固定大小适当的居中在纸中间,当然图像形状是不可以变动的,只是以A4纸张大小合适的显示打印出来!!!
Wingsun 2003-10-14
  • 打赏
  • 举报
回复
不知道你的均匀是什么意思?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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