报表转照片遇到个奇怪的问题!
这个是我一直用的代码--将报表文件另存为BMP,单位所有系统(WINXP,WIN7,WIN10,WIN11都正常运行)这次把报表文件从横向改成纵向后,就其中一台WIN11的笔记本出问题,保存的照片还是横向的,
但是该笔记本打印报表已经是纵向了?
代码如下:
cLEAR
#DEFIN PixelFormat32bppARGB 0x26200A
DECLARE LONG GdipCreateBitmapFromScan0 IN gdiplus.dll LONG, LONG, LONG, LONG, STRING@, LONG@
DECLARE LONG GdipGetImageGraphicsContext IN gdiplus.dll LONG, LONG@
DECLARE LONG GdipSaveImageToFile IN gdiplus.dll LONG, STRING@, STRING@, LONG
DECLARE LONG GdipDisposeImage IN gdiplus.dll LONG
DECLARE LONG GdipDeleteGraphics IN gdiplus.dll LONG
oRL = CREATEOBJECT("ReportListener")
oRL.ListenerType = 3
REPORT FORM ccmcd3 OBJECT oRL
LOCAL nWidth, nHeight, hBitmap, hGraphics, cFile, bmpGUID
nWidth = oRL.GetPageWidth()/4
nHeight = oRL.GetPageHeight()/4
hBitmap = 0
GdipCreateBitmapFromScan0(nWidth, nHeight, 0, PixelFormat32bppARGB, 0, @hBitmap)
IF hBitmap == 0
? "创建Bitmap失败"
RETURN
ENDIF
hGraphics = 0
GdipGetImageGraphicsContext(hBitmap, @hGraphics)
IF hGraphics == 0
GdipDisposeImage(hBitmap)
? "获取Graphics失败"
RETURN
ENDIF
oRL.OutputPage(1, hGraphics, 1, 0,0,nWidth,nHeight, 0,0,nWidth,nHeight)
cFile = "D:\temp\list"+".jpg"
bmpGUID = 0h06F47C55041AD3119A730000F81EF32E
GdipSaveImageToFile(hBitmap, STRCONV(cFile+0h00,5),@bmpGUID,0)
GdipDisposeImage(hBitmap)
GdipDeleteGraphics(hGraphics)
MESSAGEBOX("图片已生成,请到d:\temp内查看",0,"询问" )







