C # itext 7.1.4 (выпуск NuGet), похоже, неправильно анализирует заголовки OCG / layer.
Код C # ниже должен прочитать pdf, распечатать все заголовки слоев, отключить видимость слоя и сохранить его в файле dest.
Пример pdf файла: https://docdro.id/qI479di
using iText.Kernel.Pdf;
using System;
namespace PDFSetOCGVisibility
{
class Program
{
static void Main(string[] args)
{
var src = @"layer-example.pdf";
var dest = @"layer-example-out.pdf"; ;
PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
var Catalog = pdf.GetCatalog();
var ocProps = Catalog.GetOCProperties(false);
var layers = ocProps.GetLayers();
foreach(var layer in layers)
{
var title = layer.GetTitle();
Console.WriteLine($"title: {title ?? "null"}");
layer.SetOn(false);
}
pdf.Close();
}
}
}
Ожидаемый результат:
title: Layer 1
title: Layer 2
Фактический результат:
title: null
title: null
Запись файла с отключенными слоями работает нормально, но заголовки слоев всегда равны нулю.