2017-10-12 11 views
0

J'essaie de créer une application Windows Form pour afficher des PDF et des images dans un navigateur Web. Les images sont mises à l'échelle du format de webbrowser, dans le code ci-dessous. Cependant, lorsque je tente de charger un fichier pdf, sa me donne l'erreur:Mise à l'échelle des images dans WebBrowser et affichage de l'erreur PDF C#

« Une exception de type « System.NullReferenceException » a eu lieu dans AddMetadataToDocuments.exe mais n'a pas été traitée dans le code utilisateur ».

code:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    webBrowser1.Document.Body.SetAttribute("scroll", "no"); 
    var img = webBrowser1.Document.GetElementsByTagName("img") 
         .Cast<HtmlElement>().FirstOrDefault(); 
    var w = img.ClientRectangle.Width; 
    var h = img.ClientRectangle.Height; 
    img.Style = string.Format("{0}: 100%", w > h ? "Width" : "Height"); 
} 

quelqu'un Hope peut vous aider!

+0

double possible de [Qu'est-ce qu'une NullReferenceException, et comment puis-je y remédier?] (Https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – haindl

Répondre

0

Je l'ai fixé en utilisant un simple, instruction if qui vérifie si le fichier se termine par JPG ou PNG, si oui: exécuter la méthode de mise à l'échelle, sinon (pdf) ne font rien:

if (allFiles[index].EndsWith("JPG") || allFiles[index].EndsWith("PNG")) 
{ 
    webBrowser1.Document.Body.SetAttribute("scroll", "no"); 
    var img = webBrowser1.Document.GetElementsByTagName("img") 
         .Cast<HtmlElement>().FirstOrDefault(); 
    var w = img.ClientRectangle.Width; 
    var h = img.ClientRectangle.Height; 
    img.Style = string.Format("{0}: 100%", w > h ? "Width" : "Height"); 
}