Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Nettisivun tulostukseen sivunvaihto

Sivun loppuun

manninen [25.03.2015 11:53:14]

#

Vanha otsikko: ”PHP - tulostin komennot”

Onko php:llä mitään komentoa, joka antaa viestin tulostimelle milloin vaihtaa paperin. Vai tuleeko tulostusalueen koko huomioida itse, ja määrittää loppualue vaikka tyhjäksi.

Lebe80 [25.03.2015 13:44:56]

#

Mitä olet tekemässä?

Eli jos olet tekemässä ihan nettisivua, niin php ei pääse käyttäjän tulostimeen käsiksi, mutta sen sijaan css:llä voit tehdä joitain print-määrityksiä, jotka toimivat tai ei toimi riippuen käyttäjän käyttämästä selaimesta.
http://davidwalsh.name/css-page-breaks

Jos taas on jokin "sisäinen php-skripti", jolla hallitset kotisi laitteita, niin tämmöiselle varmaan on tehtävissä erilaisia tulostinkikkareita.

manninen [25.03.2015 14:20:36]

#

Laskutussovellusta, ja haluaisin saada laskut katkeamaan halutusta kohtaa. Näin useamman laskun saisi samalle näkyvyydelle ja tulostus onnistuisi erillisille paperille.

Tuo näyttäysi lupaavalta, joten kokeilen sitä.

Grez [26.03.2015 11:10:41]

#

Jos laskut on pääsääntöisesti tarkoitus tulostaa paperille, niin yksi vaihtoehto voisi olla muodostaa PDF:ää, joka sitten tulostetaan. Silloin tarkkaan asemointiin paperilla on paremmat mahdollisuudet kuin HTML:ssä. HTML:ssä vaikuttaa myös esim. selaimen marginaaliasetukset (korjatkaa jos olen väärässä).

Lisäksi PDF:iä voi lähettää suoraan esimerkiksi postituspalveluille.

Tukki [27.03.2015 09:57:00]

#

Olen itse paininut vastaavien ongelmien parissa ja todennut että PDF on vain osa ratkaisua. Ensinnäkin PDF:n tulostamisen tuottamaan lopulliseen paperilla olevaan ulkoasuun vaikuttaa moni asia joihin PDF:n tuottaja ei välttämättä voi vaikuttaa (esim. minkälaista tulostinta käytetään, kuinka lähelle paperin reunoja tulostin pystyy tulostamaan, minkälaiset zoomausasetukset on päällä siinä ohjelmassa jota käytetään PDF:n tulostamiseen, paperin koko, paperinkokoasetukset jne jne).

Toinen isompi asia on se miten se PDF tuotetaan PHP-koodissa. Tähänkin on useita oleellisesti toisistaan poikkeavia menetelmiä. Jos esim käytetään kirjastoja tai ohjelmia, jotka selaimen tapaan rendaavat html- ja css-määrittelyt PDF-dokumentiksi, alkuperäinen ongelma ei oikeastaan poistu mihinkään vaan silloinkin törmätään html:n ja css:n ominaisuuksiin ja rajoituksiin sivun ulkoasun kuvauksessa. Perinteisestihän noilla kielillä on kuvattu ulkoasua, joissa tilaa on vertikaalisuunnassa äärettömästi ja käsite useammasta sivusta on vieras tai huonosti tuettu.

On myös kirjastoja, kuten vaikka fpdf, joilla voi yrittää tuottaa pikselintarkasti suoraan PDF:ää. Näissä on paremmin ominaisuuksia sivutuksen hallintaan, mutta ongelmaksi muodostuu usein vaihtuvankokoiset sisällöt, kun ulkoasua ei olekaan määritely enää suhteellisesti.

Sitten on vielä XSL-FO joka on nimenomaan sivunkuvauskieli, mutta jonka logiikka on lähempänä CSS:ällä tehtävää suhteellista toittoa kuin pikselitaittoa. XSL-FO:ssa on monipuoliset ominaisuudet sivukäsitteen ja sivutuksen hallintaan. Itse en ole käyttänyt FO:ta moneen vuoteen joten en tiedä miten hyvin se on tuettu eri ohjelmistojen puolesta nykyään. Aikoinaan oli Apachen FOP ja RenderX:in XEP -kirjastot joilla Fo-dokumentit pystyi muuntamaan PDF:ksi palvelinpuolella.

Itse käytän toistaiseksi ensimmäistä menetelmää eli teen dokumenttien ulkoasun HTML:llä ja CSS:llä ja käytän wkhtmltopdf:ää niiden muuttamiseen PDF:ksi palvelimella. Olen kuitenkin harkinnut tuon XSL-FO:n nykytilanteen tarkistamista ja siihen siirtymistä kun vaatimukset sivutuksen hallintaan mutkistuvat.

The Alchemist [27.03.2015 10:10:44]

#

Css:hän on tavallisesti nimenomaan pikselitaittoa. Tyylittelyä voinee helpottaa käyttämällä milli- tai senttimetrejä mittayksiköinä, jolloin voi katsoa halutun paperikoon mitat ja laatia tyylit niiden mukaan.

Tukki [27.03.2015 10:46:53]

#

The Alchemist kirjoitti:

Css:hän on tavallisesti nimenomaan pikselitaittoa.

Mielestäni harvemmin, varsinkin jos puhutaan elementtien sijainnista suhteessa sivuun/ikkunaan (eng. viewport) ja erityisesti vertikaalisesta sijainnista. Itse ainkain pyrin tavallisesti välttämään tätä.

The Alchemist kirjoitti:

Tyylittelyä voinee helpottaa käyttämällä milli- tai senttimetrejä mittayksiköinä, jolloin voi katsoa halutun paperikoon mitat ja laatia tyylit niiden mukaan.

Saattaa auttaa mikäli dokumentissa on ainoastaa yksi sivu. Useampisivuisten dokumenttien tapauksessa CSS:stä loppuu aika pian ominaisuudet tai ominaisuuksilta tuki.

Hennkka [27.03.2015 21:33:59]

#

Eräs mahdollisuus on tuottaa PHP:n avulla LaTeX-koodia, joka käännetään pdflatex-ohjelman avulla pdf-tiedostoksi. Tätä menetelmää on käytetty onnistuneesti ainakin Datatähden loppukilpailussa diplomien tulostamiseen.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta