طباعة ملف DWF / DWFX من WPF
سؤال
أحاول حاليا طباعة مستند من WPF. أنا أستخدم متصفح الويب لأنه يحتوي على عنصر تحكم Active X الذي يحتوي على البرنامج المساعد Autodesk الذي أحتاج إلى عرض المستند.
أنا أدرك أن WPF لا يدعم مستعرض الويب مباشرة لكنني قمت فقط بدمج مكتبة نماذج Windows لهذا الغرض. لقد تمكنت من الحصول على رمز قيد التشغيل وحتى الطباعة، ولكن المستند الذي يطبع فارغا.
لست متأكدا مما إذا كان يمكن أن يكون تعارضا بين مكتبة نماذج Windows و WPF؛ أنا أتال إلى المستند والطباعة فقط بمجرد تحميلها دون أخطاء ألقيت.
إليك الرمز الذي أستخدمه:
private void btnPrint_Click(object sender, RoutedEventArgs e)
{
System.Windows.Forms.WebBrowser w = new System.Windows.Forms.WebBrowser();
Uri uri = new Uri("C:\\BOS-BD-4518-000.dwg.dwf");
w.Navigate(uri);
w.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(w_DocumentCompleted);
}
void w_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
System.Windows.Forms.WebBrowser w = (System.Windows.Forms.WebBrowser)sender;
w.Print();
}
يمكن أن تكون إحدى العقبة المحتملة أن عنصر التحكم X النشط لا يسمح بتحميله، هل يعرف أحد كيفية إجبار التحكم في التحكم فيه.
هل لدى أي شخص أي أفكار حول كيفية حل هذه الطريقة أو طريقة أخرى لطباعة مستند Autodesk (.dwf)
شكرا مقدما، Sumguy
المحلول
ليس حقا إجابة من نوع ما ولكن حل إذا كان أي شخص يرغب في طباعة ملف .dwf. لا، استخدم النموذج الجديد .dwfx. هذا هو نوع الملف الجديد Autodesk يتحول أيضا، وفي الواقع شكل من أشكال XPS التي تجعل الأمور سهلة للغاية. يمكنك تحميلها في متصفح الويب دون الحاجة إلى X Active X أو (هذه هي الطريقة الأفضل) استخدم مكتبات XPS في Visual Studio لأنه يمكن تحميله ببساطة ببساطة في عارض XPS.
الرمز الذي استخدمته في النهاية لطباعة الملف المروع أدناه:
private PrintQueue printQueue;
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
if (pDialog.ShowDialog() == true)
PrintSystemJobInfo xpsPrintJob = printQueue.AddJob(v.FileName, v.FilePath, false);
ما مدى سهولة ذلك ؟؟؟ هناك الكثير من الطرق الأخرى للقيام بذلك باستخدام XPS. يمكنك فقط استخدام ملف DWFX كوثيقة XPS