BlackTDN Search

segunda-feira, 19 de dezembro de 2011

PDFCreator :: Gerando Marca D´agua

Existem duas maneiras para a geração de Marcas D´agua em arquivos PDF  usando o PDFCreator.

A primeira  é definindo o texto a ser impresso como “Marca D´agua”

image

Ao gerarmos um relatório, usando como impressora o PDFCreator, teremos:

image

A segunda opção, para a geração da Marca D´agua, é usar o Script (em VB) desenvolvido por Frank Heindörfer e que se encontra em Scripts\RunProgramAfterSaving\AddWatermarkToPDF.vbs da instalação padrão do PDFCreator. Esse script utiliza o aplicativo pdftk.exe do PDFLabs para inserir a Marca D´agua. Seu uso é bem simples.

Primeiro, baixe o programa pdftk.exe e descompacte-o, de preferência, em \windows\system32  para que possa ser executado via linha  de comando sem a necessidade de mapeamento do “path”.

  1. Abra o PDFCreator e em “Ações” selecione a “aba” “Ações depois de Salvar”;
  2. image 
  3. Abra o “script” para edição e ;
  4. image
  5. modifique os valores das constantes PathToPdftk (indica o diretório de instalação do pdftk.exe)  e WatermarkPDF (indica o arquivo PDF com a marca d´agua a ser utilizado) e salve as alterações;
  6. image
  7. Com isso, todo documento PDF gerado, usando PDFCreator, conterá a marca d´agua definida em WatermarkPDF. Ex.:
  8. image 

Uma outra forma de gerar a marca d´agua, agora sem usar o PDFCreator, é a utilização direta do programa pdftk.exe via linha de comando. Digite pdtfk –help para as opções de linha de comando ou consulte o modelo em VBScript para saber como implementá-lo usando, por exemplo WaitRun ou WaitRunSrv.

Ex.:

Para a inclusão da Marca D´agua no Client.

#INCLUDE "PROTHEUS.CH"
User Function WatermarkPDF( cPDFFile , WatermarkPDF , cPDWatermarkPDF )

    Local cCMD := ""
    cCMD := "pdftk.exe"
    cCMD += " "
    cCMD += cPDFFile
    cCMD += " "
    cCMD += "background"
    cCMD += " "
    cCMD += WatermarkPDF
    cCMD += " "
    cCMD += "output"
    cCMD += " "
    cCMD += cPDWatermarkPDF

Return( WaitRun( cCMD ) )   

Para a inclusão da Marca D´agua no Server

#INCLUDE "PROTHEUS.CH"
User Function WatermarkPDF( cPDFFile , WatermarkPDF , cPDWatermarkPDF )

    Local cCMD := ""
    cCMD := "pdftk.exe"
    cCMD += " "
    cCMD += cPDFFile
    cCMD += " "
    cCMD += "background"
    cCMD += " "
    cCMD += WatermarkPDF
    cCMD += " "
    cCMD += "output"
    cCMD += " "
    cCMD += cPDWatermarkPDF

Return( WaitRunSrv( cCMD , .T. , "c:\windows\system32" ) )

Para maiores informações sobre a WaitRunSrv consulte: Protheus :: Executando aplicações externas no "Server" utilizando WaitRunSrv

[]s
иαldσ dj

Um comentário:

  1. Ótima dica Naldo,
    Aproveitando...
    Tem alguma maneira de colocar o nome do arquivo PDF no cabeçalho de cada página referente a cada PDF vinculado?

    Atenciosamente,
    Otávio Sparrenberger

    ResponderExcluir