Рубрики
Без рубрики

Добавление и удаление слоев в PDF на Java

В этой статье показано, как добавлять и удалять слои в PDF-документах на Java. Помеченный java, pdf, слой.

Слои PDF позволяют пользователям выборочно скрывать или показывать содержимое, отображаемое на них в PDF-документах. В этой статье мы расскажем, как добавлять слои в PDF-документ, рисовать содержимое на слоях и удалять определенный слой в Java с помощью Free Spire.PDF для библиотеки Java .

Прежде чем приступить к работе, пожалуйста, скачайте бесплатный Spire.PDF для пакета Java через по этой ссылке распакуйте пакет и затем импортируйте Spire.Pdf.jar из папки lib в ваше приложение.

Добавление слоев в PDF-файл

В приведенном ниже примере мы узнаем, как добавить два слоя в PDF-документ и нарисовать содержимое страницы PDF и изображение на слоях.

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.layer.PdfLayer;

import java.awt.*;
import java.awt.geom.Point2D;

public class AddLayers {
    public static void main(String[] args) throws Exception {

       //Create a new PDF document
        PdfDocument target = new PdfDocument();
        //Add a page
        PdfPageBase page = target.getPages().add();

        //Load an existing PDF document
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("Instruction.pdf");
        //Create a template of the first page in the PDF
        PdfTemplate template = pdf.getPages().get(0).createTemplate();

        //Add a layer to the new created PDF
        PdfLayer layer1 = target.getLayers().addLayer("Layer 1");
        PdfCanvas canvas1 = layer1.createGraphics(page.getCanvas());
        //Draw the template to the layer
        canvas1.drawTemplate(template, new Point2D.Float(20,50), PdfPageSize.A4);

        //Add a layer to the new created PDF
        PdfLayer layer2 = target.getLayers().addLayer("Layer 2");
        PdfCanvas canvas2 = layer2.createGraphics(page.getCanvas());
        //Draw an image to the layer
        canvas2.drawImage(PdfImage.fromFile("Hydrangeas.jpg"), new Point2D.Float(330,125), new Dimension(200, 130));

        //Save the resultant document
        target.saveToFile("result.pdf");
    }
}

Удалить определенный слой

В приведенном ниже примере показано, как удалить определенный слой вместе с его содержимым из PDF-документа.

import com.spire.pdf.PdfDocument;

public class DeleteLayer {
    public static void main(String[] args){
        //Load the PDF
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("result.pdf");

        //Remove the layer named "Layer 1" and its content from the PDF
        pdf.getLayers().removeLayer("Layer 1", true);

        //Save the resultant document
        pdf.saveToFile("deleteLayer.pdf");
        pdf.close();
    }
}

Оригинал: “https://dev.to/eiceblue/add-and-delete-layers-in-pdf-in-java-53an”