.NET открывает PDF в winform без внешних зависимостей

Не простой способ, но вы можете использовать библиотеку python-igraph, https://igraph.org/ . Я использовал его из R, но Python должен быть похожим. Смотрите простой пример ниже. Основная проблема со всем этим инструментом, вы должны тщательно выбрать небольшой подграф для рисования.

Установите его:

#>pip install python-igraph

Простейшая визуализация:

g = GraphFrame (vertices, edges)
from igraph import *
ig = Graph.TupleList(g.edges.collect(), directed=True)
plot(ig)

14
задан PeteT 14 February 2009 в 18:29
поделиться

6 ответов

Элемент управления ActiveX, установленный с Acrobat Reader, должен работать, или отбросить его на пути разработчик или использовать что-то вроде этого.

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

2
ответ дан 1 December 2019 в 12:27
поделиться

Я не уверен, что Вы называете 'зависимостью', так как необходимо будет всегда полагаться на некоторый внешний код для рендеринга PDF, если Вы не связываете целый PDF, представляющий источник в Вашем проекте.

Существуют некоторые коммерческие рендереры и очень немного свободных.

Если Вы хотите избежать зависимостей, которые Вы не можете связать затем, возможно, Вы могли взглянуть на исходный код для SumatraPDF, средство просмотра OpenSource PDF для окон, которое использует MuPDF.
Существует также Poppler, механизм визуализации, который использует Xpdf в качестве механизма визуализации. Все они являются большими, но они потребуют, чтобы изрядное количество обязательства сделать заставило их работать и взаимодействовать через интерфейс с .NET.

Большинством других библиотек с открытым исходным кодом только пользуются для создания и управления страницами PDF, и я не знаю никого, который на самом деле делает рендеринг; это - такая тяжелая проблема решить право.

Можно все еще хотеть рассмотреть использование GhostScript как интерпретатора, потому что рендеринг страниц является довольно простым процессом.
Недостаток состоит в том, что Вы должны будете или повторно упаковать его для установки его с приложением или сделаете его предпосылкой (или по крайней мере часть процесса установки).
Это не сложная задача, и это, конечно, легче, чем необходимость массажировать другие механизмы визуализации в .NET.

Взгляните на это ТАК вопрос, на который я ответил сегодня.
Это содержит еще некоторую информацию и ссылку на некоторый рабочий код .NET, который я отправил на другом форуме несколько месяцев назад.

8
ответ дан 1 December 2019 в 12:27
поделиться

Я изучил бы Читателя Foxit как легкую альтернативу Adobe Reader. Это состоит из единственного .exe файла, который Вы можете связать своим приложением и таким образом не должны требовать никакой установки. Согласно их EULA это позволяется, пока Ваше приложение не установлено на мобильных устройствах. Все, что необходимо было бы сделать, запустить средство чтения как новый процесс, указывая на соответствующий PDF. Очевидно, оборотная сторона к этому подходу - это, не будет интегрирован в интерфейс Вашего приложения.

5
ответ дан 1 December 2019 в 12:27
поделиться

Сначала необходимо сослаться на Adobe Reader ActiveX Control

Библиотека типов управления браузером Adobe Acrobat 1.0

%programfiles&\\Общий Files\Adobe\Acrobat\ActiveX\AcroPDF.dll

Затем Вы просто перетаскиваете его в свой Windows Form от Панели инструментов.

И используйте некоторый код как это для инициализации элемента управления ActiveX.

private void InitializeAdobe(string filePath)
{
    try
    {
        this.axAcroPDF1.LoadFile(filePath);
        this.axAcroPDF1.src = filePath;
        this.axAcroPDF1.setShowToolbar(false);
        this.axAcroPDF1.setView("FitH");
        this.axAcroPDF1.setLayoutMode("SinglePage");
        this.axAcroPDF1.Show();
    }
    catch (Exception ex)
    {
        throw;
    }
}

Удостоверьтесь, когда Ваши завершения Формы, что Вы избавляетесь от элемента управления ActiveX

this.axAcroPDF1.Dispose();
this.axAcroPDF1 = null;

иначе Acrobat мог бы быть разбросан, лежа.

5
ответ дан 1 December 2019 в 12:27
поделиться

Существует свободная библиотека PDF. Это главным образом редактирует содержание, но это могло бы помочь.

0
ответ дан 1 December 2019 в 12:27
поделиться

Это - предположение.

Путем рендеринг браузера PDF в нем с плагином. Я не уверен, требует ли это, чтобы приложение было установлено.

Можно использовать читателя Foxit ИЛИ Суматру PDF.
И, можно разместить управление браузером на winform.

0
ответ дан 1 December 2019 в 12:27
поделиться