C#在Webbrowser中打开PDF

时间:2013-09-23 11:08:28

标签: c# winforms pdf webbrowser-control

我知道这个问题看似简单,但令我头疼。 我有一个程序从我想要显示PDF格式,这工作正常和花花公子 但是当我想改变pdf时,它将无法正常工作。 该应用程序有两个两个页面,一个用于PDF,另一个用于设计等。 我可以点击“打印”,然后创建一个pdf并加载。 更改pdf时,因为我在第一个选项卡中更改了某些内容,所以它不会删除旧版本,也不会加载新的pdf文件。

这是我的代码:

//The PdfFile variable is the path to the old pdf file
//and file variable is the path to the new pdf file
if (wbPdfViewer != null)
{
    wbPdfViewer.AllowNavigation = true;
    wbPdfViewer.Navigate(new Uri("http://www.google.de")); //this should navigate
    wbPdfViewer.Url = new Uri("http://www.google.de"); //this is just a try 
    bool isallowed = wbPdfViewer.AllowNavigation; //check during debbuging if it is set
    string url = wbPdfViewer.Url.ToString(); //see if it works during debbuging
}

if (pdfViewer.Document != null) //this is an optional viewer ... nevermind that
{
    pdfViewer.Document.Close();
    pdfViewer.Document.Dispose();
}

try
{
    DHIO.File.Delete(PdfFile);
}
catch(Exception ex)
{
    #if DEBUG
      MessageBox.Show("PdfViewer 02002: Couldn't delete PDF file");
    #endif
}

if (wbPdfViewer != null)
{
    GC.Collect();
    if (string.IsNullOrEmpty(file) || !DHIO.File.Exists(file))
        return;

    wbPdfViewer.Navigate(new Uri(file));
    ShowNavigationControls();
    return;
}

正如您所看到的,我想要删除PdfFile并且它不应该在访问中,因为我更改了页面(在更高版本中,google.de被替换为about:blank或其他内容)。

所以我的问题是如何更改URL以便我的程序不再访问pdf文件? 我尝试使用navigationComplete事件,但这不会触发

并且一如既往地感谢

1 个答案:

答案 0 :(得分:1)

wbPdfViewer.Url设置为null