Conversão de CSV

1. Conversão de CSV

Lucas Roberto Daldegan
lrobertodaldegan

(usa Debian)

Enviado em 27/04/2017 - 17:48h

Tudo bom pessoal? Sou novo aqui no VOL, mas faz um bom tempo que acompanho as atividades por aqui... Eu gostaria de saber se vocês conhecem alguma ferramenta pra conversão de um arquivo csv pra pdf (isso por inha de comando). Sei que configurando um cups-pdf e usando o lp, por exe,plo, consigo gerar um pdf, o problema é que esse pdf fica totalmente desconfigurado... Alguém já passou por isso ou pode me ajudar?

Obs.: A intenção é gerar uma rotina de envio de relatório automático do GLPI. Consigo fazer o envio do csv que gero com um PHP que um amigo criou e adaptei (não manjo de PHP) e um .sh.


  


2. Re: Conversão de CSV

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 27/04/2017 - 18:07h

lrobertodaldegan escreveu:

Tudo bom pessoal? Sou novo aqui no VOL, mas faz um bom tempo que acompanho as atividades por aqui... Eu gostaria de saber se vocês conhecem alguma ferramenta pra conversão de um arquivo csv pra pdf (isso por inha de comando). Sei que configurando um cups-pdf e usando o lp, por exe,plo, consigo gerar um pdf, o problema é que esse pdf fica totalmente desconfigurado... Alguém já passou por isso ou pode me ajudar?

Obs.: A intenção é gerar uma rotina de envio de relatório automático do GLPI. Consigo fazer o envio do csv que gero com um PHP que um amigo criou e adaptei (não manjo de PHP) e um .sh.


tentou isso aqui ???
http://stackoverflow.com/questions/32403452/how-to-convert-tsv-csv-to-pdf-table
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


3. Re: Conversão de CSV

Lucas Roberto Daldegan
lrobertodaldegan

(usa Debian)

Enviado em 27/04/2017 - 18:51h

Não! Vou tentar e posto o resultado!


4. Re: Conversão de CSV

Lucas Roberto Daldegan
lrobertodaldegan

(usa Debian)

Enviado em 28/04/2017 - 12:35h

Mauriciodez escreveu:

lrobertodaldegan escreveu:

Tudo bom pessoal? Sou novo aqui no VOL, mas faz um bom tempo que acompanho as atividades por aqui... Eu gostaria de saber se vocês conhecem alguma ferramenta pra conversão de um arquivo csv pra pdf (isso por inha de comando). Sei que configurando um cups-pdf e usando o lp, por exe,plo, consigo gerar um pdf, o problema é que esse pdf fica totalmente desconfigurado... Alguém já passou por isso ou pode me ajudar?

Obs.: A intenção é gerar uma rotina de envio de relatório automático do GLPI. Consigo fazer o envio do csv que gero com um PHP que um amigo criou e adaptei (não manjo de PHP) e um .sh.


tentou isso aqui ???
http://stackoverflow.com/questions/32403452/how-to-convert-tsv-csv-to-pdf-table
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Tentei, mas não deu muito certo :(
Vi que tem um jeito com o PHP usando HTML. Se der certo, eu atualizou o tópico. Muito obrigado




5. Re: Conversão de CSV

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 13:21h

Amigo, estou bem interessado no seu código, temos na empresa o GLPI também e os relatórios são gerados manualmente, como você está fazendo para gerar os relatórios via linha de comando?

Obrigado

_________________________
RHCSA - Red Hat Certified System Administrator RHEL7
Red Hat, Licença 160-128-054


6. Re: Conversão de CSV

Lucas Roberto Daldegan
lrobertodaldegan

(usa Debian)

Enviado em 28/04/2017 - 17:37h

manoel.junior escreveu:

Amigo, estou bem interessado no seu código, temos na empresa o GLPI também e os relatórios são gerados manualmente, como você está fazendo para gerar os relatórios via linha de comando?

Obrigado

_________________________
RHCSA - Red Hat Certified System Administrator RHEL7
Red Hat, Licença 160-128-054


Tudo bom, Manoel? Não está perfeito e ainda não terminei de adaptar, mas acho que se vc está interessado, pode te ajudar. Dê uma olhada:

Esse é o meu relatorios.sh:


#!/bin/bash
##########################################################################
#Este script foi criado para automatizar o envio de relatorios
#e necessario ter instalado no servido o pacte postfix e sendemail para o envio de emails usando os parametros deste script
#Ele executa da seguinte forma:
# chama
#contrab -----> relatorios.sh
# cria
#relatorios.sh -----> gr.php
# executa
#gr.php -----> reports.php
# cria
#reports.php -----> arquivo.csv
# envia e-mail
#relatorios.sh -----> cliente@cliente.com
###########################################################################
#variaveis que serao enviadas ao PHP
onewa=$(date --date "1 week ago" +%Y-%m-%d)
today=$(date +%Y-%m-%d)
#Variavel que define o nome final do csv que sera gerado e enviado
arquivocsv=Chamados_$(date --date "1 week ago" +%d%m%y)-$(date +%d%m%y).csv
#arquivo com as variaveis em PHP
echo -e "<php""\n"'$ent="1";'"\n"'$datai='"'$onewa'"''";""\n"'$dataf='"'$today'"''";""\n"'require("reports.php")'";""\n"'?>' > gr.php
#execucao do "gerador de relatorio"
php gr.php > $arquivocsv
#envio do relatorio por email
sendemail -f noreply@empresa -u "Chamados da ultima semana" -m "Segue anexo contendo os dados dos chamados da &uacute;ltima semana.<br />Caso necess&aacute;rio, entre em contato conosco atrav&eacute;z do e-mail suporte@empresa.com.br ou por telefone no n&uacute;mero 041 3333-3333 -o message-content-type=html -o message-charset="UTF-8" -a $(find . -name "arquivo.csv") -t destinatario@dominio


Esse é o meu reports.php, que como mencionei anteriormente, um amigo de trabalho formulou e eu adaptei algumas coisas:


<?php
$servername = "localhost";
$username = "dbuser";
$password = "dbpassword";

try {
$conn = new PDO("mysql:host=$servername;dbname=glpi", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, name, solution, date, solvedate, sec_to_time(solve_delay_stat) as sec FROM glpi_tickets WHERE entities_id =$ent AND date BETWEEN '$datai 08:00:00' AND '$dataf 18:00:00'";
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");

// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");

// disposition / encoding on response body
header("Content-Disposition: attachment;filename=csv.csv");
header("Content-Transfer-Encoding: binary");

ob_start();
$df = fopen("php://output", 'w');

$array = $conn->query($sql);

fwrite($df, 'Id_do_chamado;Titulo_do_chamado;Solucao;Data_de_abertura_do_chamado;Data_da_solucao;tempo_de_resolucao_do_chamado');
fwrite($df, "\n");

foreach ($array as $row) {
fwrite($df, $row['id'].';');
fwrite($df, $row['name'].';');
$solution = html_entity_decode($row['solution']);
$solution = strip_tags ( $solution );
$solution = str_replace("\r\n",' ', $solution);
fwrite($df, $solution.';');
fwrite($df, $row['date'].';');
fwrite($df, $row['solvedate'].';');
fwrite($df, $row['sec']);
fwrite($df, "\n");
}

fclose($df);

echo ob_get_clean();
} catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
?>


Isso tudo funcionou muito bem em um Ubuntu 12 Server (servidor antigo). Não testei em ambientes mais novos, mas acredito que funcionará ok. Espero que possa te ajudar! Por enquanto eu sigo na saga de tentar converter o meu CSV em PDF hahaha






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts