Tentando usar PDFLib

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Tentando usar PDFLib

Mensagem por DLZ »

Boa tarde
Estou tentando utilizar o PDFLib e até consegui bons progressos...
Só fiquei com algumas dúvidas:

1 - Estou usando opdf:pdfAtSay( cText, Linha, Coluna, .T. ) para "escrever" um texto no pdf.. Notei que o documento inicia no final da página !! ou seja, se eu mandar imprimir na linha 1, ele imprime no rodapé da página !! Não tem como começar no início da página ?

2 - Quanto a configuração da fonte, estou usando opdf:PDFsetfont( CFont, nBold, nSize ).
Só tem como alterar o tamanho da fonte ?? não tem como mexer somente na largura da fonte ?
Só posso configurar Negrito ?? não tem opção de Itálico, subilinhado, etc.. ??

OBS: Estou usando essa lib pq não conheço outra.. Se alguém conhecer algo melhor, poste ai para que eu possa testar..

Se alguém puder me ajudar, ficarei grato
Obrigado.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tentando usar PDFLib

Mensagem por JoséQuintas »

Você pode dar uma olhada na minha classe, fica em harbourdoc.com.br, categoria PDF, ou também pode dar uma olhada no mr print.

No PDF as linhas começam de baixo pra cima.
Seria só usar uma fórmula: Total - linha, 10
E se essa LIB for em pixels ou outra coisa, outra fórmula: Total - ( Linha * Pixels do fonte )
Ou criar uma função pra fazer isso, deixando o fonte menos complicado.Veja os fontes aonde mencionei acima.
Seria algo neste estilo:

Código: Selecionar todos

DrawText( 5, 5, "teste" )
DrawText( 10, 10, 150.00, "@E 999,999,999.99" )

FUNCTION DrawText( nRow, nCol, cText, cPicture, cFont )
   // aqui as fórmulas pra calcular posição no pdf, e usar funções da sua LIB
      RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Tentando usar PDFLib

Mensagem por DLZ »

Bom dia
Sim, já estou fazendo uma fórmula para calcular a linha, sendo que começa de baixo e não de cima... , porém, se eu alterar a fonte durante o documento, a referencia linha,coluna muda... Vou ter relatórios em que uma linha imprime expandido, outra condensado, outra normal outra negrito, etc, etc... sendo assim quando eu trocar de fonte muda a quantidade de linhas por página e assim o cálculo da linha vai resultar em um lugar incorreto.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tentando usar PDFLib

Mensagem por JoséQuintas »

Se quiser trabalhar com linhas/colunas, então vai precisar definir o fonte default, e fazer os cálculos baseados no fonte default.
Se a letra ocupar duas linhas, de qualquer jeito vai usar linha/coluna baseada no fonte original.

Outra opção é adotar milímetros como referência.
Eu fazia isso pra formulários pré-impressos na matricial, pra facilitar.
Era só medir com a régua o formulário e colocar direto no código fonte.

Código: Selecionar todos

@ mmRow( 5 ), mmCol( 10 ) SAY "fddfdfd"

FUNCTION mmRow( nRow )
   // fórmula convertendo mm em linhas
   RETURN nRow

FUNCTION mmCol( nCol )
   // fórmula convertendo mm em colunas
   RETURN nCol
O fonte default seria o equivalente a uma impressora matricial, onde linha/coluna se baseiam no fonte original, independente de compactado ou não.

Código: Selecionar todos

@ 5, 5 say Chr(15) + "texto" + Chr(18)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Tentando usar PDFLib

Mensagem por DLZ »

Uhhhh.. entendi...
Só mais uma dúvida... tem como configurar a fonte para itálico e sublinhado ?
Outra coisa que esqueci de perguntar... não tem como alterar apenas a largura da fonte, sem alterar sua altura ?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tentando usar PDFLib

Mensagem por JoséQuintas »

Nesse caso teria que usar um fonte que seja dobrado só na largura.
E no caso de itálico e negrito é mesma coisa.
Nessas horas é que vemos como os editores de texto facilitam pra nós.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder