Работа с PDF-слоями с использованием Java

Aspose.PDF for Java раскрывает слои PDF через Layer API на каждой странице. Вы можете создавать группы альтернативного контента, изменять их поведение и экспортировать или уплощать их содержимое при необходимости.

Добавление слоёв на страницу PDF

  1. Создайте новый PDF Document.
  2. Добавьте Page в документ.
  3. Создайте и настройте необходимые объекты Layer на странице.
  4. Сохраните результирующий PDF Document.
public static void addLayers(Path outputFile) {
    try (Document document = new Document()) {
        Page page = document.getPages().add();

        Layer layer = new Layer("oc1", "Red Line");
        layer.getContents().add(new SetRGBColorStroke(1, 0, 0));
        layer.getContents().add(new MoveTo(500, 700));
        layer.getContents().add(new LineTo(400, 700));
        layer.getContents().add(new Stroke());
        page.getLayers().add(layer);

        document.save(outputFile.toString());
    }
}

Полный пример создает три отдельных слоя с красным, зелёным и синим содержимым линий.

Блокировка слоя

  1. Откройте исходный PDF в объекте Document.
  2. Получите доступ к нужной странице Page и её коллекции слоёв Layer.
  3. Заблокируйте нужный слой Layer.
  4. Сохраните обновлённый PDF Document.
public static void lockLayer(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Page page = document.getPages().get_Item(1);
        if (!page.getLayers().isEmpty()) {
            Layer layer = page.getLayers().getFirst();
            layer.lock();
            document.save(outputFile.toString());
        }
    }
}