如果是自定义的话,该怎么些,我写成:=Custom。应该包含那个单元呢?不然编译的时候会说Custom未定义。
然后具体的数值,长和宽怎么设定呢?比如单位是MM的话。谢谢各位大侠指教。
然后具体的数值,长和宽怎么设定呢?比如单位是MM的话。谢谢各位大侠指教。
解决方案 »
- 在Delphi中如何获得操作系统版本?
- 请问DBAdvStringGrid1的用法(是TMS包中的GRID)
- pascal 语言和C 语言编写的程序之间相互调用时,参数类型是否可以传递结构和链表
- 动态把imagelist图标加入listview第二列,第三列?
- delphi连ACCESS怎么连,具体点。
- sql server 2000有没有问题?
- delphi fastreport 交叉报表 是否可以在行Grand Tota下边在加几行
- 菜鸟问题:在richedit或者memo里面怎么才能设置每一行字体的颜色,就像QQ的对话模式那样?
- 各位同仁,哪里有李维CSDN讲座的录音文件,急!
- 大虾们,这个sql语句怎么写啊,能写吗
- 急!!!数据库的出错问题
- 求"TBarCode" 条码的控件!!! 收到后马上给分!!!!!
在打印前调用以下函数procedure SetPaperSize(X, Y: Integer);
// 这段代码绝对可用。单位是0.1mm
// A4时 Printer.Pagewidth:=1440; A5时 Printer.Pagewidth:=1049;
// B5时 Printer.Pagewidth:=1290; 16K时 Printer.Pagewidth:=1035;
// lq1600宽行打印机这个值宽度最大为42cm左右, 长度大约2m。
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;
运行期就可以用代码改变大小了, 直接赋值, 精确到0.1mm
QuickRep1.Page.Length := 100.0;
QuickRep1.Page.Width := 100.0;