Z
zrj
Unregistered / Unconfirmed
GUEST, unregistred user!
我用win2000+delphi5+fast report2.4c+hp lesterjet 6l pro,问题如下:
1.我的设置打印纸大小的对话框没有'自定义大小',在win2k和fast report中好象
都没有,可能是啥原因?
2.我用了论坛的一个大虾的setpapersize函数,还是不成功。我在
frReport1begin
Doc里面写的setpapersize(100,100);可是没成功啊?
procedure SetPaperSize(X, Y: Integer);
var
Device: array[0..255] of char;
Driver: array[0..255] of char;
Port: array[0..255] of char;
hDMode: THandle;
PDMode: PDEVMODE;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
if (x = 0) or (y = 0) then
begin
{Set to legal}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
{pDMode^.dmPaperSize := DMPAPER_LEGAL;
changed by wulianmin}
pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
end
else
begin
{Set to custom size}
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
end;
{Set the bin to use}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
end;
我想问一下,如何设置纸张的大小,象超市给的物品清单一样,
应该是在打印之前算好记录的条数*每条记录的高度+报表的标题,页头等的高度
来设置好纸张的高度才打印的吧?
请问如何用程序设置大小?
3,我用hp的激光打印机测试这个程序会对用户有影响吗?他们应该都是使用的
针式打印机,如何让我设置的打印效果(文字大小)在不同的打印机上效果基本一样呢?(不管针式还是激光的,不管打印机分辨率的高低问题,打印的字体大小基本一样)这样 程序才能通用啊!
4.我的fast report不能输出为其他格式,文件存在,不过都是空的,我写的代码如下: frreport1.ExportTo(frRTFExport1,'c:/aaa.rtf');aaa.rtf文件存在,不过打开是空的,我用一个按钮实现这个功能的,难道还要注意table打开?
fastreport应该自动打开的吧?文件里面连标题都没有显示出来,是我的版本问题吗?请大家给我推荐好用的fastreport0也可以,
5.如果我用hp的激光打印不行,如何设置让用户的针示打印机可以使用?要求不受打印机技术参数的限制!
希望各位执教,谢谢了!!
首次制作打印报表,问题多多,见笑了。谢谢大家
1.我的设置打印纸大小的对话框没有'自定义大小',在win2k和fast report中好象
都没有,可能是啥原因?
2.我用了论坛的一个大虾的setpapersize函数,还是不成功。我在
frReport1begin
Doc里面写的setpapersize(100,100);可是没成功啊?
procedure SetPaperSize(X, Y: Integer);
var
Device: array[0..255] of char;
Driver: array[0..255] of char;
Port: array[0..255] of char;
hDMode: THandle;
PDMode: PDEVMODE;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
if (x = 0) or (y = 0) then
begin
{Set to legal}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
{pDMode^.dmPaperSize := DMPAPER_LEGAL;
changed by wulianmin}
pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
end
else
begin
{Set to custom size}
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
end;
{Set the bin to use}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
end;
我想问一下,如何设置纸张的大小,象超市给的物品清单一样,
应该是在打印之前算好记录的条数*每条记录的高度+报表的标题,页头等的高度
来设置好纸张的高度才打印的吧?
请问如何用程序设置大小?
3,我用hp的激光打印机测试这个程序会对用户有影响吗?他们应该都是使用的
针式打印机,如何让我设置的打印效果(文字大小)在不同的打印机上效果基本一样呢?(不管针式还是激光的,不管打印机分辨率的高低问题,打印的字体大小基本一样)这样 程序才能通用啊!
4.我的fast report不能输出为其他格式,文件存在,不过都是空的,我写的代码如下: frreport1.ExportTo(frRTFExport1,'c:/aaa.rtf');aaa.rtf文件存在,不过打开是空的,我用一个按钮实现这个功能的,难道还要注意table打开?
fastreport应该自动打开的吧?文件里面连标题都没有显示出来,是我的版本问题吗?请大家给我推荐好用的fastreport0也可以,
5.如果我用hp的激光打印不行,如何设置让用户的针示打印机可以使用?要求不受打印机技术参数的限制!
希望各位执教,谢谢了!!
首次制作打印报表,问题多多,见笑了。谢谢大家