وعليكم السلام
شكراً على الهدية
لدي تعليق : أنت تستخدم هذة الطريقة
كود :
Panel1.DrawToBitmap(bm, New Rectangle(0, 0, Me.Panel1.Width, Me.Panel1.Height))
e.Graphics.DrawImage(bm, 50, 60)
أي بما معناة تقوم بأخذ صورة عن الـ Panel وكل ما تحتوية من كنترولات ومن ظمنهم الـ DataGridView
ثم تأخذ هذة الصورة وترسلها للطابعة .
النتيجة التقرير عبارة عن صورة
ممكن تستفيد من هذة الطريقة في أمور أخرى ولكن ليس التقارير أبداً.
من الرديئ جداً طباعة التقرير على شكل صورة
الأهم في الموضوع كلة جودة الطباعة ،
إذا أردت أن تطبع تقرير بهذا الشكل فأنت تحتاج إلى أن يكون حجم الـ Panel ( عرض : 4,962 pixel / إرتفاع : 7,014 pixel ) بدقة طباعة ( resolution :
600 )
4,962÷
600= "8.27 إنش وهو عرض ورقة A4
7,014÷
600= "11.69 إنش وهو إرتفاع ورقة A4
تخيل Panel بهذا الحجم
أنت ترى التقرير ظاهر على الشاشة , والشاشة دقتها (
96 DPI في الغالب ) أي طباعة بدقة 96 أكيد 100% ستكون طباعة رديئة , أقل دقة لطباعة جيدة هي 300 DPI
جميع أنواع الأدوات التي تقوم بطباعة التقارير تعتمد على تقنية الـ
SVG بمعنى (
Scalable Vector Graphics )
نبذة عن الـSVG لكن بالـhtml : فقط لرؤية كيف يتم تكبير الأشياء بدون أن تفقد جودتها :
كود :
<html>
<body>
<h1>My first SVG</h1>
<svg width="1000" height="1000">
<circle cx="210" cy="210" r="200" stroke="green" stroke-width="2" fill="yellow" />
</svg>
</body>
</html>
My first SVG.html (الحجم : 183 بايت / التحميلات : 49)
افتح الملف وكبر لترى عدم تدهور الشكر عند التكبير
الوورد أوفس , الكريستال ريبورت , الريبورت فيور , كلها تعتمد على هذة التقنية , فقط يمكن عمل هذة العناصر بلغة الـ ++C
الرسومات بالـ SVG هي في الأصل بتنسيق XML
اي بما معناة لا توجد صورة أصلاً
محرك الـSVG يقوم بإنشاء الصورة من المعلومات الموجودة على شكل XML
لذلك عندما تقوم بتكبير الصورة أو تصغيرها الـSVG يقوم بإعادة رسم كل عنصر موجود من جديد وبـ (Dimension) جديد حسب الـ Dpi لذلك نراها واضحة جداً وأطرافها حادة جداً .
النصوص والخطوط كلها عناصر كل حرف أو كلمة أو جملة تعتبر عنصر ويتم رسمها بشكل مستقل ويتم رسم جميع العناصر حتى تكتمل عملية الرسم وتتكون وثيقة بدقة عالية
يمكن طباعة صور SVG بجودة عالية مهما كان الـ resolution
ملفات SVG هي XML خالص , ولكن النقطة المهمة في المحرك الذي ينشيء الصورة من البيانات الموجودة في ملف الـ XML
هذا المشروع كمثال للتعليم مقبول , لكن كطريقة لطباعة التقارير طبعاً هذة ليسة طريقة صحيحة .
لا غنى أبداً عن أدوات طباعة التقارير , إلى إذا كنت تستطيع إستخدام تقنية الـ SVG , أو إذا كنت تريد طباعة شيء صغير أو طباعة صورة فوتوغرافية , أو أن تقوم أنت بالرسم على وثيقة الطباعة بأدوات الـGraphics
تحياتي لك أخي viv
وإن شاء الله نشوف المنتدى مليان بالأمثلة التي تقوم بها مشكوراً .