Goldwyn1995 Ответов: 2

Как загрузить pdf-файл в форму с помощью C#?


С помощью приведенного ниже кода мне удалось загрузить pdf-файл с помощью adobe reader внутри visual studio toolbox. Согласно коду, который я пробовал, он открывает проводник при запуске формы, и я должен выбрать файл из проводника, чтобы открыть его в форме tge. Но что мне нужно, так это то, что pdf-файл должен открываться автоматически, проверяя источник.Как это сделать? Пожалуйста помочь.

Что я уже пробовал:

private void button1_Click(object sender, EventArgs e)  
{  
        OpenFileDialog dlg = new OpenFileDialog();    
        dlg.Filter = "pdf files (*.pdf) |*.pdf;";  
        dlg.ShowDialog();  
        if (dlg.FileName != null)  
        {                  
            axAcroPDF1.LoadFile(dlg.FileName);  
        }  
}

Richard MacCutchan

Что вы имеете в виду под этим "pdf должен открываться автоматически"?
Как ваше приложение узнает, какой файл выбрать?

Goldwyn1995

Да, я хочу знать, как настроить свою форму, чтобы открыть pdf-файл из источника, который я установил.Мне нужны коды для этого.Вы поняли, что я имею в виду?

Richard MacCutchan

Точно так же, как вы делаете это выше. Передайте имя файла в axAcroPDF1.LoadFile() метод.

Goldwyn1995

Попробовать это. Помогите мне с правильным форматом кода. Нет необходимости открывать диалоговое окно файла?Просто axAcroPDF1.LoadFile(@"Z:\MY проект. PDF");
строка кода при загрузке формы?

Richard MacCutchan

Это может сработать, или вы можете сделать это после завершения метода Form_Load. Попробуйте несколько тестов, чтобы увидеть, что работает.

0x01AA

1.) может быть, только деталь, но вместо проверки dlg.FileName != null вы должны проверить if (dlg.ShowDialog() == DialogResult.OK)
2.) Что произойдет, если вы позвоните axAcroPDF1.LoadFile() с именем файла, из которого вы на 100% уверены, что оно существует?

Goldwyn1995

axAcroPDF1.LoadFile() . Я уже пробовал, но ничего не вышло.

0x01AA

Взгляните сюда, может быть, у вас появятся какие-нибудь идеи: c# - попытка открыть PDF - файл с помощью AxAcroPDFLib- переполнение стека[^]

Goldwyn1995

Я попробовал это сделать. Ничего не помогало. Все они хотят МВт, чтобы выбрать от открытия PDF файлов.

0x01AA

Вы пробовали что-то подобное?

axAcroPDF.src=file;
axAcroPDF1.LoadFile(file);

Goldwyn1995

Говорит мне, что инициализация и ни один файл не открывается.

0x01AA

Вы должны показать весь код, связанный с тем, как вы размещаете axAcroPDF. Похоже также, что вся эта штука, как вы ее используете, кажется обесценившейся/унаследованной.

Goldwyn1995

@0x01AA я тоже изменил эту первую вещь. На самом деле это не имеет никакого значения в коде.

Goldwyn1995

Теперь я попробовал и это.
строка файла=Н@"z:\my . формат PDF";
диалоговое окно openfiledialog openFileDialog1=новое диалоговое окно openfiledialog();
if (openFileDialog1.ShoeDialog()==Система. Окна. Формы. свойство DialogResult. ОК)
{
axAcroPDF1.LoadFile(файл);
//axAcroPDF.src=файл;
}
}

плохо оформленный с тех пор, как я набрал его здесь. Я новичок в c#. Так..

Goldwyn1995

Когда я использую эту единственную строку
axAcroPDF. src=@"z:\MY проект. PDF";
Форма говорит мне об инициализации. Но файл не открывается .

Richard MacCutchan

Да потому что тебе нужно позвонить LoadFile открыть его.

Goldwyn1995

Можете ли вы написать полный код?Называются командами также. Тот же результат.

Richard MacCutchan

Это полный код в соответствии с вашим вопросом. Я никогда не использовал этот контроль, поэтому я не знаю, чего может не хватать.

Goldwyn1995

{Строка "файл" =Н@"z:\my . формат PDF";
аксакропдф. loadfile(файл);
axacropdf1.src=файл;}
Инициализация того же результата

2 Ответов

Рейтинг:
2

RickZeeland

Смотрите ответ здесь: Метод LoadFile() объекта AxAcroPDFLib.AxAcroPDF не может использоваться для загрузки уже открытых PDF файлов[^]

Одно из предложений таково:

Цитата:
Вместо LoadFile() мы можем использовать свойство "src" элемента управления.


0x01AA

Вы читали это более или менее внимательно? Не решение, я думаю... поэтому 3

RickZeeland

Ну, это, кажется, сработало для него, кроме того, это дает некоторые другие подсказки ...

RickZeeland

Ах, я вижу, вы уже упоминали об этом, почему же вы сразу этого не сказали :)

0x01AA

Никаких проблем вообще нет, и я думаю, что нейтральный 3 не должен причинить вам вреда ;)

RickZeeland

Это больно, очень больно, особенно от тебя. :(

0x01AA

:(

0x01AA

Теперь я закрою свой акк потому что я не был честен

Рейтинг:
1

Maciej Los

Согласно документация[^] LoadFile() метод должен выполнять эту работу, но(!) он может больше не поддерживаться в Adobe Reader DC (я не эксперт!). Видеть: c# - попытка открыть PDF - файл с помощью AxAcroPDFLib- переполнение стека[^]. Перейдите по ссылке, чтобы найти обходной путь.

Я бы настоятельно рекомендовал задать этот вопрос на Сообщество Поддержки Adobe[^].