Pregunta

Actualmente estoy tratando de imprimir un documento desde WPF. Estoy usando el navegador web, ya que contiene un control Active X que tiene el plugin de Autodesk, que necesito para ver el documento.

Soy consciente de que WPF no admite directamente navegador web pero yo sólo he integrado el Windows Forms biblioteca para este. Me las he arreglado para obtener el código en ejecución e incluso la impresión, sin embargo, el documento que pueda imprimirse está en blanco.

No estoy seguro de si podría haber un conflicto entre la biblioteca de Windows Forms y WPF; Estoy navegando con el documento y sólo la impresión una vez que se ha cargado sin errores generados.

Aquí está el código que estoy 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 posible enganche podría ser que el control Active X no se le permite ser la carga, ¿alguien sabe cómo forzar el control para ser inicializado.

¿Alguien tiene alguna idea acerca de cómo resolver este u otro método de impresión de una Autodesk (.dwf) documento

Gracias de antemano, SumGuy

¿Fue útil?

Solución

No es realmente un tipo de respuesta, pero una solución si alguien por qué quiere imprimir un archivo .dwf. No, utilizar la nueva forma .dwfx. Este es el nuevo tipo de archivo de Autodesk están cambiando también y es en realidad una forma de XPS que hace las cosas bastante fácil. Puede cargarlo en un navegador web sin necesidad de Active X O (esta es la mejor manera) utilizar las bibliotecas en Visual Studio XPS, ya que se puede cargar de manera muy sencilla en un visor de XPS.

El código que finalmente se utiliza para imprimir el archivo temida es el siguiente:

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

¿Qué tan fácil es eso ??? Hay un montón de otras maneras de hacerlo usando XPS. Puede básicamente sólo tiene que utilizar el archivo DWFx como un documento XPS

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top