الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن تحديد ورق الطباعة برمجياً.

مغلق
بدأه Aboalnoor-Delphi7 في 2 نوفمبر 2006 · 4 رد · 1,259 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته.

أما بعد :

في حال الطباعة فإن الطابعة تأخذ الإعدادات الافتراضية للطابعة الخاصة بالورق مثلاً إذا كان حجم البطاقة التي أطبعها 5 سم * 7 سم وإعدادات الطابعة A4 ستقوم الطابعة بطباعة الورقة وإخراج باقي الورقة طبعاً يمكن تلافي ذلك إذا عدلنا خصائص ورق الطابعة على مخصص..... ولكن؟!!!

هل من المعقول أن بإعداد خصائص الورق على كل جهاز أقوم بتنصيب البرنامج عليه.... طبعاً لا...

والسؤال كالتالي...

مثلاً ارتفاع الورقة 5 سم كيف يمكنني إخبار الطابعة بعد الانتهاء من طباعة البطاقة أن تتوقف بدون اخراج باقي الورقة مثلاً لو كان الورق المستخدم رول. أي بكرة.

أو كيف يمكنني اخبار الطابعة أن بعد 5 أو 10 سم أن تتوقف..... طبعاً بدون احداث اخطاء .....

أو بالأحرى كيف يتم تحديد ارتفاع وعرض ورقة الطباعة برمجياً ( مع العلم أن بعض الطابعات لا تمتلك خاصية ورقطباعة مخصص ).

والله ولي التوفيق.

أخوكم أبو النور.

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#2

مافي ردود.........؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

#3

هل تستخدم تقرير ما لطباعة اللصاقة, اقصد Rave,Report builder,quick....

إن كان كذلك لماذا لا تحدد حجم الورق من التقرير اثناء تصميمه؟

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#4

Printer.SetPrinter();

السلام يمكن هذا يفيدك

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,FileCtrl,

StdCtrls,printers, Buttons;

function SHObjectProperties(Owner: HWND; Flags: UINT; ObjectName: Pointer;InitialTabName: Pointer): LongBool; stdcall;

Const

OPF_PRINTERNAME = $01;

OPF_PATHNAME = $02;

Type

TMainForm = class(TForm)

cdmPrinterProperties: TButton;

procedure cdmPrinterPropertiesClick(Sender: TObject);

private

{ Déclarations privées }

public

{ Déclarations publiques }

end;

var

MainForm: TMainForm;

implementation

{$R *.DFM}

function SHObjectProperties; external 'Shell32.dll' index 178;

//------------------------------------------------------------------------------

function ObjectPropetiesExecute(ShObjectName : String; ShTabName : String;ShDialogType : Integer):Boolean;

var

PObjectName: Pointer;

PTabName: Pointer;

begin

// on alloue de la mémoire pour PObjectName (on alloue la maximun si unicode).

GetMem(PObjectName, (Length(ShObjectName) + 1) * SizeOf(WideChar));

try

if IsWindowUnicode(GetDesktopWindow) then

// Si unicode

StringToWideChar(ShObjectName, PWideChar(PObjectName), (Length(ShObjectName) + 1))

else

// Si non unicode

StrPCopy(PChar(PObjectName), ShObjectName);

// on alloue de la mémoire pour PTabName (on alloue la maximun si unicode).

GetMem(PTabName, (Length(ShTabName) + 1) * SizeOf(WideChar));

try

if IsWindowUnicode(GetDesktopWindow) then

// Si unicode

StringToWideChar(ShTabName, PWideChar(PTabName), (Length(shTabName) + 1))

// Si non unicode

else StrPCopy(PChar(PTabName),ShTabName);

Result := SHObjectProperties(Application.Handle,ShDialogType ,PObjectName, PTabName);

finally

FreeMem(PTabName);

end;

finally

FreeMem(PObjectName);

end;

end;

procedure TMainForm.cdmPrinterPropertiesClick(Sender: TObject);

// Propriétés de l'imprimante par défaut

Var

PrintName,Drv,Port : Array[0..255] Of char;

DeviceMode : Cardinal;

begin

//Printer.SetPrinter();

Printer.GetPrinter(PrintName,Drv,Port,DeviceMode) ;

ObjectPropetiesExecute(PrintName,'',OPF_PRINTERNAME);

end;

end.

#5

أخي وائل انا استخدم تقنية الكانفاس لبناء تقرير ديناميكي.....

في بعض الطابعات تعمل لوحدها تحديد الورق طبعاً أنا احدد عند انشاء مساحة عمل حجم الورق.

ولكن في بعض الطابعات لا تتحدد .....

هل توجد طريقة مجربة لانشاء تقارير ديناميكية تحدد حجم الورق وتعمل على كل الطابعات...

والله ولي التوفيق.

أخوكم أبو النور.

********************************************************************************

آخر وصايا سيدنا محمد صلى الله عليه وسلم:الصلاة الصلاة وما ملكت أيمانكم

66850879_b6e633000d_m.jpg

هاجر اللذائذ وانبـرى ليثـاً بادغـال الشـرا

بـاع الحيـاة رخيـصـة لله والله اشـتـرى

خذو مني فؤادي وامنحوني سلاحي أمتطي صهو المنون

فإني لم أعش لأذوق ذلاً ولا لأذوب في حضن حنون

موقع الفريق الاسلامي المتحد للبرمجة والإلكترونيات

إيميلي هو:Aboalnoor@maktoob.com

ياهو :adnanalabuo@yahoo.com

هوت ميل:AdnanAlabuo@hotmail.com

مدونتي الخاصة

هذا الموضوع مغلق.

مواضيع مشابهة