Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode (17) :: Comparando Implementações do Desafio "Letter Combinations of a Phone Number" em Harbour e TOTVS TLPP

_Créditos das imagens: ChatGPT_ # LeetCode (17) :: Comparando Implementações do Desafio "Letter Combinations of a Phone Number" em Harbour e TOTVS TLPP O desafio [**"Letter Combinations of a Phone Number"**](https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/) (Combinações de Letras de um Número de Telefone) é um problema clássico de programação que envolve a geração de todas as combinações possíveis de letras que um número de telefone pode representar, com base no mapeamento tradicional dos teclados de telefone. Abaixo, comparamos duas implementações desse desafio: uma em **Harbour** e outra em **TOTVS TLPP** (TOTVS Language Plus Plus). ## O Desafio Dada uma string contendo dígitos de 2 a 9, retorne todas as combinações possíveis de letras que esses dígitos podem representar. O mapeamento dos dígitos para as letras é o mesmo dos teclados de telefone tradicionais: - 2: "abc" - 3: "def" - 4: "ghi" - 5: ...

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

Comentários

  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

Postar um comentário

Postagens mais visitadas