⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_printer.hpp

📁 这是一个功能强大
💻 HPP
字号:
// CodeGear C++Builder
// Copyright (c) 1995, 2007 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Rm_printer.pas' rev: 11.00

#ifndef Rm_printerHPP
#define Rm_printerHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Winspool.hpp>	// Pascal unit
#include <Syncobjs.hpp>	// Pascal unit
#include <Rm_common.hpp>	// Pascal unit
#include <Rm_const.hpp>	// Pascal unit
#include <Rm_const1.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Rm_printer
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TRMDuplex { rmdpNone, rmdpHorizontal, rmdpVertical };
#pragma option pop

#pragma option push -b-
enum TRMPrinterCapType { pcPaperNames, pcPapers, pcPaperWidths, pcPaperHeights, pcBinNames, pcBins };
#pragma option pop

class DELPHICLASS TRMPrinterInfo;
class PASCALIMPLEMENTATION TRMPrinterInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	char *FDriver;
	char *FDevice;
	char *FPort;
	bool FIsValid;
	bool FAlreadlyGetInfo;
	unsigned FDeviceHandle;
	int FAddinPaperSizeIndex;
	Syncobjs::TCriticalSection* FLock;
	Classes::TStringList* FPaperNames;
	Classes::TStringList* FBinNames;
	Classes::TStringList* FBins;
	Classes::TStringList* FPaperWidths;
	Classes::TStringList* FPaperHeights;
	Classes::TStringList* FPaperSizes;
	int __fastcall GetPaperWidth(int index);
	int __fastcall GetPaperHeight(int index);
	void __fastcall SetPaperWidth(int index, int Value);
	void __fastcall SetPaperHeight(int index, int Value);
	int __fastcall GetPaperSize(int index);
	int __fastcall GetBin(int index);
	void __fastcall GetDeviceCapability(TRMPrinterCapType aPrinterCap, Classes::TStrings* sl);
	void __fastcall ValidatePaperSizes(void);
	void __fastcall ValidatePaperBins(void);
	void __fastcall GetPrinterCaps(bool aVirtualPrinter);
	
public:
	__fastcall TRMPrinterInfo(char * aDriver, char * aDevice, char * aPort);
	__fastcall virtual ~TRMPrinterInfo(void);
	int __fastcall PaperSizesCount(void);
	int __fastcall GetPaperSizeIndex(int pgSize);
	int __fastcall GetBinIndex(int pgBin);
	__property char * Device = {read=FDevice};
	__property char * Driver = {read=FDriver};
	__property char * Port = {read=FPort};
	__property bool IsValid = {read=FIsValid, write=FIsValid, nodefault};
	__property int AddinPaperSizeIndex = {read=FAddinPaperSizeIndex, nodefault};
	__property Classes::TStringList* PaperNames = {read=FPaperNames};
	__property Classes::TStringList* BinNames = {read=FBinNames};
	__property int PaperWidths[int index] = {read=GetPaperWidth, write=SetPaperWidth};
	__property int PaperHeights[int index] = {read=GetPaperHeight, write=SetPaperHeight};
	__property int PaperSizes[int index] = {read=GetPaperSize};
	__property int Bins[int index] = {read=GetBin};
};


class DELPHICLASS TRMPrinterList;
class PASCALIMPLEMENTATION TRMPrinterList : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	int FDefaultPrinterIndex;
	Classes::TStrings* FPrinters;
	Syncobjs::TCriticalSection* FLock;
	void __fastcall BuildPrinterList(void);
	void __fastcall FreePrinterList(void);
	int __fastcall GetCount(void);
	TRMPrinterInfo* __fastcall GetPrinterInfo(int Index);
	void __fastcall GetDefaultPrinter(void);
	
public:
	__fastcall TRMPrinterList(void);
	__fastcall virtual ~TRMPrinterList(void);
	void __fastcall Refresh(void);
	__property int Count = {read=GetCount, nodefault};
	__property Classes::TStrings* Printers = {read=FPrinters};
	__property TRMPrinterInfo* PrinterInfo[int index] = {read=GetPrinterInfo};
};


class DELPHICLASS TRMCustomPrinter;
class PASCALIMPLEMENTATION TRMCustomPrinter : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	bool FAborted;
	bool FCanGrayScale;
	Graphics::TCanvas* FCanvas;
	HDC FDC;
	TRMPrinterInfo* FCurrentInfo;
	int FDefaultBin;
	AnsiString FDocumentName;
	AnsiString FFileName;
	int FPageNumber;
	bool FPrinting;
	unsigned FPrinterHandle;
	int FPrinterIndex;
	bool FResetDC;
	bool FStartPage;
	unsigned FDevMode;
	Classes::TNotifyEvent FOnSetupChange;
	_devicemodeA *FPDevMode;
	#pragma pack(push,1)
	Types::TRect FPageGutters;
	#pragma pack(pop)
	#pragma pack(push,1)
	Types::TPoint FPixelsPerInch;
	#pragma pack(pop)
	int FPaperWidth;
	int FPaperHeight;
	int FPrintableHeight;
	int FPrintableWidth;
	int FDefaultPaperWidth;
	int FDefaultPaperHeight;
	Rm_common::TRMPrinterOrientation FDefaultPaperOr;
	double FFactorX;
	double FFactorY;
	int FTruePaperWidth;
	int FTruePaperHeight;
	bool FColorPrint;
	TRMDuplex FDuplex;
	Syncobjs::TCriticalSection* FLock;
	AnsiString __fastcall GetPrinterName();
	void __fastcall FreeDC(void);
	void __fastcall FreeDevMode(void);
	void __fastcall FreePrinterHandle(void);
	void __fastcall FreePrinterResources(void);
	bool __fastcall GetCanGrayScale(void);
	Graphics::TCanvas* __fastcall GetCanvas(void);
	HDC __fastcall GetDC(void);
	unsigned __fastcall GetDocumentProperties(void);
	unsigned __fastcall GetPrinterHandle(void);
	TRMPrinterInfo* __fastcall GetPrinterInfo(void);
	Windows::PDeviceModeA __fastcall GetPDevMode(void);
	Types::TRect __fastcall GetPageGutters();
	int __fastcall GetPaperWidth(void);
	int __fastcall GetPaperHeight(void);
	Types::TPoint __fastcall GetPixelsPerInch();
	int __fastcall GetPrintableHeight(void);
	int __fastcall GetPrintableWidth(void);
	void __fastcall ResetDC(void);
	void __fastcall SetPrinterIndex(int Value);
	
protected:
	void __fastcall DeviceContextChanged(void);
	__property Windows::PDeviceModeA PDevMode = {read=GetPDevMode};
	__property TRMPrinterInfo* CurrentInfo = {read=FCurrentInfo};
	__property int DefaultBin = {read=FDefaultBin, nodefault};
	
public:
	int PaperSize;
	Rm_common::TRMPrinterOrientation Orientation;
	int Bin;
	int DefaultPaper;
	__fastcall virtual TRMCustomPrinter(void);
	__fastcall virtual ~TRMCustomPrinter(void);
	void __fastcall BeginDoc(void);
	void __fastcall Abort(void);
	void __fastcall EndDoc(void);
	void __fastcall EndPage(void);
	void __fastcall NewPage(void);
	void __fastcall GetDevMode(unsigned &aDevMode);
	void __fastcall SetDevMode(unsigned aDevMode);
	bool __fastcall HasColor(void);
	void __fastcall UpdateForm(const AnsiString aFormName, const Types::TPoint &aDimensions, const Types::TRect &aPrintArea);
	__property unsigned PrinterHandle = {read=GetPrinterHandle, nodefault};
	__property bool Aborted = {read=FAborted, nodefault};
	__property Graphics::TCanvas* Canvas = {read=GetCanvas};
	__property HDC DC = {read=GetDC, nodefault};
	__property AnsiString Title = {read=FDocumentName, write=FDocumentName};
	__property AnsiString FileName = {read=FFileName, write=FFileName};
	__property int PageNumber = {read=FPageNumber, nodefault};
	__property bool Printing = {read=FPrinting, nodefault};
	__property int PrinterIndex = {read=FPrinterIndex, write=SetPrinterIndex, nodefault};
	__property AnsiString PrinterName = {read=GetPrinterName};
	__property TRMPrinterInfo* PrinterInfo = {read=GetPrinterInfo};
	__property double FactorX = {read=FFactorX};
	__property double FactorY = {read=FFactorY};
	__property bool CanGrayScale = {read=GetCanGrayScale, nodefault};
	__property Types::TRect PageGutters = {read=GetPageGutters};
	__property Types::TPoint PixelsPerInch = {read=GetPixelsPerInch};
	__property int PrintableHeight = {read=GetPrintableHeight, nodefault};
	__property int PrintableWidth = {read=GetPrintableWidth, nodefault};
	__property int PaperWidth = {read=GetPaperWidth, nodefault};
	__property int PaperHeight = {read=GetPaperHeight, nodefault};
	__property int DefaultPaperWidth = {read=FDefaultPaperWidth, nodefault};
	__property int DefaultPaperHeight = {read=FDefaultPaperHeight, nodefault};
	__property Rm_common::TRMPrinterOrientation DefaultPaperOr = {read=FDefaultPaperOr, nodefault};
	__property bool ColorPrint = {read=FColorPrint, write=FColorPrint, nodefault};
	__property TRMDuplex Duplex = {read=FDuplex, write=FDuplex, nodefault};
	__property Classes::TNotifyEvent OnChange = {read=FOnSetupChange, write=FOnSetupChange};
};


class DELPHICLASS TRMPrinter;
class PASCALIMPLEMENTATION TRMPrinter : public TRMCustomPrinter 
{
	typedef TRMCustomPrinter inherited;
	
private:
	int FCopies;
	void __fastcall SetSettings(int aPgWidth, int aPgHeight);
	
protected:
	void __fastcall GetSettings(void);
	
public:
	__fastcall virtual TRMPrinter(void);
	__fastcall virtual ~TRMPrinter(void);
	void __fastcall FillPrinterInfo(Rm_common::TRMPageInfo &p);
	void __fastcall SetPrinterInfo(int aPageSize, int aPageWidth, int aPageHeight, int aPageBin, Rm_common::TRMPrinterOrientation aPageOrientation, bool aSetImmediately);
	bool __fastcall IsEqual(int apgSize, int apgWidth, int apgHeight, int apgBin, Rm_common::TRMPrinterOrientation apgOr, TRMDuplex aDuplex);
	bool __fastcall PropertiesDlg(void);
	void __fastcall Update(void);
	__property int Copies = {read=FCopies, write=FCopies, default=1};
};


class DELPHICLASS TRMPageSetting;
class PASCALIMPLEMENTATION TRMPageSetting : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
private:
	AnsiString FTitle;
	AnsiString FPageName;
	Word FPageSize;
	int FPageWidth;
	int FPageHeight;
	Rm_common::TRMPrinterOrientation FPageOr;
	int FPageBin;
	bool FPrintBackGroundPicture;
	double FMarginLeft;
	double FMarginTop;
	double FMarginRight;
	double FMarginBottom;
	bool FPrintToPrevPage;
	bool FScaleFrameWidth;
	bool FUnlimitedHeight;
	bool FDoublePass;
	int FColCount;
	double FColGap;
	AnsiString FPrinterName;
	bool FColorPrint;
	bool FNewPageAfterPrint;
	bool FConvertNulls;
	void __fastcall SetColCount(int Value);
	void __fastcall SetValue(int Index, double Value);
	void __fastcall SetPageOr(Rm_common::TRMPrinterOrientation Value);
	
public:
	__property AnsiString PageName = {read=FPageName, write=FPageName};
	__property Word PageSize = {read=FPageSize, write=FPageSize, nodefault};
	__property int PageWidth = {read=FPageWidth, write=FPageWidth, nodefault};
	__property int PageHeight = {read=FPageHeight, write=FPageHeight, nodefault};
	__property Rm_common::TRMPrinterOrientation PageOr = {read=FPageOr, write=SetPageOr, nodefault};
	__property int PageBin = {read=FPageBin, write=FPageBin, nodefault};
	__property bool PrintToPrevPage = {read=FPrintToPrevPage, write=FPrintToPrevPage, nodefault};
	__property bool DoublePass = {read=FDoublePass, write=FDoublePass, nodefault};
	__property bool PrintBackGroundPicture = {read=FPrintBackGroundPicture, write=FPrintBackGroundPicture, nodefault};
	__property bool ScaleFrameWidth = {read=FScaleFrameWidth, write=FScaleFrameWidth, nodefault};
	__property bool UnlimitedHeight = {read=FUnlimitedHeight, write=FUnlimitedHeight, nodefault};
	__property int ColCount = {read=FColCount, write=SetColCount, nodefault};
	__property double ColGap = {read=FColGap, write=SetValue, index=4};
	__property double MarginLeft = {read=FMarginLeft, write=SetValue, index=0};
	__property double MarginTop = {read=FMarginTop, write=SetValue, index=1};
	__property double MarginRight = {read=FMarginRight, write=SetValue, index=2};
	__property double MarginBottom = {read=FMarginBottom, write=SetValue, index=3};
	__property AnsiString PrinterName = {read=FPrinterName, write=FPrinterName};
	__property bool ColorPrint = {read=FColorPrint, write=FColorPrint, nodefault};
	__property bool NewPageAfterPrint = {read=FNewPageAfterPrint, write=FNewPageAfterPrint, nodefault};
	__property AnsiString Title = {read=FTitle, write=FTitle};
	__property bool ConvertNulls = {read=FConvertNulls, write=FConvertNulls, nodefault};
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRMPageSetting(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRMPageSetting(void) : Classes::TPersistent() { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Shortint rmpgLetter = 0x1;
static const Shortint rmpgLetterSmall = 0x2;
static const Shortint rmpgTabloid = 0x3;
static const Shortint rmpgLedger = 0x4;
static const Shortint Legal = 0x5;
static const Shortint rmpgStatement = 0x6;
static const Shortint rmpgExecutive = 0x7;
static const Shortint rmpgA3 = 0x8;
static const Shortint rmpgA4 = 0x9;
static const Shortint rmpgA4Small = 0xa;
static const Shortint rmpgA5 = 0xb;
static const Shortint rmpgB4 = 0xc;
static const Shortint rmpgB5 = 0xd;
static const Shortint rmpgFolio = 0xe;
static const Shortint rmpgQuarto = 0xf;
static const Shortint qr10X14 = 0x10;
static const Shortint rmpgqr11X17 = 0x11;
static const Shortint rmpgNote = 0x12;
static const Shortint rmpgEnv9 = 0x13;
static const Shortint rmpgEnv10 = 0x14;
static const Shortint rmpgEnv11 = 0x15;
static const Shortint rmpgEnv12 = 0x16;
static const Shortint rmpgEnv14 = 0x17;
static const Shortint rmpgCSheet = 0x18;
static const Shortint rmpgDSheet = 0x19;
static const Shortint rmpgESheet = 0x1a;
static const Word rmpg16K = 0x320;
static const Word rmpg32K = 0x321;
static const Word rmpg32KBIG = 0x322;
static const Word rmpgKh = 0x323;
static const Word rmpgZh = 0x324;
static const Word rmpgCustom = 0x100;
extern PACKAGE void __fastcall RMAddPaperInfo_1(AnsiString aPaperName, int aPaperWidth, int aPaperHeight);
extern PACKAGE TRMPrinterList* __fastcall RMPrinters(void);
extern PACKAGE TRMPrinter* __fastcall RMPrinter(void);

}	/* namespace Rm_printer */
using namespace Rm_printer;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Rm_printer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -