作为对“vfp9报表保存为高分辨率图片”的测试,麻烦看看出现的问题
鉴于我对GDI+的理解非常有限,也只是初次接触,请大神多多指点!Set Path To Home() + "FFC"
Set Classlib To Home() + "ffc\_GDIplus"
Do pros\Endprint.prg
oReportListener=Createobject("reportlistener")
oReportListener.ListenerType=3
jpgfilename="myreport.png"
Report Form reports\report_cght.frx Object oReportListener
_Graphics= Newobject("gpGraphics", "_gdiplus.vcx")
_Bitmap = Newobject("gpBitmap", "_gdiplus.vcx") && 建立繪圖板對象,圖形將在此畫板上繪製
With _Bitmap
.Create(1280,1280) && 設定畫板大小,寬度和高度
.SetResolution(1200,1200) && 設定分辨率(x,y 的 DPI 値)
Endwith
_Color = Newobject("gpColor", "_GDIplus.vcx") && 建立顔色對象
_Pen = Newobject("gpPen", "_GDIplus.vcx") && 建立畫筆對象
_Font = Newobject("gpFont", "_GDIplus.vcx") && 建立字體對象
_StringFormat = Newobject("gpStringFormat", "_GDIplus.vcx")
_TextBrush = Newobject("gpSolidBrush", "_GDIplus.vcx")
_Point = Newobject("gpPoint", "_GDIplus.vcx") && 建立圖形對象
With _Graphics
.CreateFromImage(_Bitmap)
*.CreateFromGraphics(hdc) && 指定圖形對象的設備,此處指向已建立的_Bitmap對象
_Color.Set(255,255,255) && 設定顔色,三個參數分別是紅、緑、藍値,即RGB各自獨立
.Clear(_Color) && 用設定的顔色填充整個圖形,可用於背景顔色
_Color.Set(0,0,0) && 改變顔色
_Pen.Create(_Color, 10) && 將指定的顔色賦予畫筆,請查看類庫中gpPen對象Create方法的參數,此處10是筆寬
.DrawLine(_Pen, 20, 20, 108, 20) && 用設定的畫筆畫圖,類庫中有很豐富強大的畫圖函數
.DrawLine(_Pen, 20, 50, 108, 50)
_Color.Set(0,255,0)
_Font.Create("方正综艺_GBK", 10, 0, 3) && 設置文本字體
_TextBrush.Create(_Color) && 設定文本顔色
_Point.Create(1, 80) && 設定文本左上角位置
.DrawStringW(Strconv("測試图像", 5), _Font, _Point, _StringFormat, _TextBrush)
Endwith
hdc = _Graphics.GetHdc()
oReportListener.OutputPage(3,hdc,1)
_Bitmap.SaveToFile("Test.bmp", "image/bmp","quality=100") && 將繪圖板保存爲文件,此處指定文件格式爲.BMP
*_Graphics.ReleaseHdc(hdc)
Release All
Return
运行出现错误提示,见图