可以和你用OICQ吗?我的是49663232
在Win2000下可以把自定义纸张命名,但在98下没有这个功能,如果你使用自己命名的纸张大小,
在98下没有相同的纸张,就取默认大小了。
你可以尝试在程序中把frDesigner加入,到用户机上做一下设计,看看是不是这样。
在fr_Class中frPage.Create中调用
procedure TfrPage.ChangePaper(ASize, AWidth, AHeight, ABin: Integer;
AOr: TPrinterOrientation);
begin
try
Prn.SetPrinterInfo(ASize, AWidth, AHeight, ABin, AOr, False);
Prn.FillPrnInfo(PrnInfo);
except
on exceptiondo
begin
Prn.SetPrinterInfo($100, AWidth, AHeight, -1, AOr, False);
Prn.FillPrnInfo(PrnInfo);
end;
end;
pgSize := Prn.PaperSize;
pgWidth := Prn.PaperWidth;
pgHeight := Prn.PaperHeight;
pgOr := Prn.Orientation;
if (ABin and $FFFF) <> $FFFF then
pgBin := Prn.Bin else
pgBin := $FFFF;
end;
procedure TfrPrinter.SetPrinterInfo(pgSize, pgWidth, pgHeight, pgBin: Integer;
pgOr: TPrinterOrientation;
SetImmediately: Boolean);
begin
if FPrinter.Printing then
Exit;
if not SetImmediately then
if IsEqual(pgSize, pgWidth, pgHeight, pgBin, pgOr) then
Exit;
PaperSize := pgSize;
PaperWidth := pgWidth;
PaperHeight := pgHeight;
Orientation := pgOr;
Bin := pgBin;
SetSettings;
end;
相关的函数:
procedure TfrPrinter.SetSettings;
var
i, n: Integer;
begin
if FPrinterIndex = FDefaultPrinter then
begin
FPaperNames.Clear;
for i := 0 to PAPERCOUNT - 1do
begin
FPaperNames.Add(PaperInfo.Name);
PaperSizes := PaperInfo.Typ;
if (PaperSize <> $100) and (PaperSize = PaperInfo.Typ) then
begin
PaperWidth := PaperInfo.X;
PaperHeight := PaperInfo.Y;
if Orientation = poLandscape then
begin
n := PaperWidth;
PaperWidth := PaperHeight;
PaperHeight := n;
end;
end;
end;
PaperSizesNum := PAPERCOUNT;
Exit;
end;
FPrinter.GetPrinter(FDevice, FDriver, FPort, FDeviceMode);
try
FMode := GlobalLock(FDeviceMode);
if PaperSize = $100 then
begin
FMode.dmFields := FMode.dmFields or DM_PAPERLENGTH or DM_PAPERWIDTH;
FMode.dmPaperLength := PaperHeight;
FMode.dmPaperWidth := PaperWidth;
end;
if (FMode.dmFields and DM_PAPERSIZE) <> 0 then
FMode.dmPaperSize := PaperSize;
if (FMode.dmFields and DM_ORIENTATION) <> 0 then
if Orientation = poPortrait then
FMode.dmOrientation := DMORIENT_PORTRAIT else
FMode.dmOrientation := DMORIENT_LANDSCAPE;
if (FMode.dmFields and DM_COPIES) <> 0 then
FMode.dmCopies := 1;
if ((FMode.dmFields and DM_DEFAULTSOURCE) <> 0) and ((Bin and $FFFF) <> $FFFF) then
FMode.dmDefaultSource := Bin;
FPrinter.SetPrinter(FDevice, FDriver, FPort, FDeviceMode);
finally
GlobalUnlock(FDeviceMode);
end;
GetSettings;
end;
祝你好运!