2009-07-20 67 views
1

我正在嘗試從WPF打印文檔。我正在使用Web瀏覽器,因爲它包含一個活動的x控件,它具有需要查看文檔的autodesk插件。從WPF打印dwf/dwfx文件

我知道WPF不直接支持Web瀏覽器,但我剛剛爲此集成了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(); 
    } 

一個可能順利可能是因爲Active X控件沒有被允許爲負載,沒有人知道如何強制進行初始化控制。

有誰有關於如何解決這個任何想法或打印歐特克(的.dwf)文件提前

感謝, SumGuy

+2

你是否嘗試過使用.NET 3.5 SP1的預封裝WPF WebBrowser控件? http://blogs.msdn.com/llobo/archive/2008/06/12/wpf-webbrowser.aspx 對於這個問題,你是否嘗試過直接從Internet Explorer打印? – IanGilham 2009-07-20 15:20:36

回答

1

不是真的各種各樣的答案的另一種方法,但如果解決方案任何人都不想打印.dwf文件。不要使用新的.dwfx格式。這是Autodesk正在切換的新文件類型,它實際上是XPS的一種形式,它使事情變得非常簡單。您可以將其加載到Web瀏覽器中,而不需要活動的x OR(這是更好的方法)在Visual Studio中使用XPS庫,因爲它可以非常簡單地加載到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文檔