Avatar billede krydset Nybegynder
17. januar 2004 - 00:37 Der er 7 kommentarer og
3 løsninger

lave et .doc dokument.

Hejsa,

Hvilken function skal man bruge for at lave et .doc dokument.
Avatar billede scorpio_5250 Nybegynder
17. januar 2004 - 00:44 #1
Øhhh ... måske gem din tekst i word ;-)
Avatar billede krydset Nybegynder
17. januar 2004 - 00:47 #2
haha ja det kunne jeg.

Forklarer lige nærmere.

Hiver en masse tekst ud fra en database, og udfra der skal den lave en .doc / .txt fil som den så sendder til en så man kan printe den ude.

et alternativ er at hvis man kan fjerne det links som står i bunden når man udskriver en html side, ved ikke om det kan lade sig gøre??
Avatar billede Slettet bruger
17. januar 2004 - 01:09 #3
Kunne du bruge PDF i stedet for .doc?

http://www.fpdf.org/

Der er glimrende dokumentation med masser af eksempler på siden.
Avatar billede krydset Nybegynder
17. januar 2004 - 01:51 #4
Jeg kan ikke rigtig få den til at generer en tables ud fra data i en mysql database, ved du hvordan man gør det?
Avatar billede Slettet bruger
17. januar 2004 - 02:29 #5
Sig noget mere om, hvad du gør, og hvor det går galt. Du må selv lave koden. Du kan jo bruge tutorial nummer 5 på fpdf-siden som grundlag. I princippet skulle det være nok at rette LoadData-funktionen, så den istedet for at hente en rå tekstfil laver er array fra din database.

Derudover er der heller ikke nogen, der KAN lave koden for dig, når vi ikke aner, hvad der er i databasen, og hvordan du vil have det præsenteret.
Avatar billede krydset Nybegynder
17. januar 2004 - 10:26 #6
Det er osse den der halteer loaddata funct.

Men smider lige her hvad det er jeg gør.
Det jeg egentlig bare har gjordt er at ændre den load function, til den side der trææker dataen ude, men så kan man bare php koden i dokumentet, ville gerne ha sat dataerne pænt op

<?php
include("sider/dbconnect.php");
$data = mysql_query("SELECT * FROM film");


define('FPDF_FONTPATH','font/');
require('sider/fpdf.php');

class PDF extends FPDF
{
//Load data
function LoadData($file)
{
    //Read file lines
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
}

//Simple table
function BasicTable($header,$data)
{
    //Header
    foreach($header as $col)
        $this->Cell(40,7,$col,1);
    $this->Ln();
    //Data
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->Cell(40,6,$col,1);
        $this->Ln();
    }
}

//Better table
function ImprovedTable($header,$data)
{
    //Column widths
    $w=array(40,35,40,45);
    //Header
    for($i=0;$i<count($header);$i++)
        $this->Cell($w[$i],7,$header[$i],1,0,'C');
    $this->Ln();
    //Data
    foreach($data as $row)
    {
        $this->Cell($w[0],6,$row[0],'LR');
        $this->Cell($w[1],6,$row[1],'LR');
        $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R');
        $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R');
        $this->Ln();
    }
    //Closure line
    $this->Cell(array_sum($w),0,'','T');
}

//Colored table
function FancyTable($header,$data)
{
    //Colors, line width and bold font
    $this->SetFillColor(255,0,0);
    $this->SetTextColor(255);
    $this->SetDrawColor(128,0,0);
    $this->SetLineWidth(.3);
    $this->SetFont('','B');
    //Header
    $w=array(40,35,40,45);
    for($i=0;$i<count($header);$i++)
        $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
    $this->Ln();
    //Color and font restoration
    $this->SetFillColor(224,235,255);
    $this->SetTextColor(0);
    $this->SetFont('');
    //Data
    $fill=0;
    foreach($data as $row)
    {
        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
        $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill);
        $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
        $this->Ln();
        $fill=!$fill;
    }
    $this->Cell(array_sum($w),0,'','T');
}
}

$pdf=new PDF();
//Column titles
$header=array('Country','Capital','Area (sq km)','Pop. (thousands)');
//Data loading
$data=$pdf->LoadData('sider/print.php');
$pdf->SetFont('Arial','',14);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
$pdf->AddPage();
$pdf->ImprovedTable($header,$data);
$pdf->AddPage();
$pdf->FancyTable($header,$data);
$pdf->Output();
?>
Avatar billede krydset Nybegynder
17. januar 2004 - 10:33 #7
Jeg har ingen anelse om hvordan det her virker har aldrig rodet pdf før
Avatar billede Slettet bruger
17. januar 2004 - 18:24 #8
Jeg ved stadig ikke hvilke kolonner du har, hvilke vil have udskrevet og i hvilken orden. Så kan jeg jo ikke komme med et præcist svar.

Men det er denne del du skal rette:

function LoadData($file)
{
    //Read file lines
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
}

Til noget i stil med:

function LoadData($query)
{
    //Read database lines
    $result=mysql_query($query);
    if($result);
    while($row=mysql_fetch_array){
        $data[]=$row;
    }
    return $data;
}

Der, hvor du kalder LoadData skal du så give den en query som parameter i stedet for et filnavn. Bemærk, at hvis du bare beder om alle felter i din database, så er det også alle felter, der kommer med - og i den orden, de står i databasen. Det er altså smartere at sige nøjagtig hvilke felter, du vil have, og i hvilken rækkefølge. Noget i stil med:

SELECT titel,originaltitel,land FROM film ORDER BY titel
Avatar billede myplacedk Nybegynder
18. januar 2004 - 11:13 #9
Bare lige for at nævne det: Hvis browseren tilføjer header og footer, og man ikke ønsker det, man brugeren selv slå det fra i browseren. Det er ikke specielt brugervenligt, men det virker, og er den "reneste" løsning.

Når det ikke er brugervenligt nok plejer jeg at lave en pdf-udgave. (Foretrækkes klart frem for MS Word-filer.) Jeg plejer at bruge pdf-tingen fra R&OS, da den er implementeret 100% i PHP, og dermed ikke kræver noget som helst af serveren, ud over PHP.
http://www.ros.co.nz/pdf/ (http://www.google.com/search?q=php+pdf)
Avatar billede krydset Nybegynder
01. februar 2004 - 13:59 #10
Jeg lukkerher så ka vi alle dele point som tak for indsatsen, kiger på det en dag hvor der mere tid
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester