W wg2436 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-24 #1 需要使用FastReport中的RMFormReport控件, 我不能使用自定义纸张大小, 问谁知道自定义纸张如何设置...?
H havenohair Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-24 #2 你可以选虚拟打印机,能自定义纸张大小,还可以在控制面板,打印机,自已设置 自定义的大小和名字,但是有一个问题,有些打印机是不能设置的,并且自定义后, 打印时照样会变成A4的,你可用reportmachine,
你可以选虚拟打印机,能自定义纸张大小,还可以在控制面板,打印机,自已设置 自定义的大小和名字,但是有一个问题,有些打印机是不能设置的,并且自定义后, 打印时照样会变成A4的,你可用reportmachine,
C c2008 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-24 #3 不用那么麻烦,直接设置就可以了 frreport-(双击)-file-pageoption-paper-size里的custom
影 **影子** Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-28 #4 靠!有的打印机好像不支持 Custom,去哪选????
Z zhaqiong Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-29 #5 推荐whf的东东 http://service.lonetear.com/delphi/downfile.asp?ID=1375
飞 飞来石 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-05 #6 如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制 首先为了达到这个功能,可以采用Windows的逻辑字体(LogFont) 可以使用 CreateFont 或 CreateFontIndirect 这两个Windows API 函数来定义任何想要的字体,由于 CreateFont 所需的参数甚多通常 我们使用 CreateFontIndirect 来建立所需的逻辑字体,这个API函数 在Delphi中的声明为 function CreateFontIndirect(const p1: TLogFont): HFONT; stdcall; 其中只有一个参数 p1: TLogfont 所有有关字体的参数完全通过这个 TLogfont结构来传送,Windows将根据结构中的内容创建出相应的逻辑 字体,在Delphi的Windows.pas中TLogFont是这样定义的 TLogFontA = packed record lfHeight: Longint; lfWidth: Longint; lfEscapement: Longint; lfOrientation: Longint; lfWeight: Longint; lfItalic: Byte; lfUnderline: Byte; lfStrikeOut: Byte; lfCharSet: Byte; lfOutPrecision: Byte; lfClipPrecision: Byte; lfQuality: Byte; lfPitchAndFamily: Byte; lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; end; TLogFontW = packed record lfHeight: Longint; lfWidth: Longint; lfEscapement: Longint; lfOrientation: Longint; lfWeight: Longint; lfItalic: Byte; lfUnderline: Byte; lfStrikeOut: Byte; lfCharSet: Byte; lfOutPrecision: Byte; lfClipPrecision: Byte; lfQuality: Byte; lfPitchAndFamily: Byte; lfFaceName: array[0..LF_FACESIZE - 1] of WideChar; end; TLogFont = TLogFontA; 其中涉及到很多参数,其中 lfHeight: Longint; 指定以逻辑单位标定的字体高度,取值可为正负或零,对于需要随意 定义字体高度的情况下通常取负值,以保证获得实际尺寸的字体。 lfWidth: Longint; 用于指定字体的平均宽度,由于Windows系统下的大多数字体都是比例 字体因而采用平均宽度这个表示方法。若指定为0,则系统会自动根据 适当的比例自动处理宽度。 lfEscapement: Longint; 指定输出方向与当前坐标系X轴之间的以十分之一度为单位的角度。 lfOrientation: Longint; 指定每个字符与当前坐标系X轴之间的以十分之一度为单位的角度。在 Windows95中这个值等同于lfEscpement。 lfWeight: Longint; 指定范围为从0至1000的字体加重程度,400是标准字体700为加重字体, 0表示采用默认值。 lfItalic: Byte; 不为0表示采用斜体字。 lfUnderline: Byte; 不为0表示带下划线。 lfStrikeOut: Byte; 不为0表示带穿透线。 lfCharSet: Byte; 指定字体集。 lfOutPrecision: Byte; 指定输出精度。用于确定对前面一些设定值的精确程度。 lfClipPrecision: Byte; 指定裁剪精度。裁剪是Windows图形环境下的一种特殊处理,简单说就是 去掉图形中落在视图以外的部分,有助于提高图形的处理速度。 lfQuality: Byte; 指定输出质量。 lfPitchAndFamily: Byte; 指定字体的Pitch和Family。 lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; 指定采用的字体名称。 在建立逻辑字体时,我们通常使用 lfHeight和lfWidth来确定字体的尺寸,使用lfEscapement和lfOrientation 来确定字体的输出方向,使用lfWeight lfItalic lfUnderline lfStrikeOut 来确定字体的加重,斜体,下划线和穿透线,使用lfCharSet 来确定字体的字符集,通常采用系统默认的字符集。 对于lfOutPrecision lfClipPrecision lfQuality一般应用于对屏幕之外 的输出设备,通常采用默认值。采用lfPitchAndFamily来确定采用定宽或可 变字体和字体的家族。以lfFaceName来通过名称选择采用的字体。 另外应当注意在Windows环境下,每种字体具体输出为何种形式取决于很多 因素,需要对以上这些参数进行有效的组合才能达到所要的效果。
如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制 首先为了达到这个功能,可以采用Windows的逻辑字体(LogFont) 可以使用 CreateFont 或 CreateFontIndirect 这两个Windows API 函数来定义任何想要的字体,由于 CreateFont 所需的参数甚多通常 我们使用 CreateFontIndirect 来建立所需的逻辑字体,这个API函数 在Delphi中的声明为 function CreateFontIndirect(const p1: TLogFont): HFONT; stdcall; 其中只有一个参数 p1: TLogfont 所有有关字体的参数完全通过这个 TLogfont结构来传送,Windows将根据结构中的内容创建出相应的逻辑 字体,在Delphi的Windows.pas中TLogFont是这样定义的 TLogFontA = packed record lfHeight: Longint; lfWidth: Longint; lfEscapement: Longint; lfOrientation: Longint; lfWeight: Longint; lfItalic: Byte; lfUnderline: Byte; lfStrikeOut: Byte; lfCharSet: Byte; lfOutPrecision: Byte; lfClipPrecision: Byte; lfQuality: Byte; lfPitchAndFamily: Byte; lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; end; TLogFontW = packed record lfHeight: Longint; lfWidth: Longint; lfEscapement: Longint; lfOrientation: Longint; lfWeight: Longint; lfItalic: Byte; lfUnderline: Byte; lfStrikeOut: Byte; lfCharSet: Byte; lfOutPrecision: Byte; lfClipPrecision: Byte; lfQuality: Byte; lfPitchAndFamily: Byte; lfFaceName: array[0..LF_FACESIZE - 1] of WideChar; end; TLogFont = TLogFontA; 其中涉及到很多参数,其中 lfHeight: Longint; 指定以逻辑单位标定的字体高度,取值可为正负或零,对于需要随意 定义字体高度的情况下通常取负值,以保证获得实际尺寸的字体。 lfWidth: Longint; 用于指定字体的平均宽度,由于Windows系统下的大多数字体都是比例 字体因而采用平均宽度这个表示方法。若指定为0,则系统会自动根据 适当的比例自动处理宽度。 lfEscapement: Longint; 指定输出方向与当前坐标系X轴之间的以十分之一度为单位的角度。 lfOrientation: Longint; 指定每个字符与当前坐标系X轴之间的以十分之一度为单位的角度。在 Windows95中这个值等同于lfEscpement。 lfWeight: Longint; 指定范围为从0至1000的字体加重程度,400是标准字体700为加重字体, 0表示采用默认值。 lfItalic: Byte; 不为0表示采用斜体字。 lfUnderline: Byte; 不为0表示带下划线。 lfStrikeOut: Byte; 不为0表示带穿透线。 lfCharSet: Byte; 指定字体集。 lfOutPrecision: Byte; 指定输出精度。用于确定对前面一些设定值的精确程度。 lfClipPrecision: Byte; 指定裁剪精度。裁剪是Windows图形环境下的一种特殊处理,简单说就是 去掉图形中落在视图以外的部分,有助于提高图形的处理速度。 lfQuality: Byte; 指定输出质量。 lfPitchAndFamily: Byte; 指定字体的Pitch和Family。 lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; 指定采用的字体名称。 在建立逻辑字体时,我们通常使用 lfHeight和lfWidth来确定字体的尺寸,使用lfEscapement和lfOrientation 来确定字体的输出方向,使用lfWeight lfItalic lfUnderline lfStrikeOut 来确定字体的加重,斜体,下划线和穿透线,使用lfCharSet 来确定字体的字符集,通常采用系统默认的字符集。 对于lfOutPrecision lfClipPrecision lfQuality一般应用于对屏幕之外 的输出设备,通常采用默认值。采用lfPitchAndFamily来确定采用定宽或可 变字体和字体的家族。以lfFaceName来通过名称选择采用的字体。 另外应当注意在Windows环境下,每种字体具体输出为何种形式取决于很多 因素,需要对以上这些参数进行有效的组合才能达到所要的效果。