/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan udskrives en PDFfil umiddelbart ef~
Fra : Mogens Jensen


Dato : 03-10-11 20:59

Jeg har et php program, som laver en PDF fil som kan udskrives
via en link i f.eks. en email. Når man klikker på linken, så kommer
PDFfilen på skærmen og den kan så udskrives.

Nu ønsker jeg at udskrive samme PDFfil direkte på min default
printer umiddelbart efter at den er lavet. Ikke noget med klik på
en link, fremvisning af filen i min browser og så klik på print.
Jeg ønsker udskrivning på default printer, med det samme
PDF filen lukkes.

Hvordan kan man gøre det?

--
Mvh. Mogens Jensen


 
 
scootergrisen (03-10-2011)
Kommentar
Fra : scootergrisen


Dato : 03-10-11 21:30

Mener du at man skal kunne printe fra en hjemmeside ?

Så kunne du bruge :

<body onload="window.print();">

Mogens Jensen (03-10-2011)
Kommentar
Fra : Mogens Jensen


Dato : 03-10-11 22:51


"scootergrisen" <scootergrisen@gmail.com> skrev i meddelelsen
news:4e8a1b4d$0$293$14726298@news.sunsite.dk...
> Mener du at man skal kunne printe fra en hjemmeside ?
>
> Så kunne du bruge :
>
> <body onload="window.print();">

Jeg har lavet et program, som danner en faktura-pdf-fil
på basis af dataene i en sql-tabel. Det fungerer udmærket.
Med min browser kan jeg se og udskrive faktura.

Nu vil jeg have udskrevet fakturaer fra et php program og
direkte ud på min printer.
Altså direkte udskrift. Når mit pgm. lukker pdffilen så skal
den automatisk komme på printer uden brug af browser.
Er det muligt?


--
Mvh. Mogens Jensen


Chano Andersen (04-10-2011)
Kommentar
Fra : Chano Andersen


Dato : 04-10-11 06:57

Den 03-10-2011 23:51, Mogens Jensen skrev:
> Nu vil jeg have udskrevet fakturaer fra et php program og
> direkte ud på min printer.
> Altså direkte udskrift. Når mit pgm. lukker pdffilen så skal
> den automatisk komme på printer uden brug af browser.
> Er det muligt?

Vi starter med at antage, at printeren er sluttet direkte til den
maskine der afvikler PHP koden. Hvis det er tilfælde, så burde det være
muligt med disse funktioner, at brygge noget sammen.

http://php.net/manual/en/book.printer.php

- Chano Andersen

Leif Neland (05-10-2011)
Kommentar
Fra : Leif Neland


Dato : 05-10-11 11:06


"Chano Andersen" <sunsite012011@chanoandersen.dk> skrev i en meddelelse
news:4e8aa012$0$282$14726298@news.sunsite.dk...
> Den 03-10-2011 23:51, Mogens Jensen skrev:
>> Nu vil jeg have udskrevet fakturaer fra et php program og
>> direkte ud på min printer.
>> Altså direkte udskrift. Når mit pgm. lukker pdffilen så skal
>> den automatisk komme på printer uden brug af browser.
>> Er det muligt?
>
> Vi starter med at antage, at printeren er sluttet direkte til den maskine
> der afvikler PHP koden. Hvis det er tilfælde, så burde det være muligt med
> disse funktioner, at brygge noget sammen.
>
> http://php.net/manual/en/book.printer.php
>

Mit "kasseapparat" er skrevet i php.
Når der skal udskrives, laves et request til webserveren, der fra asp
genererer en pdf-fil.
Denne pdf-fil samler php-scriptet op og sender til cups-printserveren, der
via samba sender det til den pc, der deler sin usb-tilsluttede printer, og
som viser kasseapparat-websiden.

Så meget er muligt




Denne f




Leif Neland (05-10-2011)
Kommentar
Fra : Leif Neland


Dato : 05-10-11 12:12


"Mogens Jensen" <mojen@live????.dk> skrev i en meddelelse
news:4e8a13fe$0$283$14726298@news.sunsite.dk...
> Nu ønsker jeg at udskrive samme PDFfil direkte på min default
> printer umiddelbart efter at den er lavet. Ikke noget med klik på
> en link, fremvisning af filen i min browser og så klik på print.
> Jeg ønsker udskrivning på default printer, med det samme
> PDF filen lukkes.
>
> Hvordan kan man gøre det?
>
Browser- og O/S-fabrikanterne har gjort store anstrengelser for at det ikke
er muligt for en webside at udskrive uden at brugeren giver lov hver gang.
Dette for at sikre os imod at de onde hackere og spammere bruger vores
printere til at udskrive reklamer og andet uønsket.

Man burde kunne give tilladelse til et bestemt wwebsted at udskrive, men det
er der nok ikke det store marked for.

Leif



Mogens Jensen (05-10-2011)
Kommentar
Fra : Mogens Jensen


Dato : 05-10-11 16:17


"Leif Neland" <leif@neland.dk> skrev i meddelelsen
news:4e8c3b75$0$282$14726298@news.sunsite.dk...
>
> "Mogens Jensen" <mojen@live????.dk> skrev i en meddelelse
> Leif


Det er ser godtnok ikke nemt ud. Jeg mangler php_printer.dll og den skal
downloades
seperat. Endnu har jeg ikke fundet ud af hvordan. Åbenbart skal jeg
downloade
noget perl. Det virker endnu noget uoverskueligt.

Er perl svært? Skal man sætte sig ind i en hel bunke?
Mangler pt. energi til at læse en hel bunke om perl.

--
Mvh. Mogens Jensen


scootergrisen (05-10-2011)
Kommentar
Fra : scootergrisen


Dato : 05-10-11 18:14

> Det er ser godtnok ikke nemt ud. Jeg mangler php_printer.dll og den skal
> downloades seperat.

Ok nu har jeg endelig fået det til at virke og har lige printet et papir
fra php.

1 : Du skal have fat i den rigtige php_printer.dll fil som passer til
din PHP udgave.
Jeg bruger den udgave af PHP som hedder VC6 x86 Thread safe.
Derfor downloader jeg :
http://downloads.php.net/pierre/php_printer-svn20100319-5.3-vc6-x86.zip

2 : Flyt php_printer.dll til din php/ext mappe

3 : tilføj "extension=php_printer.dll" nederst i fin php.ini fil (uden
gåseøjnene "")

4 : genstart apache og se om du får en fejl besked eller om apache godt
kan genstarte. Hvis du får en fejlbesked så er det den forkerte udgave
af dll filen du har... se om du kan finde den rigtige her så :
http://downloads.php.net/pierre/

5 : kør følgende kode for at printe en fil ud på din standard printer :

--------------------------------
<?php

echo 'start' . "<br>\r\n";

$filsomprintes = 'printer.php' . "<br>\r\n";

if($ph = printer_open()){

echo 'forbindelsen til printeren blev oprettet' . "<br>\r\n";

echo 'henter filen som skal printes' . "<br>\r\n";
$fh = fopen("printer.php", "rb");
$content = fread($fh, filesize("printer.php"));
fclose($fh);

echo 'sender fil til printeren i RAW mode' . "<br>\r\n";
printer_set_option($ph, PRINTER_MODE, "RAW");
printer_write($ph, $content);
printer_close($ph);

echo 'filen skulle nu være sendt til printer køen og blive udskrevet
hvis printeren er klar' . "<br>\r\n";

}else{

echo 'kunne ikke oprette forbindelse til printeren' . "<br>\r\n";

}

echo 'slut' . "<br>\r\n";

?>
----------------------------

Mogens Jensen (05-10-2011)
Kommentar
Fra : Mogens Jensen


Dato : 05-10-11 21:40


"scootergrisen" <scootergrisen@gmail.com> skrev i meddelelsen
news:4e8c9051$0$291$14726298@news.sunsite.dk...
>> Det er ser godtnok ikke nemt ud. Jeg mangler php_printer.dll og den skal
>> downloades seperat.
>
> Ok nu har jeg endelig fået det til at virke og har lige printet et papir
> fra php.
>
> 1 : Du skal have fat i den rigtige php_printer.dll fil som passer til din
> PHP udgave.
> Jeg bruger den udgave af PHP som hedder VC6 x86 Thread safe.
> Derfor downloader jeg :
> http://downloads.php.net/pierre/php_printer-svn20100319-5.3-vc6-x86.zip
>
> 2 : Flyt php_printer.dll til din php/ext mappe
>
> 3 : tilføj "extension=php_printer.dll" nederst i fin php.ini fil (uden
> gåseøjnene "")
>
> 4 : genstart apache og se om du får en fejl besked eller om apache godt
> kan genstarte. Hvis du får en fejlbesked så er det den forkerte udgave af
> dll filen du har... se om du kan finde den rigtige her så :
> http://downloads.php.net/pierre/
>
> 5 : kør følgende kode for at printe en fil ud på din standard printer :
>
> --------------------------------
> <?php
>
> echo 'start' . "<br>\r\n";
>
> $filsomprintes = 'printer.php' . "<br>\r\n";
>
> if($ph = printer_open()){
>
> echo 'forbindelsen til printeren blev oprettet' . "<br>\r\n";
>
> echo 'henter filen som skal printes' . "<br>\r\n";
> $fh = fopen("printer.php", "rb");
> $content = fread($fh, filesize("printer.php"));
> fclose($fh);
>
> echo 'sender fil til printeren i RAW mode' . "<br>\r\n";
> printer_set_option($ph, PRINTER_MODE, "RAW");
> printer_write($ph, $content);
> printer_close($ph);
>
> echo 'filen skulle nu være sendt til printer køen og blive udskrevet
> hvis printeren er klar' . "<br>\r\n";
>
> }else{
>
> echo 'kunne ikke oprette forbindelse til printeren' . "<br>\r\n";
>
> }
>
> echo 'slut' . "<br>\r\n";
>
> ?>
> ----------------------------

Så er den printer-ddl på plads.
og din rutinen fungerer fint. Tak for den hjælp.

Nu vil jeg gerne have en pdf fil (faktura.pdf) udskrevet. Mon det er muligt.
Pt. får jeg blot en masse forskellige tegn.

--
Mvh. Mogens Jensen


scootergrisen (06-10-2011)
Kommentar
Fra : scootergrisen


Dato : 06-10-11 01:49

> Så er den printer-ddl på plads.
> og din rutinen fungerer fint. Tak for den hjælp.
>
> Nu vil jeg gerne have en pdf fil (faktura.pdf) udskrevet. Mon det er
> muligt.
> Pt. får jeg blot en masse forskellige tegn.

Ja det kan jeg godt se den printer filen som var det en tekst fil.
Det kan da godt være at man ikke kan printe PDF filer med det.

Som Jonathan forslå så kan det godt være du i stedet skal bruge adobe
reader til at printe med.

Jeg kan dog ikke få det til at virke.

Jeg kan godt få dette til at virke :
<?php
exec('explorer.exe');
?>

Men det her virker ikke... der sker bare ikke noget :
<?php
exec('"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"');
?>

Der må være noget som begrænser AcroRd32.exe i at kunne starte på den måde.

Stig Johansen (06-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 06-10-11 09:50

Leif Neland wrote:

> Dette for at sikre os imod at de onde hackere og spammere bruger
> vores printere til at udskrive reklamer og andet uønsket.

Kommer til at tænke på 'fax'-tiden
Hvis man var ond, lavede man et program, der sendte en fax med bare eet
bogstav.

På den måde kunne man tæppebombe en fax, så hele papirmagasinet blev tømt.

> Man burde kunne give tilladelse til et bestemt wwebsted at udskrive, men
> det er der nok ikke det store marked for.

Hvem bruger 'dødt træ medie' - og til hvad?
Det er nok det spørgsmål man burde stille sig.

--
Med venlig hilsen
Stig Johansen

Leif Neland (06-10-2011)
Kommentar
Fra : Leif Neland


Dato : 06-10-11 12:27

> Hvem bruger 'dødt træ medie' - og til hvad?
> Det er nok det spørgsmål man burde stille sig.
>

Det er ikke alle, der bruger e-kvittering eller e-faktura.

Det ville nu være smart, hvis man kunne knytte kvitteringen sammen med
dankortet, så man kunne hente sine kvitteringer med specifikationer i sin
e-boks eller lignende sted.

Og så er der jo det 'smarte', at F.ex. Nordea smider kontoudtog ud fra
netbanken efter to år, mens man svjv skal gemme ting i 5 år af hensyn til
skat.
Så bliver man næsten nødt til at printe ud; det er ihvertfald ikke ligetil
for Maren i Kæret at lave et arkivsystem at gemme udtogene fra banken
digitalt, så det er lige så let at finde rundt i.




Jonathan Stein (06-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 06-10-11 17:05

Den 06-10-2011 10:49, Stig Johansen skrev:

> Kommer til at tænke på 'fax'-tiden
> Hvis man var ond, lavede man et program, der sendte en fax med bare eet
> bogstav.

Du har aldrig faxet en toiletrulle?

(Nej, jeg har også kun hørt om det).

M.v.h.

Jonathan

Stig Johansen (10-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 10-10-11 08:54

Jonathan Stein wrote:

> Den 06-10-2011 10:49, Stig Johansen skrev:
>
>> Kommer til at tænke på 'fax'-tiden
>> Hvis man var ond, lavede man et program, der sendte en fax med bare eet
>> bogstav.
>
> Du har aldrig faxet en toiletrulle?

Tænker du på de fax'en med endeløse ruller?

Her var der en kunde der blev lidt sur, for jeg faxede kun det der var
nødvendigt - nogle gange kun et afsnit - måske 10 cm.

Det var dokumentation i forbindelse med et projekt, og hans 'problem' var at
holde styr poå alle de der papirlapper i hans A4 ringbind.

> (Nej, jeg har også kun hørt om det).

Jeg har ikke gjort det, og det var blot noget brainstorming 'dengang'

Pseudokode:
1) Connect to fax vha. faxmodem.
2) While tru do
send ('hej'+ff)

--
Med venlig hilsen
Stig Johansen

Jonathan Stein (10-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 10-10-11 09:20

Den 10-10-2011 09:54, Stig Johansen skrev:

>> Du har aldrig faxet en toiletrulle?
>
> Tænker du på de fax'en med endeløse ruller?

Nej:

1) Tag toiletrullen på toilettet og sæt den i faxen.
2) Tast nummeret på dem, der har spammet dig.
3) Tryk "Send".

- Joken er sjovest, hvis telefonregningen er lavere end prisen på
faxpapir.

M.v.h.

Jonathan

Jonathan Stein (05-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 05-10-11 21:50

Den 03-10-2011 21:58, Mogens Jensen skrev:

> Nu ønsker jeg at udskrive samme PDFfil direkte på min default
> printer umiddelbart efter at den er lavet.

Hvis PDF'en skal udskrives af PHP-scriptet, så kig på exec
(http://php.net/manual/en/function.exec.php) og kald
AcroRd32.exe med parametren /t (se side 27 i
http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/intro_to_sdk/DeveloperFAQ.pdf)

Er det derimod klienten, som modtager PDF'en, der skal udskrive den, så
ville jeg forsøge noget med at sætte en særlig mime type og associere
denne med "AcroRd32.exe /t ...".

M.v.h.

Jonathan

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407845
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste