Domanda

Al momento sto cercando di stampare un documento da WPF. Sto utilizzando il browser web perché contiene un controllo Active X, che ha il plugin di Autodesk, che ho bisogno di visualizzare il documento.

Sono consapevole del fatto che WPF non supporta direttamente il browser web, ma ho appena integrato di Windows Form libreria per questo. Sono riuscito a ottenere il codice in esecuzione e anche la stampa, tuttavia il documento che consente di stampare è vuoto.

Non sono sicuro se potrebbe essere un conflitto tra il Windows Form e WPF biblioteca; Sto navigando al documento e solo la stampa una volta che è caricato senza errori gettati.

Ecco il codice che sto usando:

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

Una possibile intoppo potrebbe essere che il controllo Active X non viene permesso di essere carico, qualcuno sa come forzare il controllo deve essere inizializzato.

Qualcuno ha qualche idea su come risolvere questo o un altro metodo di stampa di un Autodesk (.dwf) documento

Grazie in anticipo, SumGuy

È stato utile?

Soluzione

Non proprio una risposta di sorta, ma una soluzione se qualcuno fuori non vuole stampare un file .dwf. Non, utilizzare il nuovo modulo .dwfx. Questo è il nuovo tipo di file Autodesk stanno passando troppo e la sua realtà una forma di XPS che rende le cose abbastanza facile. È possibile caricare in un browser web senza bisogno di Active X o (questo è il modo migliore) utilizzare le librerie XPS in Visual Studio, perché può essere caricato in modo molto semplice in un visualizzatore XPS.

Il codice alla fine ho usato per stampare il file temuto è qui sotto:

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

Come semplice è che ??? Ci sono un sacco di altri modi di farlo utilizzando XPS. È possibile fondamentalmente solo utilizzare il file DWFx come documento XPS

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top