Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Удалить или скрыть слой PDF с помощью ABCPdf?

Автор вопроса: Junior DeveloperОтветов: 3

Можно ли удалить или скрыть слой из PDF с помощью ABCPdf или другого фреймворка?

pdfpdf-generationabcpdfocg

Ответы

Ответ 1 · рейтинг 3 · AffineMesh

В следующем примере C# показано, как можно удалить слой 2 страницы 1:

Doc theDoc = new Doc();
theDoc.Read("source.pdf");
int thePages = theDoc.GetInfoInt(theDoc.Root, "Pages");
int thePage = theDoc.GetInfoInt(thePages, "Page 1");
int theLayer = theDoc.GetInfoInt(thePage, "Content 2");
theDoc.Delete(theLayer);

Ответ 2 · Joshua Drake

Или, возможно, вы искали Flatten() функция?

Ответ 3 · OnceUponATimeInTheWest

ABCpdf содержит пример проекта под названием OCGLayers. В этом проекте показано, как идентифицировать и редактировать все элементы слоя.

Например:

        Properties props = Properties.FromDoc(_doc, false);
        Page page = (Page)_doc.ObjectSoup[_doc.Page];
        Reader reader = Reader.FromPage(props, page);
        List<OptionalContent.Layer> layers = reader.GetLayers();
        foreach (OptionalContent.Layer layer in layers) {
            if (layer.Visible == false) {
                if (reader == null)
                    reader = Reader.FromPage(props, page);
                Reader.Redact(ref reader, layer);
            }
        }
        UpdateLayers();
        UpdatePreview();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы