Nyomtatás hogyan

Fórumok

Érdekelne, ki hogyan készít nyomtatást ccc3-ban.
Elsősorban helyi (LAN) és ügyviteli alkalmazásokra gondolok.
Mik a tapasztalatok, javaslatok?

Hozzászólások

Szia!

Én kétféleképpen nyomtatok perpill: karakteresen Epson FX-1050 mátrixnyomtatóra, és HTML alapokon. A HTML alapú az most úgy megy, hogy feljön az Explorer, aztán a kedves user megnyomja, hogy File, Nyomtatás. Arról, hogy hogyan kell HTML alapokon report-olni, a Wikiben találsz bővebb infót, a CGI Wizard alatt.
A karakteres nyomtatást meg úgy csináltam meg, lusta ember lévén, hogy csináltam #command PRINT-et, ami szintén pozíció szerint működik, mint Clipperben, és azt csinálja, hogy egy bufferbe begyűjti a nyomtatnivalót, és soremeléskor kinyomtatja. Elküldjem, vagy közzétegyem?

w

Oké. Ez két lépésből fog állni: az egyik, hogy a Wikibe írok valami doksit a HTM2CTM működéséről, ezt már más is kérte, meg beleteszem a ccc3ext-be a nyomtatási kiegészítéseket. De ezt már csak 'holnap', azaz ma, szóval vasárnap :D Addig, ha van kedved, a CGI Wizarddal tudsz generálni kódot, és azt tudod nézegetni, hogy mit hogy csinál, illetve a ccc-contrib alatt lévő htm2ctm-ben van readme.txt, amiben vázlatosan le vannak írva a dolgok.

w

Kis áttekintés:

1)
A devpos, devout függvények csak karakteres képernyőre működnek, tehát a
@ row,col SAY expr
típusú pozícionált írás nyomtatóra nem megy.

2)
set printer to LPT1
set printer on
? "ez megy a nyomtatóra"

Windowson ez kiír egy sort a párhuzamos portra csatlakoztatott nyomtatóra.

Ez működik Linuxon is, ha be van kapcsolva a
set DOSCON on
vagy
set DOSCONV to DOSCONV_SPECDOSDEV
és meg van adva a CCC_LPR környezeti változó, amiben egy szűrőprogram specifikációja kell legyen. Ebben az esetben úgy történik a nyomtatás, hogy a program elindítja a CCC_LPR-ben megadott szűrőt, és ennek stdin-jére kiírja a nyomtatandó szöveget. A szűrő aztán azt csinál a szöveggel, amit akar. Ha Unixon nincs megadva a DOSCONV_SPECDOSDEV, akkor az LPT1 fájlnévnek nincs speciális jelentése, hanem keletkezik egy közönséges LPT1 nevű fájl, és abba megy a szöveg.

Persze ez csak a legegyszerűbb esetben elég. Mivel én a TeX-et ismerem, azzal nyomtatok. A CCC program csinál egy TeX forrást, leteszi valahova, azt észreveszi egy másik program, aminek az a dolga, hogy a forrást áthajtsa a TeX feldolgozáson (ps-t vagy pdf-et készítsen belőle) és kinyomtassa.

Kérdésem, hogy egy _programnyelv_ esetében mit értsünk a nyomtatás támogatásán. Pl. a Python mivel segíti a nyomtatást?

Amikor a Jáva terminált csináltam (4-5 éve), raktam volna bele nyomtatási funkciókat is. Viszont azt tapasztaltam, hogy a jávás nyomtatás katasztrófálisan használhatatlan (API specifikációk használható implementáció nélkül). Van-e valakinek újabb tapasztalata?

--
CCC3

"a CCC_LPR környezeti változó, amiben egy szűrőprogram specifikációja kell legyen."
ez a wiki oldalra kívánkozik.
mint megoldás nagyon is használható.

Néhány évet dolgoztam más /fehérdobozos, másik/ szoftverrel (reklámnak itt nincs helye)

ott nyelvi szinten ilyen megoldás volt:

? <változó> at <oszlopszám> 

de volt egy kicsit sánta, kicsit bandzsal de használható report készítő eszköz.
az alkalmazás fejlesztők általában nem ismerik a TEX-et (én sem).

linux-ot használok ott meg tapasztalataim szerint a TEX összeállítása terjesztésenként más. Pl. az UHU-n elhasalt a próba programom amikor az UTF8-print- et próbáltam, míg az Ubuntun símán lefutott. /ciril betűs kiírás/

itt jön elő a kérdés: mi lett a page sorsa?
a ccc2-ben még benne volt , és nagyon tetszett mivel első látásra nem tudtam
használni, de aztán kinyomoztam. :)

de akinek WYSWYG (tájszólásban: vizelj vígan:)) eszköz kell, az lehet nem a CCC-t választja, bár mint nyelv nekem tetszik.

CCC2-höz volt (van) egy lpr-hphun nevű szűrő, ami HP nyomtatón írógépszerűen nyomtat. Úgy csinál Latin-2 ékezetes betűket, hogy kiír egy ékezet nélküli betűt, fölé pozícionál, karakterkészletet vált, és kiír egy ékezet karaktert. Mi ez, ha nem egy primitív printer driver? UTF-8-ra (azaz CCC3-hoz) nem csináltam meg.


? <változó> at <oszlopszám>

Az ilyen nyomtatással az a baj, hogy karakterpozícióban pozícionál. Ebből adódóan csak monospace betűtípussal működik jól, amit a mostani felhasználók már nem fogadnak el. Azt írod: "ez nyelvi szint". Szerintem ez alkalmazás szint. Ilyen típusú nyomtatást nem volna nehéz csinálni, ha nem a nyomtató vezérlésével kellene vacakolni.

A page-et nem portoltam CCC3-ra. Ha valakinek kell, megcsinálja magának. Meg kell oldani, hogy a lap rajzát tartalmazó filé latin-2 helyett UCS kódban legyen, meg kell oldani, hogy mindenféle UCS kódok (pl. cirill betűk) valahogy megjelenjenek a különféle printereken. Megint nyomtató vezérlés.

Szvsz a nyomtatóvezérléssel kapcsolatos dolgokat óriási ívben el kell kerülni. Azt a megoldást látom, hogy a CCC programommal előállítom a dokumentumot valamilyen lapleíró formátumban, szerencsétlenségemre én éppen a TeX-et ismerem, de lehet HTML-t is csinálni. Az így készült dokumentumot aztán a "szokásos" módon lehet nyomtatni.

Éppen a TeX az, amire univerzálisan lehet számítani, ami minden rendszeren ugyanolyan. Nézd meg pl. a TeXLive-ot.

Az lpr-hphun-t nem írtam át UTF-8-ra. Helyette van egy olyan program, ami a szövegből TeX dokumentumot csinál: TeX verbatim környezetbe teszi, meghívja rá a latex és dvilj programokat, és az eredményt az stdout-ra írja. Így lehet használni:


utf8-print.exe <fspec | lpr

Vagy csinálsz egy scriptet lpr-utf8 néven:


#!/bin/bash
utf8-print.exe | lpr

és a script specifikációját beteszed CCC_LPR-be

export CCC_LPR=.../lpr-utf8

Akkor ez a program


#include "fileconv.ch"

function main()
local text:=<<TEXT>>
GNU GENERAL PUBLIC LICENSE
ТЕРМИНЫ И УСЛОВИЯ КОПИРОВАНИЯ, РАСПРОСТРАНЕНИЯ И МОДИФИКАЦИИ
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
öt szép szűzlány őrült írót nyúz
<<TEXT>>
    set dosconv  DOSCONV_SPECDOSDEV
    set printer on
    ? text

szépen kinyomtatja a szöveget. Ez _sokkal_ egyszerűbb, mint egy printer driver. Cirill betűket nyomtat, miközben nem tudom, hogy kell a nyomtatómból cirill betűket kicsiholni. Az igaz, hogy dobozrajzolókat és örmény betűket nem tud, de ez csak azért van így, mert nehéz az UTF-8-at mindenre kiterjedően implementálni.

A report készítő az én szempontomból alkalmazás. Jelenleg nem csinálok reportokat, és azért report készítőt sem. Ha csinálnék, akkor az valahogy TeX dokumentumon keresztül nyomtatna.

--
CCC3