涓銆佹榪?br />鍦ㄩ摱琛岋紝紼庡姟錛岄偖鏀跨瓑琛屼笟鐨勫疄闄呭伐浣滀腑錛岀粡甯告秹鍙婂埌鍦ㄥ嵃鍒峰ソ鍏鋒湁鍥哄畾鏍煎紡鐨勬眹嬈懼崟錛屽偍钃勫嚟璇侊紝
紼庣エ絳夊崟鎹笂鐨勭‘瀹氫綅緗墦鍗拌緭鍑虹浉鍏崇殑淇℃伅銆傚湪姝ょ被闇姹備腑錛岀簿紜湴瀹氫綅鍗曟嵁騫舵墦鍗扮浉鍏充俊鎭紝
鏄В鍐抽棶棰樼殑鍏抽敭銆備竴鑸儏鍐典笅錛屽紑鍙戣呴兘鏄氳繃鍦ㄦ墦鍗版満涓婇氳繃閲嶅鐨勬祴璇曟潵杈懼埌瀹為檯闇姹傘?br />閭d箞錛屾湁娌℃湁綆鍗曟湁鏁堣屽張鐏墊椿鐨勬柟娉曞疄鐜頒笂榪板姛鑳藉憿錛?br />浜屻佸熀鏈濊礬
鍒嗘瀽涓婅堪鍗曟嵁鐨勭壒寰侊紝鍙互鍙戠幇錛氭綾繪墦鍗拌緭鍑虹殑淇℃伅涓鑸瘮杈冪畝鐭紝涓嶆秹鍙婂埌鏂囧瓧榪囬暱鐨勬姌琛屽鐞嗭紝
鍙﹀錛屽叾鎵撳嵃杈撳嚭鐨勪綅緗浉瀵瑰浐瀹氥傚洜姝わ紝鎴戜滑鍙互閫氳繃鐢ㄥ昂瀛愪互姣背涓哄崟浣嶏紝嫻嬮噺濂芥瘡涓緭鍑轟俊鎭綅緗?br />鐨勬í鍚戝拰綰靛悜鍧愭爣,浣滀負淇℃伅杈撳嚭鐨勪綅緗備絾鐢變簬涓嶅悓鎵撳嵃鏈哄湪瀹為檯杈撳嚭鏁堟灉涓婏紝鎬繪槸瀛樺湪鐞嗚鍜屽疄闄呬綅緗?br />鐨勫亸宸紝鍥犳錛岃姹傜▼搴忓叿鏈変竴瀹氱殑鐏墊椿鎬э紝渚涙渶緇堢敤鎴鋒牴鎹渶瑕侊紝榪涜蹇呰鐨勪綅緗皟鏁淬傚洜姝わ紝鍙緗?br />涓鎵撳嵃閰嶇疆鏂囦歡錛岀敤浜庡瓨鍌ㄦí鍧愭爣鍜岀旱鍧愭爣鐨勫亸縐婚噺錛岀敤浜庣敤鎴瘋繘琛屼綅緗牎姝o紝浠庤屾彁渚涗簡涓瀹氱殑鐏墊椿鎬с?br />涓夈佺簿紜墦鍗拌緭鍑虹殑紼嬪簭瀹炵幇
1錛?鍦―elphi涓柊寤轟竴涓悕涓簃print.pas鐨勫崟鍏冩枃浠跺茍緙栧啓濡備笅紼嬪簭錛屽崟鍏冨紩鐢ㄤ腑鍔犲叆Printers鐣ワ細
//鍙栧緱瀛楃鐨勯珮搴?br />function CharHeight: Word;
var
銆Metrics: TTextMetric;
begin
銆GetTextMetrics(Printer.Canvas.Handle, Metrics);
銆Result := Metrics.tmHeight;
end;
file://鍙栧緱瀛楃鐨勫鉤鍧囧搴?br />function AvgCharWidth: Word;
var
銆Metrics: TTextMetric;
begin
銆GetTextMetrics(Printer.Canvas.Handle, Metrics);
銆Result := Metrics.tmAveCharWidth;
end;
file://鍙栧緱綰稿紶鐨勭墿鐞嗗昂瀵?--鍗曚綅錛氱偣
function GetPhicalPaper: TPoint;
var
銆PageSize : TPoint;
begin
銆file://PageSize.X; 綰稿紶鐗╃悊瀹藉害-鍗曚綅:鐐?br />銆file://PageSize.Y; 綰稿紶鐗╃悊楂樺害-鍗曚綅:鐐?br />銆Escape(Printer.Handle, GETPHYSPAGESIZE, 0,nil,@PageSize);
銆Result := PageSize;
end;
file://2.鍙栧緱綰稿紶鐨勯昏緫瀹藉害--鍙墦鍗板尯鍩?br />file://鍙栧緱綰稿紶鐨勯昏緫灝哄
function PaperLogicSize: TPoint;
var
銆APoint: TPoint;
begin
銆APoint.X := Printer.PageWidth;
銆APoint.Y := Printer.PageHeight;
銆Result := APoint;
end;
file://綰稿紶姘村鉤瀵瑰瀭鐩存柟鍚戠殑綰墊í姣斾緥
function HVLogincRatio: Extended;
var
銆AP: TPoint;
begin
銆Ap := PaperLogicSize;
銆Result := Ap.y/Ap.X;
end;
file://鍙栧緱綰稿紶鐨勬í鍚戝亸縐婚噺-鍗曚綅錛氱偣
function GetOffSetX: Integer;
begin
銆Result := GetDeviceCaps(Printer.Handle, PhysicalOffSetX);
end;
file://鍙栧緱綰稿紶鐨勭旱鍚戝亸縐婚噺-鍗曚綅錛氱偣
function GetOffSetY: Integer;
begin
銆Result := GetDeviceCaps(Printer.Handle, PhysicalOffSetY);
end;
file://姣背鍗曚綅杞崲涓鴻嫳瀵稿崟浣?br />function MmToInch(Length: Extended): Extended;
begin
銆Result := Length/25.4;
end;
file://鑻卞鍗曚綅杞崲涓烘綾沖崟浣?br />function InchToMm(Length: Extended): Extended;
begin
銆Result := Length*25.4;
end;
file://鍙栧緱姘村鉤鏂瑰悜姣忚嫳瀵告墦鍗版満鐨勭偣鏁?br />function HPointsPerInch: Integer;
begin
銆Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
end;
file://鍙栧緱綰靛悜鏂瑰悜姣忚嫳瀵告墦鍗版満鐨勫厜鏍呮暟
function VPointsPerInch: Integer;
begin
銆Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
end;
file://妯悜鐐瑰崟浣嶈漿鎹負姣背鍗曚綅
function XPointToMm(Pos: Integer): Extended;
begin
銆Result := Pos*25.4/HPointsPerInch;
end;
file://綰靛悜鐐瑰崟浣嶈漿鎹負姣背鍗曚綅
function YPointToMm(Pos: Integer): Extended;
begin
銆Result := Pos*25.4/VPointsPerInch;
end;
file://璁劇疆綰稿紶楂樺害-鍗曚綅錛歮m
procedure SetPaperHeight(Value: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
file://鑷畾涔夌焊寮犳渶灝忛珮搴?27mm
if Value < 127 then Value := 127;
銆file://鑷畾涔夌焊寮犳渶澶ч珮搴?32mm
銆if Value > 432 then Value := 432;
銆銆Printer.PrinterIndex := Printer.PrinterIndex;
銆銆Printer.GetPrinter(Device, Driver, Port, hDMode);
銆銆if hDMode <> 0 then
銆銆銆begin
銆銆銆銆pDMode := GlobalLock(hDMode);
銆銆銆銆if pDMode <> nil then
銆銆銆銆begin
銆銆銆銆銆pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or
銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆DM_PAPERLENGTH;
銆銆銆銆銆pDMode^.dmPaperSize := DMPAPER_USER;
銆銆銆銆銆pDMode^.dmPaperLength := Value * 10;
銆銆銆銆銆pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
銆銆銆銆銆pDMode^.dmDefaultSource := DMBIN_MANUAL;
銆銆銆銆銆GlobalUnlock(hDMode);
銆銆銆銆end;
銆銆銆end;
銆銆銆Printer.PrinterIndex := Printer.PrinterIndex;
end;
file://璁劇疆綰稿紶瀹藉害錛氬崟浣?-mm
Procedure SetPaperWidth(Value: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
file://鑷畾涔夌焊寮犳渶灝忓搴?6mm
if Value < 76 then Value := 76;
銆file://鑷畾涔夌焊寮犳渶澶у搴?16mm
銆if Value > 216 then Value := 216;
銆銆Printer.PrinterIndex := Printer.PrinterIndex;
銆銆Printer.GetPrinter(Device, Driver, Port, hDMode);
銆銆if hDMode <> 0 then
銆銆begin
銆銆銆pDMode := GlobalLock(hDMode);
銆銆銆if pDMode <> nil then
銆銆銆begin
銆銆銆銆pDMode^.dmFields := pDMode^.dmFields or DM_PAPERSIZE or
銆銆銆銆銆銆銆銆銆銆銆銆銆銆DM_PAPERWIDTH;
銆銆銆銆pDMode^.dmPaperSize := DMPAPER_USER;
銆銆銆銆file://灝嗘綾沖崟浣嶈漿鎹負0.1mm鍗曚綅
銆銆銆銆pDMode^.dmPaperWidth := Value * 10;
銆銆銆銆pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
銆銆銆銆pDMode^.dmDefaultSource := DMBIN_MANUAL;
銆銆銆銆GlobalUnlock(hDMode);
銆銆銆end;
銆銆end;
銆銆Printer.PrinterIndex := Printer.PrinterIndex;
end;
file://鍦?(Xmm, Ymm)澶勬寜鎸囧畾閰嶇疆鏂囦歡淇℃伅鍜屽瓧浣撹緭鍑哄瓧絎︿覆
procedure PrintText(X, Y: Extended; Txt: string; ConfigFileName: string; FontSize: Integer=12);
var
銆OrX, OrY: Extended;
銆Px, Py: Integer;
銆AP: TPoint;
銆Fn: TStrings;
銆FileName: string;
銆OffSetX, OffSetY: Integer;
begin
file://鎵撳紑閰嶇疆鏂囦歡錛岃鍑烘í鍚戝拰綰靛悜鍋忕Щ閲?br />try
銆Fn := TStringList.Create;
銆FileName := ExtractFilePath(Application.ExeName) + ConfigFileName;
銆if FileExists(FileName) then
銆begin
銆銆Fn.LoadFromFile(FileName);
銆銆file://妯悜鍋忕Щ閲?br />銆銆OffSetX := StrToInt(Fn.Values['X']);
銆銆file://綰靛悜鍋忕Щ閲?br />銆銆OffSetY := StrToInt(Fn.Values['Y']);
銆end
else
begin
銆file://濡傛灉娌℃湁閰嶇疆鏂囦歡錛屽垯鐢熸垚
銆Fn.Values['X'] := '0';
銆Fn.Values['Y'] := '0';
銆Fn.SaveToFile(FileName);
end;
finally
銆Fn.Free;
end;
X := X + OffSetX;
Y := Y + OffSetY;
Px := Round(Round(X * HPointsPerInch * 10000/25.4) / 10000);
Py := Round(Round(Y * VPointsPerInch * 10000/25.4) / 10000);
Py := Py - GetOffSetY; file://鍥犱負鏄粷瀵瑰潗鏍? 鍥犳, 涓嶇敤鎹㈢畻鎴愮浉瀵逛簬Y杞村潗鏍?br />Px := Px + 2 * AvgCharWidth;
Printer.Canvas.Font.Name := '瀹嬩綋';
Printer.Canvas.Font.Size := FontSize;
file://Printer.Canvas.Font.Color := clGreen;
Printer.Canvas.TextOut(Px, Py, Txt);
end;
銆銆2錛?浣跨敤涓句緥
銆銆鍦ㄤ富紿椾綋涓姞鍏ュmprint鍗曞厓鐨勫紩鐢紝鍦ㄤ竴鍛戒護閽殑OnClick
浜嬩歡涓功鍐欏涓嬩唬鐮侊紙鐢ㄤ簬鍦ㄩ偖鏀挎眹嬈懼崟涓婄殑鐩稿簲鏂規鍐呮墦鍗伴偖鏀跨紪鐮?43300錛夛細
Printer.BeginDoc;
PrintText(16, 14, '8', 'config.txt');
PrintText(26, 14, '4', 'config.txt');
PrintText(36, 14, '3', 'config.txt');
PrintText(46, 14, '3', 'config.txt');
PrintText(56, 14, '0', 'config.txt');
PrintText(66, 14, '0', 'config.txt');
Printer.EndDoc;
銆銆瑙傚療緇撴灉錛岀敤灝哄瓙嫻嬮噺鍋忕Щ閲忥紝鍦╟onfig.txt鏂囦歡涓慨鏀筙錛孻鐨勫煎嵆鍙?br />
銆銆鍏跺畠錛岃緗墦鍗版満鍜岀焊寮犵被鍨嬩粠鐣ャ?br />
銆銆鍥涖佺粨鏉熻
聽
聽聽
聽 濡傛灉鎵撳皬浜?6姣背鐨勯珮搴︾殑紲ㄦ嵁鍛紵
聽 涓嶅氨鏄病娉曟帶鍒剁簿搴︽媺銆?
聽 鑰屼笖鎴戦棶榪噀pson錛屽崄鍘樼背浠ヤ笅涓鑸蛋綰稿氨涓嶆槸闈炲父鍑嗙‘錛屽繀欏昏皟鏁村嚑姣背鎵嶈兘淇濊瘉鍑嗙‘錛屽鏋滀綘鐨勯珮搴﹂棿璺濇伆濂戒笉琚敤鑻卞鎵綺劇‘紜畾錛岄偅涔堟墦鍗板氨鏈夊彲鑳藉嚭鐜扮瘡璁¤宸?br />姣斿楂樺害70mm鐨勭焊榪炵畫綰革紝Epson閽堟墦蹇呴』璁劇疆鍦?19mm鎵嶈兘淇濊瘉璧板埌鍒囩焊浣嶏紝
聽聽
鑰屼笖錛屽鏋滀綘鐢ㄥ啓瀛楁澘鍋氭祴璇曡蛋綰告槸鍚﹁蛋鍒板垏綰鎬綅錛屼互涓?19mm涔熸湁涓鐐圭偣娌℃湁鍒頒綅錛屽綋鎵撳寮犳椂錛岀瘡璁¤蛋綰歌宸篃灝辮秺鏉ヨ秺澶э紝10寮犲氨鍑犱箮10mm鍟︼紝濡傛灉璋冨埌721mm錛岃蛋綰稿氨榪囦簡鍒囩焊浣嶄竴鐐圭偣錛岃皟鍒?銆?0mm鏄渶鍚堥傜殑錛屽彲鎯渆pson鏄寜鑻卞璁$畻錛?19錛?20瀵瑰簲2銆?3in,
7.21 瀵瑰簲2銆?4in, 鍢垮樋錛屾病鎾ゃ?聽
瑙e喅鏂規硶鏄湁寰堝鐨勶紝鐢辯洿鎺ヤ篃鏈夐棿鎺ワ紝涓嶈繃杈懼埌鏈浣蟲晥鏋滐紝榪樺緱闈爀sc鍛戒護錛屼笉榪囧緱鐔熸倝esc/p緋誨垪鍛戒護錛屼翰鑷帶鍒舵墦鍗版満鐨勮蛋綰搞?聽
聽鍙仺鐨勬槸錛屾垜榪樺湪鐮旂┒錛屽ご閮藉ぇ浜?聽
鏉ヨ嚜錛?/b>
ktsxy, 鏃墮棿錛?/b>2004-7-30 10:58:21, ID錛?/b>2738703
聽 聽闈炲父鎰熻阿...浣犱滑緇欏嚭榪欎箞濂界殑絳旀...璋㈣阿 聽
鏉ヨ嚜錛?/b>
ktsxy, 鏃墮棿錛?/b>2004-7-30 11:04:42, ID錛?/b>2738732
璇烽棶 聽d_fan 鎬庝箞鑱旂郴浣?...鎴戞湁寰堟ョ殑浜嬭璇鋒暀浣?鍏充簬紲ㄦ嵁鎵撳嵃)闂.....
聽 聽 聽 浣犺兘涓嶈兘鍙戜竴浠界エ鎹墦鍗扮殑Delphi 婧愮▼搴忕粰鎴?.璋㈣阿
聽 聽 聽 聽 聽灝忓紵寰堟?..............QQ:330117537 聽 聽 聽
鏉ヨ嚜錛?/b>
xdengni, 鏃墮棿錛?/b>2004-11-23 15:18:09, ID錛?/b>2904656
璇烽棶 聽d_fan 鎬庝箞鑱旂郴浣?...鎴戞湁寰堟ョ殑浜嬭璇鋒暀浣?鍏充簬紲ㄦ嵁鎵撳嵃)闂.....
聽 聽 聽 浣犺兘涓嶈兘鍙戜竴浠界エ鎹墦鍗扮殑Delphi 婧愮▼搴忕粰鎴?.鎴戜篃鎯寵錛岃阿璋?聽
鏉ヨ嚜錛?/b>
cng81, 鏃墮棿錛?/b>2004-11-24 16:13:03, ID錛?/b>2906618
TO錛歞_fan 鐪熸槸鎰熻阿浣犳彁渚涚殑浠g爜錛屾垜瑕佸ソ濂界爺絀朵竴涓傚懙鍛碉紙鏁ぜ錛侊級 聽
鏉ヨ嚜錛?/b>
luckysw, 鏃墮棿錛?/b>2004-11-30 16:21:27, ID錛?/b>2913352
d_fan 鎴戜篃姝e湪鍋氱エ鎹墦鍗幫紝鎰熻阿浣犳彁渚涚殑浠g爜 鍛靛懙
涓嶈繃錛岃繖孌典唬鐮佸ソ鍍忚繕鏈変竴涓皬闂錛?br />瑕佹槸鎵撳嵃鐨勪綅緗秴鍑轟簡榛樿鐨勯〉杈硅窛鎬庝箞鍔烇紵
鏈変粈涔堝姙娉曡兘璁劇疆欏佃竟璺濆悧錛?聽
鏉ヨ嚜錛?/b>
thj, 鏃墮棿錛?/b>2005-8-30 16:44:59, ID錛?/b>3185727
榪樻湁涓涓噸瑕侀棶棰橈細涓嶅ソ鎺у埗鎶樿銆?聽
鏉ヨ嚜錛?/b>
浠婚嶉仴1205, 鏃墮棿錛?/b>2005-12-7 18:04:41, ID錛?/b>3289184
榪欒浠g爜鎬庝箞鏉ュ疄鐜版í鎵擄紝鎴戝姞涓婁笅闈㈣繖孌典唬鐮佷篃涓嶈
PDMode^.dmFields:=DM_ORIENTATION;
PDMode^.dmOrientation :=PDMode^.dmFields or DMORIENT_LANDSCAPE; 聽
鏉ヨ嚜錛?/b>
nido, 鏃墮棿錛?/b>2005-12-15 8:20:29, ID錛?/b>3297086
妤間富 鎴戜篃闇瑕佷竴浠芥簮浠g爜錛岃兘鍚﹀彂緇欐垜鍛?br />nidogz@gmail.com 聽
鏉ヨ嚜錛?/b>
zhangbo, 鏃墮棿錛?/b>2005-12-31 11:01:56, ID錛?/b>3314733
璇烽棶 聽d_fan 鎬庝箞鑱旂郴浣?br />鎴戞湁寰堟ョ殑浜嬭璇鋒暀浣?鍏充簬紲ㄦ嵁鎵撳嵃)闂
浣犺兘涓嶈兘鍙戜竴浠界エ鎹墦鍗扮殑Delphi 婧愮▼搴忕粰鎴?.璋㈣阿
鎴戝湪鎵撳嚟璇佹椂鑰佸樊2mm錛岀瘡璁¤宸彧鑳芥墦10涓嚟璇併?br />綰哥殑楂樺害鏄?08mm
鎴戠敤鐨勬槸FastReport
鎴戠殑QQ鏄?82057922 聽
鏉ヨ嚜錛?/b>
zhangbo, 鏃墮棿錛?/b>2005-12-31 11:12:06, ID錛?/b>3314753
璇烽棶 聽d_fan 鎬庝箞鑱旂郴浣?br />鎴戞湁寰堟ョ殑浜嬭璇鋒暀浣?鍏充簬紲ㄦ嵁鎵撳嵃)闂
浣犺兘涓嶈兘鍙戜竴浠界エ鎹墦鍗扮殑Delphi 婧愮▼搴忕粰鎴?.璋㈣阿
鎴戝湪鎵撳嚟璇佹椂鑰佸樊2mm錛岀瘡璁¤宸彧鑳芥墦10涓嚟璇併?br />綰哥殑楂樺害鏄?08mm
鎴戠敤鐨勬槸FastReport
鎴戠殑QQ鏄?82057922 聽
yhqzbb2@sina.com 聽

]]>