04.07.2012 16:37:54
Veebilehe/rakenduse identse info printimine erinevatel printeritel
Kas keegi oskab jagada nõu, kuidas saavutada olukord, kus oleks võimalik trükkida erinevatel printeritel võimalikult identset veebilehe/rakenduse sisu!
Ehk siis teisisõnu - mul on veebileht, mille genereeritavat sisu on vaja printida erinevatel printeritel ettetrükitud blankettidele niiviisi, et igal printeril alati trükitakse 1-2mm täpsusega samale blanketi kohale (et ei trükitaks ettejoonistatud äärtest üle jmt). Mul on olemas üks ülivana Flash rakendus, mis saab imelikul kombel selle tööga hakkama, aga selle toimimisloogikat on vaja muuta ning kahjuks on mul ainult .swf rakendus, mitte selle tööfaile, mistõttu ei tea, kuidas on varem seda saavutatud. Milliseid võimalusi on veel? Lihtsalt CSSiga margin'ite jmt. nullimine ja siis uute väärtuste andmine, ei anna tulemust - kuigi trükin alati sama brauseriga ja samade seadetega, annab erinevates printerites väljund päris ulatuslikult mööda (5mm või enamgi).
Kas keegi teab seda trikki, kuidas Flash rakendus panna nii täpselt trükkima, et ta printeri seadetest "mööda hiiliks" ja paigutaks sisu alati ühele ja samale kohale lehe servade suhtes?
Kas mõtled mingi sellise vahendiga nagu:
http://www.fpdf.org/
Vähemalt kiire katsetus näitab ikkagi arvestatavad möödapanekut. Uurin veidi edasi, kas ja kuidas on võimalik seal asju sättida, aga huvitav, kas teor. selline lahendus on mõeldav, kus kirjutan JSiga ümber CSS margin või positsioneerimis-väärtused. Kas printerid trükivad siis selle ära või trükivad nad alati HTML dokumendi sellisel kujul, nagu see laadimise hetkel oli, hilisemaid JS muudatusi ei saa printida?
Siis saaksin lihtsalt lasta kasutajatel ise lohistada oma printeri järgi asja paika ning teor. näiteks salvestada mingi kindla kasutaja jaoks selle küpsise vmt moel, et järgmine kord paigutataks juba automaatselt kasutaja järgi asukoht?
Aq, brauserist prindib printer nii nagu brauser talle ütleb.
Soovitaks ise samuti PDF'i poole vaadata, sest see on püsiv formaat.
Lahenduseks siis näiteks FPDF, TCPDF või muu lahendus. Isiklikult olen TCPDF'iga kokku puutunud.
Tuleb genereerida sisust pdf..
Kui nüüd klient nii loll on, et oma printeri paberi seaded valesti määranud.. A'la scale to Letter või midagi, siis pole midagi teha...
Siiani on mul kõik pdf'id lennanud printerisse suht millimeetri täpsusega. Olenemata printerist. Samas kordan. Inimese lollus on piiritu, seega kõik võimalik.
Tuleb õpetus kaasa panna: Vali õige paberi formaat ning scale 100%
Kui fail on tehtud letteris, siis adobe readeri printimise default scale peaks olema 96%
Kui PDF'i ei suudeta ilusti printida, siis ei saagi.. Noh teine võimalus on tekitada printimiseks raw failid... see jällegi nohjah.. Loetud printerid saavad sellega hakkama.
Kas mõtled mingi sellise vahendiga nagu:
http://www.fpdf.org/
Vähemalt kiire katsetus näitab ikkagi arvestatavad möödapanekut. Uurin veidi edasi, kas ja kuidas on võimalik seal asju sättida, aga huvitav, kas teor. selline lahendus on mõeldav, kus kirjutan JSiga ümber CSS margin või positsioneerimis-väärtused. Kas printerid trükivad siis selle ära või trükivad nad alati HTML dokumendi sellisel kujul, nagu see laadimise hetkel oli, hilisemaid JS muudatusi ei saa printida?
Siis saaksin lihtsalt lasta kasutajatel ise lohistada oma printeri järgi asja paika ning teor. näiteks salvestada mingi kindla kasutaja jaoks selle küpsise vmt moel, et järgmine kord paigutataks juba automaatselt kasutaja järgi asukoht?
Kui kange tahtmine on HTML-i trükkida, siis ei ole vast mõtet JS-iga jeblada. Pigem tuleks print media tüübile eraldi CSS kehtestada, kus on teised reeglid kui brauseris kuvatavale sisule.
Ei, brauser pole probleem - kõigil kasutajatel on tsentraalselt kontrollitud IE-d, st täpselt samad versioonid, täpselt samas seades jne. Samuti pole probleemiks "Actual size" valimine print-aknast. Probleemiks on vaid asjaolu, et erinevad printerid trükivad ikkagi mõned mm mööda, vahel lausa 5+ mm. Näiteks tegin täna katseid ühest samast arvutist, ühest samast brauserist ja Adobe Reader versioonist FPDF ja TCPDF näidis-dokumentidest kolme erinevasse printerisse ning tulemused on ikka päris mööda teineteisest. Ma muidugi ei tea veel, kas need FPDF ja TCPDF näidised on ikka niimoodi genereeritud, et on antud täpne kaugus näiteks lehe servast jmt. Uurin veel edasi.
Samuti ei aita siin media type kuidagimoodi Probleem on veidi teistlaadne.
Kas objekt on õiges mõõtkavas aga asub paberil natuke teises kohas? Nt objekt on täpsetes mõõtmetes aga asub servast mõni millimeeter eemal?
Seda probleemi sa odavate printeritega ei lahenda, kuna paberi ettesöötmine on ebatäpne.
Sa võid üritada sama printeriga ka printida ja võid saada täiesti erineva tulemuse...
Paberi suunajad peavad olema printeris täpselt ning etteande rullikud peavad korralikult töötama (ei tohi libiseda) mis paar aastat vanal printeril juba ei tööta....
Mis on eesmärk?
Kas printerid on all asetseva paberi sahtliga laserid?
Kas objekt on õiges mõõtkavas aga asub paberil natuke teises kohas? Nt objekt on täpsetes mõõtmetes aga asub servast mõni millimeeter eemal?
Jah, objektide mõõtmed ja paiknemine paberil on üksteise suhtes OK, st. kõik elemendid on sama suurusega ja elementide vahelised kaugused jmt on identsed, klapivad kokku. Probleemiks on see, kui kaugelt vasakust või paremast servast element algab!
ThedEviL kirjutas:
Seda probleemi sa odavate printeritega ei lahenda, kuna paberi ettesöötmine on ebatäpne.
Sa võid üritada sama printeriga ka printida ja võid saada täiesti erineva tulemuse...
Kas Sa oled selles täiesti kindel? Mul on üks vana, vähemalt 7-8 aastat tagasi tehtud, Macromedia Flash rakendus, mis suudab erinevatel printeritel väga täpselt selle positsiooni paika panna. Samuti ei ole täheldanud samast printerist erinevate tulemuste tekkimist. Üks printer trükib ikka samamoodi. Ja ega mul pole ka mikromeetri täpsusega seda vaja, kui täpsusaste jääks alla 1,5mm, oleks juba OK.
ThedEviL kirjutas:
Mis on eesmärk?
Eesmärk on see, et trükikojast tulevad ettekujundatud blanketid, millele peab minu programm suutma kirjutada etteantud lahtritesse sisu. Sisu trükkijateks on inimesed, kellel on kasutada ainult mustvalged printerid, sellepärast ei saa lasta neil kogu kupatust (st. ka blanketi värvilist tausta) endal välja trükkida. Kõigi printerite täpset spec. ma hetkel välja tuua ei oska, neid on kümneid. Aga siin olen katsetanud jah sellistega, mis võtavad paberi lahtrist.
Aq, igal printimisel sai valitud kindlasti "Actual size", mitte miski muu?
Kui teha "Fit" või mõni muu sarnane valik, siis arvestatakse printimisel printeri poolt teada antud võimetega serva osas.
Nüüd saan aru jah mis teema on.
Olen ka sellise juraga pead vaevanud. Lõpuks sai tehtud "printerite standardiseerimine" ehk kõik kasutasid sama printerit.
HP printerid, millel oli lisasöötur, suutsid üsna täpselt ennast paigutada. Ei mäleta enam mudelit peast. See lisasöötur ei olnud sahtel vaid tray tüüpi 50 lehe oma vist...
Aga seal oli ka vaja kartongi peale printida, neid kassetist eriti kätte ei saanud.
Ma eeldan, et printerite standardiseerimine ei tule kõnealla (kuigi tänapäeval maksab printer samapalju kui selle kassett)?
Kui on pdf ja marginis kõigil printeris seatud 0 peale, ei tahtnud tõesti erinevad printerid objekti samasse kohta panna.. Ehk tekst läks lahtrist mööda...
Samas mõned printerid lasid teksti üldse sinna kuhu jumal juhatas kuna kippus paberit viltu võtma.. (või noh kartongi)
Ma olen nüüd päris kaugele edasi jõudnud. Võtsin kasutusse TCPDF klassi ja sain keerukama osa tööst tehtud. Nüüd on jäänud justkui lihtsam osa, aga taaskord olen olukorras, millele ma ise vastust pakkuda ei oska.
Vaadake kaaspandud pilti: miks on nii, et TCPDF võimaldab mul trükkida ülemises server kuni paberi ülemise servast 5mm. Samas alumist trükki pole võimalik viia paberi servale lähemale kui 2cm. Edasine lükatakse juba uuele lehele.
Millest on see tingitud? Eeldan, et printer suudaks trükkida kuni paberi servale kuni 5mm lähedale. Aga miks ta ei suuda trükkida ühele (alumisele) servale nii lähedale? Nagu näha, ka vasakult ja paremalt saab kenasti sellega hakkama. Omast arust olen kõik margin'id ja padding'ud 0 sättinud...
Ei olnud, aga ega ma sellest aru küll ei saa. Mida sellega teha tuleb? Ma oskan selle abil küll kasti ära joonistada, aga mis eesmärki see peaks täitma? Siiani olen näidete järgi kasutanud TCPDFi ja kastide joonistamiseks kasutan MultiCell'i.
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.