2012-04-19 28 views
8

Tôi đang cố hiển thị tệp PDF cục bộ trong Trình điều khiển WebBrowser. Tôi không muốn sử dụng Adobe-Libraries, vì chúng không hỗ trợ 64-bit. Bây giờ tôi đã có mã để hiển thị một PDF, nhưng chỉ khi nó không có trên ổ cứng cục bộ. Khi tôi nhấp chuột phải vào WebBrowser-Control và hiển thị Mã nguồn của HTML, tôi đã lưu nó dưới dạng tệp HTML để kiểm tra, nếu HTML-Code có hoạt động đúng không. Vâng, nó hoạt động.Hiển thị tệp PDF cục bộ trong WPF bằng WebBrowser-Control

Cửa sổ của tôi chỉ bao gồm WebControl được tối đa hóa. Tôi nghĩ rằng vấn đề là Cài đặt bảo mật của Internet Explorer cục bộ. Tôi đọc mà một IInternetSecurityManager tùy chỉnh có thể giải quyết vấn đề, nhưng tôi không biết làm thế nào để thực hiện nó ...:/

Tôi đang sử dụng C# với .NET Framework 4.0

Đây là mã của tôi:

void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    {    
     string url = "C:/test.pdf"; 
     string html = "<!-- saved from url=(0014)about:internet -->\n<html>\n<body>\n<embed src=\"" + url + "\" width=\"100%\" height=\"100%\"/>\n</body>\n</html>"; 
     webBrowser.NavigateToString(html); // System.Windows.Controls.WebBrowser 
    } 

Tôi phần "đã lưu từ URL" chỉ hoạt động nếu tôi trực tiếp mở HTML-Code trong IE, vì vậy hãy cho tôi biết phải làm gì, để mã này hoạt động ... Có thể bạn có giải pháp tốt hơn cho vấn đề của tôi. Cảm ơn bạn đã giúp đỡ!

Kính trọng, Chris

Trả lời

14

Chỉ cần sử dụng

webBrowser.Navigate("file:///" + url); 
+4

Trong trường hợp của tôi, hoạt động trên Win7 nhưng nếu tôi chạy ứng dụng của tôi trên Win8.1, các tập tin đang được tải xuống bởi IE. – anthoLB29

+2

Bạn cần một số loại plugin PDF (ví dụ: Adobe Reader) được cài đặt, vì vậy IE có thể hiển thị tệp. Sau đó, nó sẽ không được tải xuống. – chris6523

Các vấn đề liên quan