-
Total de ítens
107 -
Registro em
-
Última visita
Sobre TiagoTecchio
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
TiagoTecchio's Achievements
-
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
OK, grato pelas informações. Usamos o Delphi XE6, que não tinha o FR como opção. Neste caso usamos uma versão do FR (a 4) adquirida uns anos antes. -
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Existem as opções, mas tentei desativar, ativar, enfim, combinei todas elas e não funciona. É um bug da versão e que foi resolvido nas versões posteriores. -
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Bom dia Victor, Grato pela resposta. Era isso mesmo que eu queria saber. Então a versão mais atualizado do FastReport resolve o problema que estou tendo com versão 4. Vamos providenciar a atualização durante o ano. Obrigado e um bom dia. -
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Bom dia, Para tentar exemplificar o problema, gerei dois PDFs. Tamanho da página é A4: 1 - gerado pela exportação padrão do FastReport (256 kbytes) 2 - outro gerado pelo SynPDF (4 kbytes) Anexei também o arquivo fp3, referente ao relatório em si. São apenas dois memos com um texto justificado, o primeiro com tags HTML para negritar, e outro sem. fast.fp3 gerado-pelo-fastreport.pdf gerado-pelo-synpdf.pdf -
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Olá Renato, Já tentei todas estas opções, combinações entre elas e infelizmente o PDF continua inchado. -
Exportação PDF FastReport
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Olá Alexandre, Grato pela dica. Já tinha verificado a implementação o FPDF que o Daniel criou, é bem interessante. Mas converter os nossos relatórios (ou pelo menos estes contratos) para uma nova engine está fora do radar, pois é muita coisa. Usamos o FastReport extensivamente, gosto bastante dele devido a flexibilidade e velocidade, só este problema do tamanho do PDF que está me incomodando. -
TiagoTecchio started following Possível ajuste registro boletos BB via API e Exportação PDF FastReport
-
Boa tarde colegas, Estou usando o FastReport 4 para gerar os relatórios no meu software e a exportação para PDF gera arquivos gigantes quando utilizo o recurso AllowHTMLTags do objeto TfrxMemoView. Acontece que preciso destacar algumas palavras em negrito pois trata-se de um contrato com múltiplas páginas. Uma vez gerado o PDF, percebe-se que o FastReport criou uma imagem da página contendo o texto formatado (não é possível selecionar o texto, por exemplo). Tentei utilizar a classe SynPDF (Synopse PDF Engine) como alternativa: ela até funciona, o PDF fica minúsculo e a qualidade é excelente porém a borda direita dos textos fica truncada (imagem anexada). Tentei entrar em contato com o desenvolvedor para ver uma possível solução mas fui solenemente ignorado A pergunta: as versões mais novas do FastReport resolvem este problema do tamanho?
-
Bom dia Victor, OK, sem problemas. Eu suspeitei que haveria algum efeito colateral. Vou adaptar para passar o sequencial com havia feito inicialmente. Grato pela atenção.
-
Boa tarde Alexandre, Anexei o arquivo ajustado. Conforme a regra da montagem do nosso número via API (https://apoio.developers.bb.com.br/referency/post/5f4fb7f5b71fb5001268ca44) ACBrBoletoW_BancoBrasil_API.pas
-
Bom dia, Gostaria de sugerir um ajuste no registro de boletos via API no Banco do Brasil. Nos prints anexados (método RequisicaoJson na unit ACBrBoletoW_BancoBrasil_API) o nosso número passado para o body JSON está sendo remontado pela função MontarCampoNossoNumero. Utilizo o AcbrBoleto somente realizar o registro e o meu sistema já montou o nosso número de 17 posições previamente, mas o componente está reformatando, o que me causou alguns transtornos. Para contornar tive que fazer um copy ao passar o nosso número para o componente TAcbrTitulo. var doc: TACBrTitulo; begin doc := acbrGerador.CriarTituloNaLista doc.NossoNumero := Copy(qrRec.FieldByName('NOSSONRO').AsString, 8, 10) A minha sugestão é caso a propriedade NossoNumero esteja preenchida, o componente utilize este valor para alimentar o campo JSON numeroTituloCliente ao invés de tentar remontar o nosso número utilizando o convênio. Seria possível? Ou causaria efeitos indesejados?
-
Redirect no Synapse + Cloudflare
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Bom dia, Grato pela dica. Fiz alguns testes usando o seu exemplo e consegui tratar/contornar o redirect do Cloudflare. Precisei ajustar esta parte: If sURLRedirect <> '' Then HTTP.HTTPMethod('POST', sURLRedirect); Para esta (recriando o objeto e adicionando os headers/body novamente): urlRedirect := Trim(objHttp.Headers.Values['Location']); if urlRedirect <> EMPTY_STR then begin objHttp.Free; objHttp := THTTPSend.Create; FH.StrParaStream(synHttp.Document, vs); objHttp.MimeType := 'application/json'; for tmp in LHeaders do objHttp.Headers.Add(tmp); Result := objHttp.HTTPMethod(pMetodo, urlRedirect); end; -
Segue um exemplo de como utilizo. Neste caso eu criei uma classe para abstrair o Synapse, mas você pode utilizar diretamente o objeto THTTPSend. No código abaixo existem algumas referências a funções auxiliares para converter Streams e caracteres Unicode, mas acho que dá para entender o contexto geral. Uses: httpsend, synautil, synacode Para usar: Enviar('POST', 'https://endereco.da.api/v1/endpoint', '{"x": "2333232", "x1": "12", "dt": "xxxxx}', retorno); O seu header de requisição teria que ser inserido em uma lista do objeto LHeaders. function Enviar(const pMetodo, pURL, pDadosEnvio: string; var pRetorno: TRetRequisicao): Boolean; var synHttp: THTTPSend; mstr: TMemoryStream; stmResp, stmDados: TStringStream; vs: RawByteString; tmp: string; begin synHttp := THTTPSend.Create; mstr := TMemoryStream.Create; try vs := UTF8Encode(PDadosEnvio); FH.StrParaStream(synHttp.Document, vs); synHttp.MimeType := 'application/json'; //'application/x-www-form-urlencoded'; for tmp in LHeaders do synHttp.Headers.Add(tmp); Result := synHttp.HTTPMethod(pMetodo, pURL); if Result then begin mstr.CopyFrom(synHttp.Document, 0); pRetorno.Code := inttostr(synHttp.ResultCode); pRetorno.Response := FH.AjustaChrEspecial(FH.MemoryStreamParaString(mstr), True); end else begin pRetorno.Code := inttostr(synHttp.ResultCode); pRetorno.Response := FH.SeStrVazia(synHttp.Sock.LastErrorDesc, synHttp.ResultString); end; finally synHttp.Free; mstr.Free; end; end;
-
Redirect no Synapse + Cloudflare
TiagoTecchio replied to TiagoTecchio's tópico in Object Pascal - Delphi & Lazarus
Bom dia Diego, Grato pelo retorno e os links. Já havia pesquisado todos os links que o Google/Bing/Duck sugeriram . Uma das sugestões que encontrei foi atualizar o Indy, porém o meu Delphi é mais antigo (XE6) e fiquei com receio de criar mais problemas ao atualizar a biblioteca. A solução encontrada foi utilizar a suíte de componentes Overbyte ICS - já utilizava ela para situações específicas. É uma biblioteca opensource, bastante ampla e mais complexa que o Synapse, mas a recomendo fortemente. https://wiki.overbyte.eu/wiki/index.php/Main_Page https://wiki.overbyte.eu/wiki/index.php/ICS_Download https://www.overbyte.eu/frame_index.html Atualizei para a última versão devido ao SSL, fiz os testes e deu certo. Utilizei as classes TSslHttpCli e TSslContext tanto para GET quanto POST.