بسم الله الرحمن الرحيم
اللهم صلي على محمد وآل محمد ..
كيف الحال يامبرمجين عساكم بخير :lol:
بصراحة انا من أمس إلى الصباح اليوم جالس ابحث عن حل للمشكلة ولا حصلت حل .. :wacko:
السالفة كلها .. هي اني ابي اطبع ملف text فقط ! يعني عندي في ملف تكست مثلا اسمه ali.txt وفيه كم كلمه داخله .. او سطر من الكلام .. وابي اطبعة من خلال صفحة الـ ASP.NET .. بس بشرط انه يكون مرفوع على السيرفر الي هو سيرفر IIS 5 OR 6 ...
انا طبعا اعرف كود الطابعة .. الكود شغال على الدوت نت يعني في بيئة البرمجة والتطوير الطابعة تعمل .. ومافيها مشكلة .. ولكن .. اذا اخذت ملفات المشروع ووضعتها على السيرفر IIS الي في جهازي .. لا يقوم بالطباعة , ولا يظهر رسالة خطأ لي .. يعني تكون الصفحة في هيئة التحميل , ولا يستجيب للطباعة ..
وهذا هو كود الطابعة التالي الطباعة من ملف تكست
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Drawing.Printing;
public partial class _Default : System.Web.UI.Page
{
private Font verdana10Font;
private StreamReader reader;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string filename = "E:\\data\\Mange_Counter.txt";
//Create a StreamReader object
reader = new StreamReader(filename);
//Create a Verdana font with size 10
verdana10Font = new Font("Verdana", 10);
//Create a PrintDocument object
PrintDocument pd = new PrintDocument();
//Add PrintPage event handler
pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);
//Call Print Method
pd.Print();
//Close the reader
if (reader != null)
reader.Close();
}
private void PrintTextFileHandler(object sender, PrintPageEventArgs ppeArgs)
{
//Get the Graphics object
Graphics g = ppeArgs.Graphics;
float linesPerPage = 0;
float yPos = 0;
int count = 0;
//Read margins from PrintPageEventArgs
float leftMargin = ppeArgs.MarginBounds.Left;
float topMargin = ppeArgs.MarginBounds.Top;
string line = null;
//Calculate the lines per page on the basis of the height of the page and the height of the font
linesPerPage = ppeArgs.MarginBounds.Height /
verdana10Font.GetHeight(g);
//Now read lines one by one, using StreamReader
while (count < linesPerPage &&
((line = reader.ReadLine()) != null))
{
//Calculate the starting position
yPos = topMargin + (count *
verdana10Font.GetHeight(g));
//Draw text
g.DrawString(line, verdana10Font, Brushes.Black,
leftMargin, yPos, new StringFormat());
//Move to next line
count++;
}
//If PrintPageEventArgs has more pages to print
if (line != null)
{
ppeArgs.HasMorePages = true;
}
else
{
ppeArgs.HasMorePages = false;
}
}
}اتمنى اذا احد مرت عليه هذه السالفة وهي عدم استجابة الطابعة :D اذا كانت تعمل على الـ IIS .. على انه كما قلت انه في الـ Microsoft Visual Web Developer 2005 Express Edition او في الفيجوال سيتديوا.. عندما اسوي اختبار في داخل البرنامج الطابعة تعمل .. وكل شيء تمام ... ولكن عندما اعرفه على الـ IIS لا تستجيب !
ياخبراء .. انتظر ردكم ... :P
تحياتي لكم :wub:
