Frage

Ich bin versucht derzeit, ein Dokument von WPF zu drucken. Ich bin mit dem Web-Browser, weil es ein aktives x-Steuerelement enthält, die das autodesk Plugin hat, die ich brauche, um das Dokument anzuzeigen.

Ich bin mir bewusst, dass WPF nicht direkt Web-Browser unterstützt, aber ich habe integriert nur die Windows-Bibliothek Formulare für diese. Ich habe es geschafft, den Code zum Laufen zu bringen und sogar Druck, aber das Dokument, das druckt leer ist.

Ich bin mir nicht sicher, ob es möglicherweise ein Konflikt zwischen der Windows Forms-Bibliothek und WPF sein könnte; Ich bin auf das Dokument navigieren und nur den Druck, sobald es ohne geworfen Fehler geladen werden.

Hier ist der Code verwende ich:

    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();
    }

Eine mögliche hitch könnte sein, dass die aktive x-Steuerung Last zu sein, nicht erlaubt ist, weiß jemand, wie man die Kontrolle zu zwingen, initialisiert werden.

Hat jemand irgendwelche Ideen, wie dieses Problem zu lösen oder ein anderes Verfahren zum Drucken ein autodesk (DWF) Dokument

Vielen Dank im Voraus, SumGuy

War es hilfreich?

Lösung

Nicht wirklich eine Antwort der Art, sondern eine Lösung, wenn jemand aus einer DWF-Datei drucken möchte. Sie nicht, verwenden Sie die neue Form .dwfx. Dies ist der neue Dateityp Autodesk wechseln zu und es ist eigentlich eine Form von XPS, die Dinge ganz einfach macht. Sie können es in einen Web-Browser laden, ohne aktiv x zu benötigen OR (das ist der bessere Weg) die XPS-Bibliotheken in Visual Studio verwenden, weil es sehr einfach in einen XPS-Viewer geladen werden kann.

Der Code, den ich die gefürchtete Datei schließlich verwendet drucken ist unter:

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);

Wie einfach ist das ??? Es gibt viele andere Möglichkeiten, es mit XPS tun. Sie können im Grunde nur die DWFx-Datei als XPS-Dokument verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top