Windows printelés programból (batch-ből)

A következő műveletet szeretném végrehajtani Windows 7 vagy 10-en batchből, vagy akármilyen (script) programból:

1) Végrehajtani valamit (notepad, wordpad?), ami kinyomtat egy text fájlt.

2) Amikor a nyomtatás folyik ne jöjjön fel semmi. Például a notepad ablaka.

3) A nyomtatás után le akarom a fájlt törölni, ehhez értesülnöm kéne arról, hogy a nyomtatást végző programnak már nincs szüksége a fájlra.

Természetesen keresgélek a neten, de eddig nem sok jót találtam. Viszont nüanszokon is múlhat a dolog, amiről nem tudok, mert nem ismerem a Windowst.

Példa:

notepad /p textfile

Erre feljön az applikáció választó dialog (teljesen rossz).

Javítás:

notepad.exe /p textfile

Ez már jobb, mert legalább a notepad jön fel nyomtatás módban. De mégsem jó, mert csendben kéne nyomtatni. Azonkívül, ha még a nyomtatás (interaktív) indítása előtt törlöm a fájlt, akkor befagy.

Hátha van valakinek bejáratott módszere.

Hozzászólások

A végrehajtani valamit fontos? A text filet egy az egyben küldenéd a nyomtatóra? ( copy file.txt lpt1: ) Mi számít sikeres nyomtatásnak? (emlékem szerint már az is sikeres ha bekerül a nyomtatási sorba :))

Nincs olyan, hogy LPT* meg COM*. A print parancsnak is az a baja, hogy ilyenekre akar másolni. Ahogy értem, ezek csak régiségek.

Sikeres nyomtatás? Nem ezt írtam, hanem, hogy "a nyomtatást végző programnak már nincs szüksége a fájlra".

Közben találkoztam Windows 10-en az LPD service-szel (Line Printer Daemon). Ki-be tudom kapcsolni. A dokumentációk szerint (és a UNIX-os eszem szerint) kellene ehhez tartozzon egy lpq és lpr parancs. Ez az, ami nekem kéne. Csakhogy nem találok ilyet a Windowsomon.

--
ulysses.co.hu

Nincs olyan, hogy LPT* meg COM*. A print parancsnak is az a baja, hogy ilyenekre akar másolni. Ahogy értem, ezek csak régiségek.

Szerintem lptx-nek még mindig felcsatolhatsz bármilyen nyomtatót nyomtatót. Akár helyit is igaz meg kell osztani és akkor valami "net use lpt1: \\127.0.0.1\nyomtato /persistent:yes" lesz.

Az LPD Service alatt meg van egy "LPR portfigyelő" az ad neked lpq és lpr parancsokat. :)

"Nincs olyan, hogy LPT* meg COM*."

Mármint nem akarod ezt a megoldást használni? A print parancs tud hálózati megosztott nyomtatókra is nyomtatni:

print /d:\\copyroom\printer1 c:\accounting\report.txt

(Forrás: https://technet.microsoft.com/en-us/library/cc731623(v=ws.11).aspx )

- - - - - -

Ha esetleg nem szöveget hanem képet akarsz nyomtatni, vagy pdf-et, vagy html-t, akkor tudok segíteni konkrét programmal. Pár hónapja nekem ez volt a problémám (https://hup.hu/node/154053?comments_per_page=9999), végül egy kolléga küldött egy pár soros C# programot, amit erősen kiegészítve és módosítva végül lett egy command line -ból paraméterként kép és nyomtató nevet fogadó programom. Erősen korlátos, 1:1 px alapon kinyomtatja amit adsz neki, ha nem fér ki nem méretezi (hőnyomtatóra kellett, ez volt a legjobb megoldás), egy konkrét feladathoz kellett, nem univerzális.

Mondanám, hogy a .txt fájlodból csinálj .png-t (.php-vel kb. 5 sor), vagy .pdf-et (szintén pár sor), majd abból .png-t, itt legalább elég sok formázási lehetőséged lesz, a print kb. valami gusztustalan olvashatatlan betűtípussal dolgozik, azt se tudom, hogy sortörést kezel-e. Nálam html->pdf->png lett a megoldás, html->png lib-et nem találtam ami ne lett volna feleslegesen nagy, és a .pdf készítő libet már ismertem, az imagemagick meg pdf->png-ben profi.

Köszönöm a segítséget.

A print, lpr, lpq-t és társaikat most tanulom. Az eddigi legjobb kísérlet, ami már megoldja a feladatot:

notepad++ -quickPrint filename

Text és legfeljebb pdf kell. A karakterkódolás UTF-8. A notepad++-ban az is jó, hogy defaultból UTF-8, más programoknál, ahogy látom azzal is szenvedni kell.

--
ulysses.co.hu

Jelenlegi állás:

1. Minimális elfogadható megoldás a notepad++.

2. A print beteszi a fájlt a printer sorba, de nem nyomtat. Példa: kikapcsolom a nyomtatót, kiadom a print parancsot, mire megjelenik a sorban a job. Bekapcsolom a nyomtatót, a sor azonnal kiürül, de nyomtatás nem történik.

3. Sikerült megszólaltatni az lpr/lpq-t. Ami miatt korábban nem ment, hogy nem a 127.0.0.1-et kell megadni, hanem a külső ip címet. Az lpr nyomtat, de az utf-8 karakterek helyén kriksz-kraksz van. Egyelőre nem találom, hogyan lehetne rábeszélni az utf8 kódolásra.
--
ulysses.co.hu

A 65001 nálam mindig be van állítva. Az a furcsa, hogy egy ilyen keresésre, mint "windows print utf-8" kevés kivétellel olyan topicok jönnek föl, amik a terminálba írt szövegekre kérdeznek. Pont ez nem fontos, tőlem írhat a terminálba, ahogy akar. Printerre kell nyomtatnom.
--
ulysses.co.hu

Ha már pdf jó, akkor sumatra pdf, ingyenes, gpl program, doksi itt:

https://www.sumatrapdfreader.org/docs/Command-line-arguments-0c53a79e91…

Ami miatt én nem használtam, hogy hőnyomtatón, kis méretű betűknél a felbontása nem volt jó, nem ismerem az okát (nem néztem a forrását, ránézésre rossz felbontásban nyomtat, elég spórolósan), de próbáld meg, konkrétan egy perc:

sumatra.exe -print-to "nyomtató neve helyi formában (nem \\..\.. hálózati néven)" print.pdf >> sumatra.log

(A naplóba megy a kimenete, asszem nem igazán beszédes, illetve van egy pár hasznos kapcsoló, mint a ' -print-settings "fit" '.)

Ha a minőség nem jó, és esetleg van távlati terv a project-el szólj, a saját nyomtató programomat odaadom, a txt->pdf->png átalakítást ha megoldod még jobb, de .php kódot tudok adni (mpdf.php, imagemagick kell hozzá).

Végül az lett, hogy írtam egy programot, ami a text fájlokból rtf-et készít. Kiderült ugyanis, hogy egyszerű formázásokra is szükség van, ilyenekre mint: lapemelés, fontváltás. Az rtf-et aztán egyszerűen lehet nyomtatni batchből Windowson is Linuxon is LibreOffice-szal, OpenOffice-szal, MS Office-szal. Platform- és nyomtatófüggetlen megoldás.

Az itt a kritikus pont, hogy rá kell jönni, hogy az rtf egy tök egyszerű formátum, amit egyszerűen lehet írni bármilyen (program)nyelvből. Ennek a doksinak az első fejezete teljesen elég az rtf-hez: https://www.safaribooksonline.com/library/view/rtf-pocket-guide/9781449…

--
ulysses.co.hu

Üdv!

A pdfforge mivel vérzett el?
Ha jók az emlékeim csinálja nyomtatja és el is tünteti. Kis ikon a tálcán.
2k3 2k8 kiszolgálókon - ha emlékeim nem csalnak - is tette a dolgát.
(Legalábbis a pdf gyártást, de ha jól rémlik tud nyomtatni is fizikai nyomtatóra.)

--
RudyD