目前,我正在试图打印从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文档

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top