Adicionar carimbos de texto em PDF programaticamente

Adicionar Carimbo de Texto com Java

Aspose.PDF para Java fornece a classe TextStamp para adicionar um carimbo de texto em um arquivo PDF. A classe TextStamp fornece métodos necessários para especificar o tamanho da fonte, estilo da fonte e cor da fonte, etc., para o objeto de carimbo. Para adicionar um carimbo de texto, primeiro você precisa criar um objeto Document e um objeto TextStamp usando os métodos necessários. Depois disso, você pode chamar o método addStamp(..) da classe Page para adicionar o carimbo no documento PDF.

O trecho de código a seguir mostra como adicionar um carimbo de texto no arquivo PDF.

package com.aspose.pdf.examples;

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

public class ExampleStampingImage {
    // O caminho para o diretório dos documentos.
    private static String _dataDir = "/home/admin1/pdf-examples/Samples/";

    public static void AddTextStamp() {
        // abrir documento
        Document pdfDocument = new Document("input.pdf");
        // criar carimbo de texto
        TextStamp textStamp = new TextStamp("Sample Stamp");
        // definir se o carimbo é plano de fundo
        textStamp.setBackground(true);
        // definir origem
        textStamp.setXIndent(100);
        textStamp.setYIndent(100);
        // girar carimbo
        textStamp.setRotate(Rotation.on90);
        // definir propriedades do 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());
        // adicionar carimbo a uma página específica
        pdfDocument.getPages().get_Item(1).addStamp(textStamp);
        // salvar documento de saída
        pdfDocument.save("TextStamp_output.pdf");
    }

Definir alinhamento para o objeto TextStamp

Adicionar marcas d’água a documentos PDF é um dos recursos frequentemente exigidos e o Aspose.PDF para Java é totalmente capaz de adicionar marcas d’água de imagem, bem como de texto. A classe TextStamp fornece o recurso de adicionar carimbos de texto sobre o arquivo PDF. Recentemente, houve uma necessidade de suportar o recurso de especificar o alinhamento do texto ao usar o objeto TextStamp. Portanto, para atender a essa necessidade, introduzimos o método setTextAlignment(..) na classe TextStamp. Usando este método, você pode especificar o alinhamento horizontal do texto.

Os trechos de código a seguir mostram um exemplo de como carregar um documento PDF existente e adicionar TextStamp sobre ele.

    public static void DefineAlignmentTextStamp() {
        // Instanciar objeto Document com arquivo de entrada
        Document pdfDocument = new Document("input.pdf");
        // instanciar objeto FormattedText com string de exemplo
        FormattedText text = new FormattedText("This");
        
        // adicionar nova linha de texto ao FormattedText
        text.addNewLineText("is sample");
        text.addNewLineText("Center Aligned");
        text.addNewLineText("TextStamp");
        text.addNewLineText("Object");
        // criar objeto TextStamp usando FormattedText
        TextStamp stamp = new TextStamp(text);
        // especificar o Alinhamento Horizontal do carimbo de texto como Centralizado
        stamp.setHorizontalAlignment(HorizontalAlignment.Center);
        // especificar o Alinhamento Vertical do carimbo de texto como Centralizado
        stamp.setVerticalAlignment(VerticalAlignment.Center);
        // especificar o Alinhamento Horizontal do Texto do TextStamp como Centralizado
        stamp.setTextAlignment(HorizontalAlignment.Center);
        // definir margem superior para o objeto stamp
        stamp.setTopMargin(20);
        // adicionar carimbo a todas as páginas do arquivo PDF
        pdfDocument.getPages().get_Item(1).addStamp(stamp);
        
        // salvar documento de saída
        pdfDocument.save("TextStamp_output.pdf");
    }

Preencher Texto de Contorno como Carimbo em Arquivo PDF

Implementamos a configuração do modo de renderização para cenários de adição e edição de texto. Para renderizar texto de contorno, por favor crie um objeto TextState e defina RenderingMode como TextRenderingMode.StrokeText e também selecione a cor para a propriedade StrokingColor. Posteriormente, vincule o TextState ao carimbo usando o método BindTextState().

O trecho de código a seguir demonstra como adicionar Texto de Preenchimento de Contorno:

   public static void FillStrokeTextAsStampInPDFFile(){
        // Criar objeto TextState para transferir propriedades avançadas
        TextState ts = new TextState();
        
        // Definir cor para o contorno
        ts.setStrokingColor(Color.getGray());
        
        // Definir modo de renderização do texto
        ts.setRenderingMode (TextRenderingMode.StrokeText);
        
        // Carregar um 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));

        // Vincular TextState
        stamp.bindTextState(ts);
        // Definir origem X,Y
        stamp.setOrigin(100, 100);
        stamp.setOpacity (5);
        stamp.setBlendingSpace (BlendingColorSpace.DeviceRGB);
        stamp.setRotation (45.0F);
        stamp.setBackground(false);
        // Adicionar Carimbo
        fileStamp.addStamp(stamp);
        fileStamp.save(_dataDir + "ouput_out.pdf");
        fileStamp.close();
    }