Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nknk

Etiqueta para Word com consulta Sql

Recommended Posts

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.