nknk 3 Denunciar post Postado Janeiro 30, 2008 Será que alguém saberia como fazer etiqueta para o Word similar ao que é feito no PDF com a classe FDPF? Quais seriam os códigos em php para gerar uma tabela no word e alinhas ? Do word seria esse: <? header( "Content-type: application/msword" ); header( "Content-Disposition: inline, filename=$file"); $arquivo = "arquivo.rtf"; $fp = fopen ( $arquivo, "r" ); $output = fread( $fp, filesize( $arquivo ) ); fclose ( $fp ); $output = str_replace( "<>", "texto qq", $output ); $fp = fopen("arq.".rtf", "w"); $wc = fwrite($fp, $arquivo); echo $output; ?> O código que me baseio(PDF) é essee ob_start(); define('FPDF_FONTPATH','fpdf/font/'); require_once("fpdf/fpdf.php"); // Conexao //$conn = mysql_connect("SEU_SERVER","SEY_LOGIN","SUA_SENHA"); //$banco = mysql_select_db("SEU_BANCO"); require"smd_verificasessao.php"; require"smd_acesso.php"; $sql = "SELECT * FROM `md_contato` WHERE cnt_userid = '$userid' "; //echo $sql; $query = mysql_query($sql); // Variaveis de Tamanho $mesq = "5"; // Margem Esquerda (mm) $mdir = "5"; // Margem Direita (mm) $msup = "12"; // Margem Superior (mm) $leti = "72"; // Largura da Etiqueta (mm) $aeti = "27"; // Altura da Etiqueta (mm) $ehet = "3,2"; // Espaço horizontal entre as Etiquetas (mm) $pdf=new FPDF('P','mm','A4'); // Cria um arquivo novo com tamanho tipo A4 $pdf->Open(); // inicia documento $pdf->AddPage(); // adiciona a primeira pagina $pdf->SetMargins('5','12,7'); // Define as margens do documento //$pdf->SetAuthor("CAPESP"); // Define o autor $pdf->SetFont('Arial','',7); // Define a fonte $pdf->SetDisplayMode(); // Variaveis pro Loop $coluna = 0; $linha = 0; //MONTA A ARRAY PARA ETIQUETAS while($dados = mysql_fetch_array($query)) { $nome = $dados['cnt_nome']; $tipo_logr = $dados ['cnt_tipo_logr']; $nome_logr = $dados ['cnt_nome_logr']; $nro_logr = $dados ['cnt_nro_logr']; $endereco = $tipo_logr." ".$nome_logr." ".$nro_logr; $bairro = $dados ['cnt_bairro']; $localidade = $dados ['cnt_localidade']; $uf = $dados ['cnt_uf']; $local_uf = $localidade." - ".$uf; $local_uf = ucwords ($local_uf); $cep = $dados ['cnt_cep']; if($coluna == "2") { // Se for a segunda coluna $coluna = 0; // $coluna volta para o valor inicial $linha = $linha +1; // $linha é igual ela mesma + 1 } if($linha == "12") { // Se for a última linha da página $pdf->AddPage(); // Adiciona uma nova página $linha = 0; // $linha volta ao seu valor inicial } $posicaoV = $linha*$aeti; $posicaoH = $coluna*$leti; if($coluna == "0") { // Se a coluna for 0 $somaH = $mesq; // Soma Horizontal é apenas a margem da esquerda inicial } else { // Senão $somaH = $mesq+$posicaoH; // Soma Horizontal é a margem inicial mais a posiçãoH } if($linha =="0") { // Se a linha for 0 $somaV = $msup; // Soma Vertical é apenas a margem superior inicial } else { // Senão $somaV = $msup+$posicaoV; // Soma Vertical é a margem superior inicial mais a posiçãoV } $pdf->Text($somaH,$somaV,$nome); // Imprime o nome da pessoa de acordo com as coordenadas $pdf->Text($somaH,$somaV+4,$endereco); // Imprime o endereço da pessoa de acordo com as coordenadas $pdf->Text($somaH,$somaV+8,$bairro); // Imprime o bairro da pessoa de acordo com as coordenadas $pdf->Text($somaH,$somaV+12,$local_uf); // Imprime a localidade da pessoa de acordo com as coordenadas $pdf->Text($somaH,$somaV+16,$cep); // Imprime o cep da pessoa de acordo com as coordenadas $coluna = $coluna+1; } $pdf->Output(); // encerra o arquivo PDF Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Janeiro 30, 2008 Você já tem a biblioteca que trabalha com arquivos do word? Se não, veja essa classe. Ela parece ser boa, e gera arquivos RTF a partir de dados HTML. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Sabdini 0 Denunciar post Postado Janeiro 30, 2008 kra.. de boa.. Tem q ser no word? eh pra impressão??? eu fiz um relatorio pra eu imprimir etiquetas(as famosas Picaco..jhehehe) aqui na minha empresa. Fiz uma pagina php mesmo... só que devini o tamanho certinho pra tabela, linhas e colunas.... Como era soh pra impressão rolou d+. Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Janeiro 30, 2008 Bom, se não houver necessidade de ser no word, se não houver necessidade de ser em php, já tentou o Access? Tem uma porrada de material pra impressão de etiquetas no Access. Veja em http://esnips.com/web/klawdyo tem um arquivo em access pronto pra você testar, e alterar se for de seu interesse. Deve estar na segunda página. Em todo caso, tem outros materiais por lá que te podem ser úteis. Compartilhar este post Link para o post Compartilhar em outros sites
nknk 3 Denunciar post Postado Janeiro 30, 2008 klwdyo, conhecia esse site, ele é chato pq tem q ficar fazendo login para baixar arquivo. Sobre as etiquetas, eu to meio q desistindo eu já trabalhava com modelos pré prontos com as margens já estabelecida junto com a tabela. O que estava querendo é fazer algo q é feito no pdf em que ele insere a consulta facilmente pulando a linha e definindo margens, só q eu não sei no word quais são os comandos para criar uma tabela a partir do php, no word é mais fácil de manuesar para qq usuário, editar, mais rápido para abrir. Até a questão das margens q no FPDF são + dificeis de modificar. Precisa ser em php pq a consulta é pela internet. Por enquanto a enquanto a minha solução é imprimir um etiqueta só com os dados. O ideal seria num mesmo arquivo colocar todos os dados nas diversas etiquetas. Marcelo, como foi q você fez isso? E os dados inseridos nessa tabela vem de uma consulta sql? Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Sabdini 0 Denunciar post Postado Janeiro 30, 2008 Sim.. vou postar uma previa do codigo da minah view. <table style="width:210mm; height:150mm; "> <tr> <? $grande = 0; $count = 0; $tot = 0; foreach($op as $linha){ $count++; $tot++; $grande++; // se for o final da linha ele fecha a linha e abre uma nova if($count == 6){ echo "</tr><tr>"; $count = 1; } ?> <td align="center" style="height:22mm; "><?=$linha?></td> <? # ===--- Se for o final da pagina ele da uma quebra de pagina... if($grande == 30){ $grande = 0; echo '</tr></table><br style="page-break-before:always;"><table style="width:210mm; height:150mm; ">'; } } ?> </table> Como esse sistema eh feito com o CakePhp, eu recebi os dados em uma array, por isso o uso do for. mas o array eh mais ou menos assim: array("123","124","125","126"). Um grande abraço Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Janeiro 30, 2008 De onde vem esse $op Dê um print_r($op) pra ver o que ele tá retornando. Compartilhar este post Link para o post Compartilhar em outros sites