关于Fast report2.4c打印的问题,如何自己设置纸张大小? (100分)

  • 主题发起人 主题发起人 zrj
  • 开始时间 开始时间
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的激光打印不行,如何设置让用户的针示打印机可以使用?要求不受打印机技术参数的限制!
希望各位执教,谢谢了!!
首次制作打印报表,问题多多,见笑了。谢谢大家
 
看看以下文字(来自于FastReport的Help.chm):
If the current printer supports custom paper sizes and
you select “custom” from the list, you will be able to
enter the width and height of the custom size.
所以要先选custom,再设Height和Width,更QReport一样。
但问题就在于Win2000,在Win2000下不能自定义纸张。
 
Win2000下FastReport的自定義紙張:
1.在Win2000中設置打印機:
打列印表機,在'檔案'菜單中選擇'伺服器內容',在彈出的對話框中建立你所需要的紙張
樣式.
選擇你要用的印表機,在印表機內容對話框中為你自定義的紙張樣式設定相應的紙匣.
2.在FastReport中的設置:
在報表的page Options中為報表設置你在印表機中設置的紙匣.
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
844
import
I
I
回复
0
查看
811
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部