PDA

View Full Version : چاپ فایل word



BandeKHoda
چهارشنبه 21 آبان 1393, 14:06 عصر
سلام
من میخوام فایل های word که در Document Library هستن رو چاپ کنم
به صورتی که بعد از انتخاب فایل و زدن یک دکمه، فایل مستقیما به چاپگر ارسال بشه.

حدود سه هفته هست که روش کار میکنم، راه های زیادی تست کردم، هرکدوم یه مشکلی دارن
دیوانه شدم دیگه :گیج:

BandeKHoda
چهارشنبه 21 آبان 1393, 14:08 عصر
نمونه یکی از کدها

public static string Print(string url, string printer) {
string ans = "";
try
{
object varFileName = string.Format(url);
object varFalseValue = false;
object varTrueValue = true;
object varMissing = Type.Missing;
Microsoft.Office.Interop.Word.Application varWord;
Microsoft.Office.Interop.Word.Document varDoc;


try
{
varWord = new Microsoft.Office.Interop.Word.Application();
}
catch (Exception ex) { return ex.Message; }// "word app error"
try
{
varWord.ActivePrinter = string.Format(printer);
}
catch (Exception ex) { return "PrinterError"; }


try
{
varDoc = varWord.Documents.Open(ref varFileName, ref varMissing, ref varFalseValue, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing);
varDoc.Activate();
}
catch (Exception ex) { return "FileError"; }




varDoc.PrintOut(ref varMissing, ref varFalseValue, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing);


object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNo tSaveChanges;
varDoc.Close(ref doNotSaveChanges, ref varMissing, ref varMissing);
varWord.Quit(ref varMissing, ref varMissing, ref varMissing);


}
catch (Exception varE)
{
ans = varE.Message.ToString();
}


return ans;
}

BandeKHoda
چهارشنبه 21 آبان 1393, 14:19 عصر
کد بالا مشکلات فنی خیلی ریزی داره، مثل مشکل دسترسی اجرا کننده Office com component

البته با Word Automation Service میشه به XPS تبدیل و چاپ کرد
ولی خیلی کنده و عملا قابل استفاده نیست

BandeKHoda
شنبه 01 آذر 1393, 13:00 عصر
سلام به همه
اکی شد
با همین کد و اندکی تغییر یک وب سرویس نوشتم و دستری مدیر رو به کامپوننت آفیس دادم