Añadir sellos de texto en PDF programáticamente

Añadir Sello de Texto con Java

Aspose.PDF para Java proporciona la clase TextStamp para añadir un sello de texto en un archivo PDF. La clase TextStamp proporciona métodos necesarios para especificar tamaño de fuente, estilo de fuente y color de fuente, etc., para el objeto de sello. Para agregar un sello de texto, primero necesitas crear un objeto Document y un objeto TextStamp usando métodos requeridos. Después de eso, puedes llamar al método addStamp(..) de la clase Page para agregar el sello en el documento PDF.

El siguiente fragmento de código muestra cómo agregar un sello de texto en el archivo PDF.

package com.aspose.pdf.examples;

import com.aspose.pdf.*;
import com.aspose.pdf.facades.*;
import com.aspose.pdf.facades.Stamp;

public class ExampleStampingImage {
    // La ruta al directorio de documentos.
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";

    public static void AddTextStamp() {
        // abrir documento
        Document pdfDocument = new Document("input.pdf");
        // crear sello de texto
        TextStamp textStamp = new TextStamp("Sello de Ejemplo");
        // establecer si el sello está en el fondo
        textStamp.setBackground(true);
        // establecer origen
        textStamp.setXIndent(100);
        textStamp.setYIndent(100);
        // rotar sello
        textStamp.setRotate(Rotation.on90);
        // establecer propiedades de texto
        textStamp.getTextState().setFont(FontRepository.findFont("Arial"));
        textStamp.getTextState().setFontSize(14.0F);
        textStamp.getTextState().setFontStyle(FontStyles.Bold);
        textStamp.getTextState().setFontStyle(FontStyles.Italic);
        textStamp.getTextState().setForegroundColor(Color.getGreen());
        // agregar sello a una página en particular
        pdfDocument.getPages().get_Item(1).addStamp(textStamp);
        // guardar documento de salida
        pdfDocument.save("TextStamp_output.pdf");
    }

Definir alineación para el objeto TextStamp

Agregar marcas de agua a documentos PDF es una de las características más demandadas, y Aspose.PDF para Java es completamente capaz de agregar marcas de agua de Imagen, así como de Texto. La clase TextStamp proporciona la función para agregar sellos de texto sobre el archivo PDF. Recientemente, ha habido un requisito para admitir la función de especificar la alineación del texto al usar el objeto TextStamp. Así que, para cumplir con este requisito, hemos introducido el método setTextAlignment(..) en la clase TextStamp. Al usar este método, puedes especificar la alineación horizontal del texto.

Los siguientes fragmentos de código muestran un ejemplo de cómo cargar un documento PDF existente y agregar TextStamp sobre él.

    public static void DefineAlignmentTextStamp() {
        // Instanciar objeto Document con el archivo de entrada
        Document pdfDocument = new Document("input.pdf");
        // instanciar objeto FormattedText con una cadena de ejemplo
        FormattedText text = new FormattedText("This");
        
        // agregar nueva línea de texto a FormattedText
        text.addNewLineText("is sample");
        text.addNewLineText("Center Aligned");
        text.addNewLineText("TextStamp");
        text.addNewLineText("Object");
        // crear objeto TextStamp utilizando FormattedText
        TextStamp stamp = new TextStamp(text);
        // especificar la alineación horizontal del sello de texto como centrado
        stamp.setHorizontalAlignment(HorizontalAlignment.Center);
        // especificar la alineación vertical del sello de texto como centrado
        stamp.setVerticalAlignment(VerticalAlignment.Center);
        // especificar la alineación horizontal del texto de TextStamp como centrado
        stamp.setTextAlignment(HorizontalAlignment.Center);
        // establecer el margen superior para el objeto sello
        stamp.setTopMargin(20);
        // agregar sello a todas las páginas del archivo PDF
        pdfDocument.getPages().get_Item(1).addStamp(stamp);
        
        // guardar documento de salida
        pdfDocument.save("TextStamp_output.pdf");
    }

Rellenar texto con contorno como sello en archivo PDF

Hemos implementado la configuración del modo de renderizado para escenarios de adición y edición de texto. Para renderizar texto con contorno, por favor crea un objeto TextState y establece RenderingMode a TextRenderingMode.StrokeText y también selecciona un color para la propiedad StrokingColor. Más tarde, enlaza TextState al sello usando el método BindTextState().

El siguiente fragmento de código demuestra cómo agregar texto con relleno y contorno:

   public static void FillStrokeTextAsStampInPDFFile(){
        // Crear objeto TextState para transferir propiedades avanzadas
        TextState ts = new TextState();
        
        // Establecer color para el contorno
        ts.setStrokingColor(Color.getGray());
        
        // Establecer modo de renderizado de texto
        ts.setRenderingMode (TextRenderingMode.StrokeText);
        
        // Cargar un documento PDF de entrada
        PdfFileStamp fileStamp = new PdfFileStamp(new Document(_dataDir + "input.pdf"));

        Stamp stamp = new Stamp();
        stamp.bindLogo(new FormattedText("PAID IN FULL", java.awt.Color.GRAY, "Arial", EncodingType.Winansi, true, 78));

        // Enlazar TextState
        stamp.bindTextState(ts);
        // Establecer origen X,Y
        stamp.setOrigin(100, 100);
        stamp.setOpacity (5);
        stamp.setBlendingSpace (BlendingColorSpace.DeviceRGB);
        stamp.setRotation (45.0F);
        stamp.setBackground(false);
        // Agregar sello
        fileStamp.addStamp(stamp);
        fileStamp.save(_dataDir + "ouput_out.pdf");
        fileStamp.close();
    }