Отобразите PDF в [закрытом] приложении WPF

Вы можете использовать try и catch для использования различных сообщений об ошибках браузера. IE и край были замешаны, но я использовал утиную печать от Rob W (на основе этого проекта здесь: https://www.khanacademy.org/computer-programming/i-have-opera/2395080328 ).

var getBrowser = function() {        
    try {
        var e;
        var f = e.width;
    } catch(e) {
        var err = e.toString();

        if(err.indexOf("not an object") !== -1) {
            return "safari";
        } else if(err.indexOf("Cannot read") !== -1) {
            return "chrome";
        } else if(err.indexOf("e is undefined") !== -1) {
            return "firefox";
        } else if(err.indexOf("Unable to get property 'width' of undefined or null reference") !== -1) {
            if(!(false || !!document.documentMode) && !!window.StyleMedia) {
                return "edge";
            } else {
                return "IE";
            }
        } else if(err.indexOf("cannot convert e into object") !== -1) {
            return "opera";
        } else {
            return undefined;
        }
    }
};

26
задан Bobrovsky 17 October 2013 в 09:53
поделиться

5 ответов

Ой. это для приложения winforms. Не для WPF. Я отправлю это так или иначе.

попытка это

private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();
this.axAcroPDF1.Dock = System.Windows.Forms.DockStyle.Fill;
this.axAcroPDF1.Enabled = true;
this.axAcroPDF1.Name = "axAcroPDF1";
this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
axAcroPDF1.LoadFile(DownloadedFullFileName);
axAcroPDF1.Visible = true;
10
ответ дан Mo Patel 28 November 2019 в 06:41
поделиться

Вы могли просто разместить управление веб-браузером на форме и использовать ее для открытия PDF.

существует новое собственное управление WPF "WebBrowser" в.NET 3.51, или Вы могли разместить Windows. Браузер форм в Вашем приложении WPF.

11
ответ дан Guy Starbuck 28 November 2019 в 06:41
поделиться

Следующий код ожидает, что Adobe Reader будет установлен и расширение PDF, которое будет подключено к этому. Это просто выполняет его:

String fileName = "FileName.pdf";
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
process.StartInfo.FileName = fileName;
process.Start();
process.WaitForExit();
8
ответ дан davidsleeps 28 November 2019 в 06:41
поделиться

Проверьте это: http://itextsharp.sourceforge.net/ Вам, вероятно, придется использовать WindowsFormsHost, но так как это - открытый исходный код, Вы могли бы быть в состоянии сделать его немного более изящным в WPF.

-1
ответ дан GEOCHET 28 November 2019 в 06:41
поделиться

Можно получить контроль Acrobat Reader, работающий в приложении WPF при помощи управления WindowsFormHost. У меня есть сообщение в блоге об этом здесь:

http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/

У меня также есть 5-минутный скринкаст того, как я сделал его здесь:

http://www.screencast.com/t/JXRhGvzvB

18
ответ дан 28 November 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: