回复 17楼 shenkj001
干脆不用报表文件输出,直接用GDI向打印机输出。没打印机,试过向屏幕输出是可以的。
因GDI的输出与设备无关,将输出设备句柄改为打印设备句柄就可以。
程序代码:
CLEAR #DEFINE FW_DONTCARE 0 #DEFINE FW_HEAVY 900 #DEFINE GB2312_CHARSET 134 #DEFINE OUT_DEFAULT_PRECIS 0 #DEFINE CLIP_DEFAULT_PRECIS 0 #DEFINE DEFAULT_QUALITY 0 #DEFINE DEFAULT_PITCH 0 #DEFINE FF_DONTCARE 0 DECLARE LONG GetDC IN user32 LONG DECLARE LONG ReleaseDC IN user32 LONG, LONG DECLARE LONG CreateDC IN Gdi32 LONG DECLARE LONG DeleteObject IN Gdi32 LONG DECLARE LONG CreateFont IN Gdi32 LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,LONG,STRING DECLARE LONG SelectObject IN Gdi32 LONG,LONG DECLARE LONG TextOut IN Gdi32 LONG,LONG,LONG,STRING,LONG hDC = GetDC(_SCREEN.hWnd) hFont = CreateFont(48, 12,; && 高度20, 宽取0表示由系统选择最佳值 0, 0,; && 文本倾斜,与字体倾斜都为0 FW_HEAVY,; && 粗体 0, 0, 0,; && 非斜体,无下划线,无中划线 GB2312_CHARSET,; && 字符集 OUT_DEFAULT_PRECIS,; && CLIP_DEFAULT_PRECIS,; && DEFAULT_QUALITY,; && 一系列的默认值 DEFAULT_PITCH + FF_DONTCARE,; && "宋体") && 字体名称 SelectObject(hDC, hFont) sText = "汉字ABCD1234" TextOut(hDC, 10, 10, sText, LEN(sText)) DeleteObject(hFont) ReleaseDC(_SCREEN.hWnd, hDC) CLEAR DLLS RETURN
输出到打印机,用GDI的CreateDC()创建打印机设备句柄:
hDC = CreateDC(NULL, 打印机名, NULL, NULL)
同时使用StartDoc()、EndDoc()、StartPage()、EndPage()控制打印页的开始和结束。
[ 本帖最后由 吹水佬 于 2015-6-14 17:12 编辑 ]