0

我有一个 pdf 查看器,为了示例,它显示从列表框中选择的文件名。这是一个简单的表单,带有一个列表框、axAcroPDF 和文本框,用于确认正确的文件路径。代码如下,文件已经放在Debug文件夹的pdfs文件夹中:

using System;
using System.Windows.Forms;

namespace pdf_viewer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "pdfs\\" + listBox1.SelectedItem.ToString();
            textBox1.Text = path;
            InitializeAdobe(path);
        }

        private void InitializeAdobe(string filePath)
        {

                axAcroPDF1.LoadFile(filePath);
                axAcroPDF1.src = filePath;
                axAcroPDF1.setShowToolbar(false);
                axAcroPDF1.setView("Fit");
                axAcroPDF1.setLayoutMode("SinglePage");
                axAcroPDF1.Show();

        }
    }
}

一切正常,但有几个问题:

  • 第一次循环浏览文件时,它会在窗口中正确显示,但如果您返回一个条目,第二次它会在右侧显示工具栏,尽管这在代码中被禁用。工具栏占据了窗口的大部分。
  • 当你关上窗户时,它需要很长时间才能关闭,这对我来说表明有很多家务处理正在进行。关于为什么会发生这种情况的任何线索。

除此之外:

  • 我是否需要代码中的 .LoadFile 和 .src 语句,因为它们都是独立工作的,但一个比另一个更可取。似乎没有改变上述问题。此方法是从另一个 Stack Overflow 问题中提取的。

谢谢

PS 自从最初发布以来,我尝试在 webBrowser 窗口中显示,但是在您第二次选择条目时显示的工具栏面板会发生完全相同的事情。代码如下:

webBrowser1.Url = new Uri(path);
4

1 回答 1

0

很长一段时间后重新访问了这个问题并在这里找到了答案 Disable Adob​​e Reader toolbar from my ActiveX

它似乎在 axAcroPDF 和 webbrowser 窗口中工作。对于 axAcropdf,在不显示工具栏的情况下显示 pdf 的代码是(使用问题示例):

this.axAcroPDF1.src = filePath + "#toolbar=0";
            this.axAcroPDF1.setView("Fit");
            this.axAcroPDF1.setLayoutMode("SinglePage");
            this.axAcroPDF1.Show();

对于网络浏览器窗口

InitializeAdobe(path);    
webBrowser1.Url = new Uri(path + "#toolbar=0");
于 2020-06-13T23:03:18.047 回答