Вы можете использовать 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;
}
}
};
Ой. это для приложения 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;
Вы могли просто разместить управление веб-браузером на форме и использовать ее для открытия PDF.
существует новое собственное управление WPF "WebBrowser" в.NET 3.51, или Вы могли разместить Windows. Браузер форм в Вашем приложении WPF.
Следующий код ожидает, что Adobe Reader будет установлен и расширение PDF, которое будет подключено к этому. Это просто выполняет его:
String fileName = "FileName.pdf";
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = fileName;
process.Start();
process.WaitForExit();
Проверьте это: http://itextsharp.sourceforge.net/ Вам, вероятно, придется использовать WindowsFormsHost, но так как это - открытый исходный код, Вы могли бы быть в состоянии сделать его немного более изящным в WPF.
Можно получить контроль Acrobat Reader, работающий в приложении WPF при помощи управления WindowsFormHost. У меня есть сообщение в блоге об этом здесь:
http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/
У меня также есть 5-минутный скринкаст того, как я сделал его здесь: