문제

현재 WPF에서 문서를 인쇄하려고합니다. 웹 브라우저는 문서를보아야하는 Autodesk 플러그인이있는 활성 X 컨트롤이 포함되어 있으므로 웹 브라우저를 사용하고 있습니다.

WPF가 웹 브라우저를 직접 지원하지는 않지만 Windows Forms 라이브러리를 통합했습니다. 코드를 실행하고 인쇄 할 수 있었지만 인쇄물이 비어 있습니다.

Windows Forms 라이브러리와 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();
    }

가능한 히치는 활성 X 컨트롤이로드 될 수 없다는 것입니다. 누구나 컨트롤을 초기화하도록 강제하는 방법을 알고 있습니까?

Autodesk (.DWF) 문서를 인쇄하는이 방법을 해결하는 방법에 대한 아이디어가 있습니까?

미리 감사드립니다, Sumguy

도움이 되었습니까?

해결책

실제로 일종의 답변이 아니라 누군가가 .dwf 파일을 인쇄하려는 경우 솔루션입니다. 새 양식 .dwfx를 사용하지 마십시오. 이것은 새로운 파일 유형 Autodesk도 전환하고 있으며 실제로 XPS 형태로 일을 쉽게 할 수 있습니다. Active 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