السلام عليكم
هل يوجد طريقة لمعرفة الطابعة الافتراضية في الجهاز الذي يستخدم الweb application و ليس السيرفر
باي لغة بالجافا او vb او #C
اشكركم مقدما
السلام عليكم
هل يوجد طريقة لمعرفة الطابعة الافتراضية في الجهاز الذي يستخدم الweb application و ليس السيرفر
باي لغة بالجافا او vb او #C
اشكركم مقدما
السلام عليكم ورحمة الله وبركاته
هذه الإمكانيات لا تملكها javascript
لتنفيذ مثل هذه العملية ستحتاج إلى ActiveX control أو hosted windows forms control
هل يمكنك إخباري ما الذي تريد عمله بالضبط؟
سبحانك اللهم وبحمدك، أشهد أن لا إله إلا أنت، أستغفرك وأتوب إليك
أشرف صبري
انا مشكلتي اني احاول اطبع عن طريق الكريستال ريبورت و الكريستال ريبورت لازم يشوفه المستخدم و يضغط على زر الطباعة
المطلوب مني اني اخلي الطباعة اتوماتيكيا و ليس بالظغط على أي زر
جرب جمبع الطرق و في طريقة اني اختار اسم الطابعة و اخليها الطابعة الافتراضية للكريستال ريبورت
المشكله انها تختلف من جهاز لجهاز و مستخدم لمستخدم
و احاول احصل كود يطلع اسم الطابعة و يحطها في الكريستال ريبورت
ما يهم ان كان جافا سكريبت او اكتيف اكس المهم حل و نمشي الحال
شكرا
يااااااااااااه
هذه المشكلة بالضبط واجهتني في عملي السابق
crystal reports يستعمل activeX control للطباعة
لقد تفحصت الصفحة التي تقوم بالطباعة (هي صفحة html وستجدها في مجلد aspnet_client) ووجدت أنها تعطي للـ activeX control معطىً اسمه UseDefaultPrinter (أو شئ مثل ذلك، لا أذكر بالضبط فقد كان ذلك منذ زمن بعيد) تعطي هذا المعطى بواحد، ورغم ذلك لا يستخدم ال control الطابعة الإفتراضية ويظهر نافذة اختيار الطابعة
إذا قمت بعمل debug للصفحة التي تحوي التقرير ستلاحظ أنه يستخدم url parameters كي يجعل التقرير يخرج صفحات معينة للهيئة المناسبة للطباعة
الحل الذي فكرت فيه هو استخدام java applet تقوم بإرسال طلب http للصفحة كي تخرج التقرير في صورة pdf ثم أستقبل هذا المستند وأقوم بتحميله بواسطة إحدى الأدوات مفتوحة المصدر المخصصة للتعامل مع ال pdf (يمكنك البحث عنها في sourceForge.net) ثم طباعة المستند على الطابعة الإفتراضية
عمل كل هذا ب java سهل جداً ولكن المشكلة التي أوقفتني وقتها هي أداة التعامل مع ال pdf، كانت تطبع المستند بحروف مشوهة، ولكني تركت الموضوع برمته لإنشغالي في أمور أخرى.
أنا أرى أن هذا الحل هو الصائب للأسباب الآتية:
في النهاية أتمنى لك التوفيق وأرجو منك إخباري بآخر التطورات
سبحانك اللهم وبحمدك، أشهد أن لا إله إلا أنت، أستغفرك وأتوب إليك
أشرف صبري
اشكر ردك اخي الكريم
المشكله ان الوقت ضيق و لا اعرف برمجه ال Activex لقد حاولت لكن لم تضبط معي
الأن احاول ان أجد activex جاهز لاستخدامه
و لا استطيع تغيير لغة البرمجه لطلب العميل لهذه اللغة. المشكله ان احتاج هذه الشغله لطباعة الفاتوره فقط اما باقي التقارير فلا احتاجها
اشكرك مره اخرى
إذن يمكنك تنفيذها كـ hosted windows forms control
وفي هذه الحالة يمكنك كتابته بالـ C# أو بالـ VB.Net ولكنه لن يعمل إلا على internet explorer كما يتطلب وجود .net framework على جهاز العميل وسيستخدم نفس الأسلوب (تحويل التقرير إلى صيغة pdf واستقباله ثم طباعته على الطابعة الإفتراضية)
سبحانك اللهم وبحمدك، أشهد أن لا إله إلا أنت، أستغفرك وأتوب إليك
أشرف صبري
السلام عليكم
وجدت الكود لمعرفة الطابعة عن طريق ال Activex و عند تشغيل ال Activex على الموقع يعمل لكن المشكله في تمرير القيمه في ال Activex لل web form ... هل يوجد طريقة لتمرير القيمه للفورم
هذه الكود و الرجاء لمن يعرف لا يبخل علينا بالمساعده
Public Function MyPrinter() Dim PrintData As Printer Dim defprinterpos% For Each PrintData In Printers ' Add printer name and port to list lstPrinter.AddItem PrintData.DeviceName & " at: " & PrintData.Port ' Check for default printer If PrintData.DeviceName = Printer.DeviceName Then defprinterpos = lstPrinter.NewIndex Next lstPrinter.ListIndex = defprinterpos% DefaultPrinter .Text = Printer.DeviceName End Function