📄 打印位图.txt
字号:
#include <printers.hpp>
void PrintAsScreen( TCanvas *CanvasSource,TPrinter *Prntr,
TRect RectSource,TRect RectTarget)
{//所见即所得打印方式
Prntr->BeginDoc();
int OriginalMapMode = GetMapMode(Prntr->Handle);//当前影射模式
SetMapMode(Prntr->Handle,MM_ISOTROPIC);//设置图形影射模式
SIZE ss;
ss.cx = Screen->Width;
ss.cy = Screen->Height;
SetWindowExtEx( Prntr->Handle, ss.cx, ss.cy, &ss);//设置窗口
//获取打印机x方向每英寸象素点数
float xLogPixelsPerInch = GetDeviceCaps(Prntr->Handle,LOGPIXELSX);
//获取y方向每英寸象素点数
float yLogPixelsPerInch = GetDeviceCaps(Prntr->Handle,LOGPIXELSY);
ss.cx = xLogPixelsPerInch;
ss.cy = yLogPixelsPerInch;
SetViewportExtEx(//设置视口
Prntr->Handle,
Screen->Width * xLogPixelsPerInch/Screen->PixelsPerInch,
Screen->Height * yLogPixelsPerInch/Screen->PixelsPerInch,
&ss);
Prntr->Canvas->CopyRect(
RectTarget, //Target Rect
CanvasSource, //Source Canvas
RectSource ); //Source Rect
Prntr->EndDoc();
SetMapMode(Prntr->Handle,OriginalMapMode);//复原影射模式
}
//---------------------------------------------------------------------------
调用 Bitmap
Graphics::TBitmap *bmp = new Graphics::TBitmap();
bmp->LoadFromFile(...);
PrintAsScreen(
bmp->Canvas,
Printer(),
bmp->Canvas->ClipRect,
bmp->Canvas->ClipRect);
delete bmp;
如果是 JPEG
#include <jpeg.hpp>
Graphics::TBitmap *bmp = new Graphics::TBitmap();
TJPEGImage *jpeg = new TJPEGImage();
jpeg->LoadFromFile(...);
bmp->Assign(jpeg);
PrintAsScreen(
bmp->Canvas,
Printer(),
bmp->Canvas->ClipRect,
bmp->Canvas->ClipRect);
delete jpeg;
delete bmp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -