Adicionar Carimbos de Texto em PDF programaticamente
Adicionar Carimbo de Texto com Java
Aspose.PDF para PHP via Java fornece a classe TextStamp para adicionar um carimbo de texto em um arquivo PDF. O TextStamp class fornece os 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.
// Abrir documento
$document = new Document($inputFile);
$pages = $document->getPages();
$colors = new Color();
// criar carimbo de texto
$textStamp = new TextStamp("Carimbo de Exemplo");
// definir se o carimbo é de fundo
$textStamp->setBackground(true);
// definir origem
$textStamp->setXIndent(100);
$textStamp->setYIndent(100);
// rotacionar carimbo
$textStamp->setRotate((new Rotation())->On90);
// definir propriedades do texto
$fontRepository = new FontRepository();
$fontStyles = new FontStyles();
$textStamp->getTextState()->setFont($fontRepository->findFont("Arial"));
$textStamp->getTextState()->setFontSize(14);
$textStamp->getTextState()->setFontStyle($fontStyles->Bold | $fontStyles->Italic);
$textStamp->getTextState()->setForegroundColor($colors->getGreen());
// adicionar carimbo a uma página específica
$pages->get_Item(1)->addStamp($textStamp);
// Salvar documento de saída
$document->save($outputFile);
$document->close();
Definir alinhamento para o objeto TextStamp
Adicionar marcas d’água a documentos PDF é um dos recursos frequentemente solicitados e o Aspose.PDF para PHP via Java é totalmente capaz de adicionar marcas d’água de imagem, bem como marcas d’água de texto. A classe TextStamp fornece o recurso para 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.
// Abrir documento
$document = new Document($inputFile);
$pages = $document->getPages();
$colors = new Color();
// instanciar objeto FormattedText com string de exemplo
$text = new FormattedText("This");
// adicionar nova linha de texto ao FormattedText
$text->addNewLineText("é exemplo");
$text->addNewLineText("Alinhado ao Centro");
$text->addNewLineText("Carimbo de Texto");
$text->addNewLineText("Objeto");
// criar carimbo de texto
$textStamp = new TextStamp($text);
// especificar o Alinhamento Horizontal do carimbo de texto como Alinhado ao Centro
$textStamp->setHorizontalAlignment((new HorizontalAlignment)->getCenter());
// especificar o Alinhamento Vertical do carimbo de texto como Alinhado ao Centro
$textStamp->setVerticalAlignment((new VerticalAlignment())->getCenter);
// especificar o Alinhamento Horizontal do Texto do TextStamp como Alinhado ao Centro
$textStamp->setTextAlignment((new HorizontalAlignment)->getCenter());
// definir margem superior para o objeto carimbo
$textStamp->setTopMargin(20);
// adicionar carimbo a uma página específica
$pages->get_Item(1)->addStamp($textStamp);
// Salvar documento de saída
$document->save($outputFile);
$document->close();
Preencher Texto de Contorno como Carimbo no 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, crie um objeto TextState e defina RenderingMode para TextRenderingMode.StrokeText e também selecione a cor para a propriedade StrokingColor. Mais tarde, vincule TextState ao carimbo usando o método bindTextState().
O trecho de código a seguir demonstra a adição de Texto de Contorno Preenchido:
// Crie um objeto TextState para transferir propriedades avançadas
$ts = new TextState();
// Defina a cor para o contorno
$ts->setStrokingColor((new Color())->getGray());
// Defina o modo de renderização do texto
$ts->setRenderingMode(TextRenderingMode::$StrokeText);
// Carregue um documento PDF de entrada
$fileStamp = new PdfFileStamp(new Document($inputFile));
$stamp = new Stamp();
$stamp->bindLogo(
new FormattedText("PAID IN FULL",
(new Color())->getGray(), "Arial",
facades_EncodingType::$WinAnsi,
true, 78));
// Vincular TextState
$stamp->bindTextState($ts);
// Defina a origem X,Y
$stamp->setOrigin(100, 100);
$stamp->setOpacity (5);
$stamp->setBlendingSpace(BlendingColorSpace::$DeviceRGB);
$stamp->setRotation (45.0);
$stamp->setBackground(false);
// Adicionar Carimbo
$fileStamp->addStamp($stamp);
$fileStamp->save($outputFile);
$fileStamp->close();