打印从一个WPF DWF / DWFx文件
题
目前,我正在试图打印从WPF文档。我使用的web浏览器,因为它包含其具有的Autodesk插件,我需要查看的文档的Active X控件。
我知道,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控件不被允许为负载,没有人知道如何强制到被初始化的控制。
没有人有关于如何解决这个任何想法或打印的Autodesk的另一种方法(的.dwf)文件
在预先感谢 SumGuy
解决方案
不是真的各种各样的答案,但如果有人出不想要打印的.dwf文件的解决方案。不要使用新形式.dwfx。这是新的文件类型的Autodesk是开关也和它的实际XPS的形式,这使得事情很容易。可以将其加载到web浏览器,而无需有源x或(这是更好的方式)的使用在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文档
不隶属于 StackOverflow