Как удалить или отключить события гиперссылки из файла PDF? - PullRequest
2 голосов
/ 23 апреля 2009

Я могу отобразить PDF-файл с byte[] в asp.net.

Проблема в том, что он содержит гиперссылки, и я хочу отключить или удалить эти события гиперссылок.

Ответы [ 2 ]

1 голос
/ 19 октября 2012

Docotic.Pdf , библиотека, с которой я работаю, может использоваться для поиска гиперссылок в PDF-файлах и их удаления.

Вот пример кода, который делает именно это:

public static void RemoveHyperlinks(string inputFile, string outputFile)
{
    using (PdfDocument doc = new PdfDocument(inputFile))
    {
        foreach (PdfPage page in doc.Pages)
        {
            for (int i = 0; i < page.Widgets.Count; i++)
            {
                PdfWidget widget = page.Widgets[i];
                PdfActionArea actionArea = widget as PdfActionArea;
                if (actionArea != null)
                {
                    PdfUriAction linkAction = actionArea.Action as PdfUriAction;
                    if (linkAction != null)
                    {
                        page.Widgets.RemoveAt(i);
                        i--;
                    }
                }
            }
        }

        doc.Save(outputFile);
        System.Diagnostics.Process.Start(outputFile);
    }
}

Обратите внимание, что некоторые зрители могут обнаруживать гиперссылки из текста и по-прежнему представлять их как интерактивные области, даже если в самом PDF-файле нет ссылок, определенных. Например, Adobe Reader с определенными настройками может сделать именно это.

P.S. Я знаю, что этот вопрос старый, но, возможно, мой ответ принесет пользу новым посетителям.

1 голос
/ 23 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...