[PHP] Problemen met PDF genereren

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Ik probeer vanuit een php pagina een pdf file te maken. Eerst heb ik de output gewoon als html getest en nu wil ik die html omzetten naar pdf. Dat gaat op zich perfect
De bedoeling is om werkbonnen te drukken vanuit een database met opdrachten. Telkens als 1 werkbon in de pdf zit moet dit worden aangevinkt in de database. Dus na elk record een update voor dat id uitvoeren.

Maar nu laat ie in de pdf niks meer zien terwijl in de html output van dat php script wel wat te zien is. Gaat de pdf het script om records weer te geven nog een keer uitvoeren??
Het script laat dus alle records zien waarvoor er geen vinkje staat dat het al een keer is uitgevoerd. Dus een tweede keer zal er geen record terugkomen uit die query.

Snappie, ik niet

  • kaandorp
  • Registratie: November 1999
  • Laatst online: 03-09 22:36
Nee.. Ik snap er geen hol van :9

Code bitte...

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op dinsdag 19 maart 2002 11:57 schreef kaandorp het volgende:
Nee.. Ik snap er geen hol van :9

Code bitte...
Mijn recordset:

SELECT *, opdrachten.naam AS klant
FROM opdrachten, users
WHERE opdrachten.userid = users.userid AND opdrachten.status='in behandeling' AND opdrachten.werkbon = 'onwaar' AND opdrachten.bestemdvoor = 'eengebruiker'

Dan komt er een tabel die telkens herhaalt wordt (eventjes verkleint anders wordt het zoveel:
<?php while (($Repeat1__numRows-- != 0) && (!$rs->EOF))
{
?>
<table>
</table>
<!-- PAGE BREAK -->
<?php
// Hier regel ik dus de update zodat het script weet
// wat er verwerkt is
$doen=$pp->Execute("update opdrachten set gedaan='waar' where id=" . $rs->Fields("id") . "") or DIE($pp->ErrorMsg());
?><?php
$Repeat1__index++;
$rs->MoveNext();
}
?>

Dit script wordt met m'n pdf script aangeroepen op de volgende manier:

<?
header("Content-Type: application/pdf");
header("Content-Disposition: inline; filename=\"bestand.pdf\"");
flush();

passthru("htmldoc --no-localfiles --no-compression -t pdf14 --quiet --jpeg --size a4 --webpage --header . --footer . 'http://192.168.20.244/rapportage/werkbon.php?user=" . $HTTP_GET_VARS["user"] . "'");
?>

Als ik dus die update in het eerste script er niet in zet komt er gewoon een goede pdf naar voren met op elke pagina de gegevens van 1 opdracht. Komt die update erbij dan niet meer. :?

Snappie ut nu ?? :)

  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
Op dinsdag 19 maart 2002 12:04 schreef wustenveld het volgende:

Mijn recordset:

SELECT *, opdrachten.naam AS klant
FROM opdrachten, users
WHERE opdrachten.userid = users.userid AND opdrachten.status='in behandeling' AND opdrachten.werkbon = 'onwaar' AND opdrachten.bestemdvoor = 'eengebruiker'
Geen antwoord op je vraag, maar wel over je model. Misschien is het een goed idee om voor de status een int te nemen in plaats van zo'n string? Het zelfde geldt eigenlijk voor de werkbon en bestemdvoor velden.

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op dinsdag 19 maart 2002 14:04 schreef eborn het volgende:

[..]

Geen antwoord op je vraag, maar wel over je model. Misschien is het een goed idee om voor de status een int te nemen in plaats van zo'n string? Het zelfde geldt eigenlijk voor de werkbon en bestemdvoor velden.
heeft dat nog bepaalde voordelen ??

  • Wally-S
  • Registratie: September 2001
  • Laatst online: 04-09 18:53

Wally-S

-Snowboarding is art-

Ik weet niet of je er wat aan hebt, maar voor het omzetten van HTML naar pdf gebruik ik altijd HTMLDOC

Snow is only frozen water


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op dinsdag 19 maart 2002 14:10 schreef Wally-S het volgende:
Ik weet niet of je er wat aan hebt, maar voor het omzetten van HTML naar pdf gebruik ik altijd HTMLDOC
Dat gebruik ik dus ook gaat altijd goed behalve als ik in het script die de pagina genereert een update statement zet. Als ik hem gewoon als html wil zien lukt het maar gooi ik er htmldoc overheen om pdf te maken laat ie niks zien :?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10-09 14:51

mulder

ik spuug op het trottoir

Zijn de paden nog wel goed? Lijkt er dus op dat HTMLDoc de HTML(file) niet goed oppakt.

oogjes open, snaveltjes dicht


  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op dinsdag 19 maart 2002 14:28 schreef Don Facundo het volgende:
Zijn de paden nog wel goed? Lijkt er dus op dat HTMLDoc de HTML(file) niet goed oppakt.
Hij wordt goed opgepakt, als ik het SQL commando voor de update verwijderd uit het bestand dan komte er gewoon data in de PDF naar voren.

Mijn bedoeling is dus dat in 1x alle opdrachten waar nog geen werkbon voor gemaakt is in één klap in een pdf bestand staan. Er moet dan tegelijkertijd bijgehouden worden voor welke opdrachten al een bon is gemaakt. Dit doe ik door die update.

Zijn er andere manieren en wat zou de rede kunnen zijn dat de pdf geen data laat zien en de php wel

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Ff een heel andere invalshoek:

Ik heb meerdere malen meegemaakt dat de "in de browser geintegreerde" PDF-viewer niks liet zien, terwijl de PDF wel degelijk content had. Wat slechts 2 minuten kost is dus de PDF downloaden en openen met de "stand alone"-acrobat viewer om te kijken of er wel degelijk wat instaat.

Geen flauw idee of het hier aan ligt, maar ik heb t n paar keer meegemaakt dus als je t uitprobeert kan je heel wat ellende bespaard worden! :) Good luck

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


Verwijderd

zou het aan deze regel liggen?

'http://192.168.20.244/rapportage/werkbon.php?user=" . $HTTP_GET_VARS["user"] . "'");

Het lijkt er op dat je double quotes niet goed staan...escape voor de zekerheid alle quotes:
code:
1
2
3
passthru("htmldoc --no-localfiles --no-compression -t
 pdf14 --quiet --jpeg --size a4 --webpage --header . --
footer . \"http://192.168.20.244/rapportage/werkbon.php?user=$HTTP_GET_VARS[\"user\"]\"");

  • Grum
  • Registratie: Juni 2001
  • Niet online
Anchorman: klok horen luiden maar de klepel nog niet zien hangen ? - je reactie gaat NERGENS over :+

Verwijderd

Anchorman heeft ergens wel een beetje gelijk, naja een heeeel klein beetje, in deze regel:
PHP:
1
<?$doen=$pp->Execute("update opdrachten set gedaan='waar' where id=" . $rs->Fields("id") . "") or DIE($pp->ErrorMsg());?>

hoeft in . "") die laatste . en "" niet natuurlijk...

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Op dinsdag 19 maart 2002 18:26 schreef zellufs het volgende:
Anchorman heeft ergens wel een beetje gelijk, naja een heeeel klein beetje, in deze regel:
PHP:
1
<?$doen=$pp->Execute("update opdrachten set gedaan='waar' where id=" . $rs->Fields("id") . "") or DIE($pp->ErrorMsg());?>

hoeft in . "") die laatste . en "" niet natuurlijk...
Da's waar ik heb dat inmiddels ook aangepast maar het had geen effect helaas. Ik heb het al op een andere manier opgelost, het is niet zo netjes maar goed (achter de browser opent heel snel een nieuw windowtje die de update uitvoert. Duurt 1 seconde dus valt bijna niet op en de pdf laat ie nu wel zien. Maar ja, het is voor een interne applicatie dus kan het wel in principe

  • Grum
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 19 maart 2002 18:26 schreef zellufs het volgende:
Anchorman heeft ergens wel een beetje gelijk, naja een heeeel klein beetje, in deze regel:
[..snip..]
jah en hier
code:
1
2
3
passthru("htmldoc --no-localfiles --no-compression -t
 pdf14 --quiet --jpeg --size a4 --webpage --header . --
footer . \"http://192.168.20.244/rapportage/werkbon.php?user=$HTTP_GET_VARS[\"user\"]\"");

heb je een lekkere parse error :)

  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
Op dinsdag 19 maart 2002 14:07 schreef wustenveld het volgende:

[..]

heeft dat nog bepaalde voordelen ??
Nou, 't scheelt je heel wat data in je database. Een int neemt natuurlijk veel minder ruimte in dan een string. Verder kom je bijna nooit tegen dat 'flags' (wat dit toch eigenlijk zijn) d.m.v. strings gezet worden.
Pagina: 1