Wie für die Anzeige von PDF im web-browser-Steuerelement anstelle des Acrobat Reader öffnen
ich bin mit dem Acrobat Reader 11.0.3 und Fenster 7, Visual studio 2012 und bereits aktiviert Acrobat Reader Verwalten Addon
und Folgen WPF webbrowser öffnet PDF-Datei in Adobe reader-Fenster
immer noch Fehler nach dem Versuch zwei Methoden
Navigation zu der Webseite wurde abgebrochen
auch wenn Sie sich mit administrator-Konto zu öffnen WPF-Programm
private void CheckAndFixWebBrowserRenderingEngine()
{
RegistryKey baseRegistryKey = Registry.LocalMachine;
string renderingEngineSubKeyString = @"SOFTWARE";
//64bit operationg systems have another registry path
if (Environment.Is64BitOperatingSystem)
{
renderingEngineSubKeyString += @"\Wow6432Node";
}
renderingEngineSubKeyString += @"\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";
//var assemblyValueKey = System.IO.Path.GetFileName(App.ResourceAssembly.Location);
var assemblyValueKey = System.IO.Path.GetFileName(System.Windows.Application.ResourceAssembly.Location);
var renderingEngingeValue = 9999; //check other values below
try
{
RegistryKey sk1 = baseRegistryKey.CreateSubKey(renderingEngineSubKeyString);
var value = sk1.GetValue(assemblyValueKey);
if (value == null || value.ToString() != renderingEngingeValue.ToString())
{
sk1.SetValue(assemblyValueKey, renderingEngingeValue);
//LogHandler.Instance.Add(string.Format("Did update webbrowser rendering engine from {0} to 9000.", value == null ? "[missing]" : value));
}
}
catch (Exception ex)
{
//LogHandler.Instance.Add("Could not check webbrowser rendering engine in registry.");
//LogHandler.Instance.Add(ex.ToString(), Logging.LoggingPriorities.Exception);
}
/*
9999 (0x270F)
Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive.
9000 (0x2328)
Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
8888 (0x22B8)
Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.
8000 (0x1F40)
Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
7000 (0x1B58)
Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
*/
}
public ReportForm()
{
this.formID = "Test Report";
//base.Initialization();
InitializeComponent();
CheckAndFixWebBrowserRenderingEngine();
String PDFPath = @"C:\Users\LAB-User2\Downloads\Elimination_Methods_in_Polynomial_Computer_Alge(Bookos.org).pdf";
WebBro1.Navigate("file:///" + PDFPath);
Methode 2
ich habe auch versucht, eine andere Methode, die Sie auf Verweis hinzufügen, windowformintegration und UserControl verwenden von Windows forms-und es funktioniert nur in eine eigenständige WPF-kleines Projekt
wenn die Integration dieser in meinem großen Projekt, es hat oben genannten Fehler
String PDFPath = @"C:\Users\LAB-User2\Downloads\Elimination_Methods_in_Polynomial_Computer_Alge(Bookos.org).pdf";
//WebBro1.Navigate("file:///" + PDFPath);
webBrowser1.Navigate("file:///" + PDFPath);
private System.Windows.Forms.WebBrowser webBrowser1;
<WindowsFormsHost Margin="1" x:Name="windowsFormsHost1" Height="600" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="1000"/>
var uc = new UserControl1();
this.windowsFormsHost1.Child = uc;
application.UI.CreateNewForm("Test Report", new Client.Reporting.Pages2.ClientStatement.ReportForm());
public partial class ReportForm : BaseForm
public void CreateNewForm(string title, BaseForm form)
mw.CreateNewForm(title, form);
public class BaseMainWindow : MetroWindow
{
public virtual void CreateNewForm(string title, BaseForm form)
{
}
update: es Fragen zu ermöglichen, Inhalte blockieren und grauen Bildschirm in internet explorer in html-Datei integrieren, bevor in big-Projekt
<html>
<body>
<object
classid="clsid:ca8a9780-280d-11cf-a24d-444553540000" id="pdf1"
type="application/pdf"
data="C:\Users\LAB-User2\Downloads\Elimination_Methods_in_Polynomial_Computer_Alge(Bookos.org).pdf"
style="width: 100%; height: 100%">
<param name="src" "value="C:\Users\LAB-User2\Downloads\Elimination_Methods_in_Polynomial_Computer_Alge(Bookos.org).pdf"></param>
</object>
</body>
</html>
update: beim ausführen von code im großen WPF-Projekt, zeigt es ein rotes Kreuz
update : nach der Aktualisierung von html funktioniert es in der unabhängigen html-Datei, jedoch integriert im WPF großes Projekt, es versäumt zu zeigen, und zeigen nur ein rotes Kreuz
String temphtml = "<!-- saved from url=(0016)http://localhost --><body style=\"border: 0; margin: 0; padding: 0\"><object classid=\"clsid:ca8a9780-280d-11cf-a24d-444553540000\" id=\"pdf1\" type=\"application/pdf\" data=\"02_LAB_LeaveApplication.pdf\" style=\"width: 100%; height: 100%; border: 0; margin: 0; padding: 0\"></object><script>window.onload = function(){ window.focus();pdf1.setActive(); }</script></body>";
System.IO.File.WriteAllText(@"C:\Users\LAB-User2\Desktop\vpfs-ivpfs-client\iVPFS_Client\Application\bin\Debug\a.html", temphtml);
this.WebBro1.Navigate(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "a.html"));
aktualisieren, wenn das Projekt ausgeführt wird, heruntergeladen aus dem codeproject, zeigt es eine Fehlermeldung, und dann kann pdf anzeigen und haben ein paar mal leer, wenn öffnen, dann kopiere ich die codes und die Bibliothek zu einem kleinen WPF-Projekt und ausgeführt, es habe auch Fehler kommen heraus und zeigen nur eine weiße leere https://docs.google.com/file/d/0Bxs_ao6uuBDUeV8yREVBOExSbW8/edit?usp=sharing
InformationsquelleAutor ControlPoly | 2013-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie erzeugen eine temp HTML-Datei einbetten, die gewünschte PDF-Datei:
Interessant zu machen, arbeiten mit einem lokalen (file://) PDF-Dokument, ich musste beides angeben Daten Attribut und src param. Wenn es serviert wurde, die über http von localhost, die Daten allein war genug.
UPDATE: ich konnte nicht sagen, warum dies nicht funktioniert für die OP, so dass ich gekocht habe eine sehr grundlegende C# - WebBrowser-Projekt demo ' Ing. Es funktioniert relativ zuverlässig in meiner Umgebung (Win8, IE10, Acrobat Reader 11.0.3).
UPDATE: ich glaube, ich verstehe, warum dies geschieht. Ihr Projekt verwendet WPF, während meine Probe verwendet Winforms. Sorry, ich habe nicht bemerkt das in den ersten Platz. WPF WebBrowser hat eine andere Sicherheits-Modell, es läuft im IE der Geschützte Modus standardmäßig.
Mit WPF WebBrowser, ich habe es geschafft, loszuwerden, der der Aufforderung (Hinweis:
<!-- saved from url=(0016)http://localhost -->
), aber ich darf bestätigen Sie den Acrobat-Reader der Steuerung hängt nur das laden der Datei jedes jetzt und dann:Acrobat Reader control bekannt ist haben Probleme mit dem Geschützten Modus. Anstatt zu versuchen, einen workaround finden für diese, kann es leichter sein, um host Acrobat Reader ActiveX-Steuerelement direkt in Ihre WPF-Projekt. Hier ist, wie es getan werden kann:
http://www.codeproject.com/Articles/380019/Using-Adobe-Reader-in-a-WPF-app
http://hugeonion.com/2009/04/06/displaying-a-pdf-file-within-a-wpf-application/
Könnten Sie das bestätigen .PDF-und .HTML im selben Ordner? Die oben genannten getestet, funktioniert bei mir unter Win8, IE10 und Acrobat Reader 11.0.3.
ich kann bestätigen, dass pdf-und html im selben Ordner
Versuchen Sie, diese direkt link
der Wechsel von
<embed />
zu<object />
hat es für mich. Es zeigte sich ein Zertifikat Fehler war einfach zu beheben.<embed />
hat nicht alle Fehler angezeigt, es hing einfach.InformationsquelleAutor noseratio