epsoneplijs - Is it working on freeBSD ?

Ok. I'm back again.

Finally i am able to print on my Epson AcuLaser M1200.

The only problem is the right side of the page is somehow cut a little. Looks like some margins setting problem.

To be honest i don't know why it works now.

I installed ports , compiled new ghostscript with IJS checked, removed old ghostscript and installed the new one.

The 'ijs_server_epsonepl EPL-6200L /dev/ulpt0
Confirmed EPL-6200L
Unknown transport method: 0'

is still like it was - so it turned out it dosen't matter.

I just once again started CUPS configuration picked my EPSON M1200 from found printers and added unmodified in any way file EPL-6200L-Hardy.ppd.

Right after that i printed test page from the CUPS and it printed out but the right side of the page is cut a bit.

Then i printed a document from OpenOffice and again everything works fine but the right side is again cut.

I'm partially happy - from the one side it finally works. From the other i'm not sure why exactly it works now (was it lack of ijs support in ghostscript ?) . Now i must resolve the problem with proper formatting on the page.

Any thoughts ?
 
without ijs support in GS there is no way to convert postscript to native printer language
ijs_server does the convertion from a known raster type generated by gs to epl raster
from my underdtanding the communication part libusb/kern usb/ieee1284 is only required if you have no kernel ulpt support and then libusb handles the usb talking
ieee1284 is parallel port
 
first i taught that epson epl has a kind of weirdo usb comm protocol not handled by ulpt
(it seems the libusb implementation predates (general availability of) linux kernel support for usb printers)
 
without ijs support in GS there is no way to convert postscript to native printer language
ijs_server does the convertion from a known raster type generated by gs to epl raster
from my underdtanding the communication part libusb/kern usb/ieee1284 is only required if you have no kernel ulpt support and then libusb handles the usb talking
ieee1284 is parallel port

You are probably right.

I just made a small test. I checked where ijs_server_epsonepl is currently located in my system. It was only in /usr/local/bin/ . I renamed the file to some random name and tried to print something. It failed.

So i can assume few things about this installation:

1) Ghostscript must be compiled with IJS support. Without that it won't work. (I guess here was the main problem)
2) We need to install epsoneplijs (It dosen't need any modifications to work on BSD). Despite 'make install' failed, it still compiles the needed file ijs_server_epsonepl
3) That file goes to /usr/local/bin/ (I made it executable first chmod +x)
4) Then we can just add printer with CUPS and use the same .ppd file as for linux (it also DOESN'T need any modifications)
5) In CUPS there is an option in this printer settings called FLOW CONTROL where can be selected some options like libusb and other. I just leave at OFF selection and it works just fine.

BTW. Big thanks for your help ( especially -> COVACAT <- ).

Now ... the last question... how to change the margins setting ? and generally set the proper paper size.

I have chosen A4 in CUPS printer settings but it isn't perfect. On printed page i have left margin 20mm and right 12mm.

Is there any file to edit this ?
 
.......
So i can assume few things about this installation:

1) Ghostscript must be compiled with IJS support. Without that it won't work. (I guess here was the main problem)
ijs should be generated by the default build. It is certainly available in the package. You can check the available drivers with
$ gs -h
Output on Debian 12, Note that there is also an epl6200 device that would be worth looking at:
Code:
$ gs -h
GPL Ghostscript 10.00.0 (2022-09-21)
Copyright (C) 2022 Artifex Software, Inc.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF
Default output device: x11alpha
Available devices:
   alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 ap3250 appledmp
   appleraster atx23 atx24 atx38 bbox bit bitcmyk bitrgb bitrgbtags bj10e
   bj10v bj10vh bj200 bjc600 bjc800 bjc880j bjccmyk bjccolor bjcgray bjcmono
   bmp16 bmp16m bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 ccr cdeskjet
   cdj1600 cdj500 cdj550 cdj670 cdj850 cdj880 cdj890 cdj970 cdjcolor cdjmono
   cdnj500 cfax chp2200 cif cljet5 cljet5c cljet5pr coslw2p coslwxl cups
   declj250 deskjet devicen dfaxhigh dfaxlow display dj505j djet500 djet500c
   dl2100 dnj650c epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900
   epl6100 epl6200 eplcolor eplmono eps2write eps9high eps9mid epson epsonc
   escp escpage faxg3 faxg32d faxg4 fmlbp fmpr fpng fs600 gdi hl1240 hl1250
   hl7x0 hpdj1120c hpdj310 hpdj320 hpdj340 hpdj400 hpdj500 hpdj500c hpdj510
   hpdj520 hpdj540 hpdj550c hpdj560c hpdj600 hpdj660c hpdj670c hpdj680c
   hpdj690c hpdj850c hpdj855c hpdj870c hpdj890c hpdjplus hpdjportable ibmpro
   ijs imagen inferno ink_cov inkcov itk24i itk38 iwhi iwlo iwlq jetp3852
   jj100 jpeg jpegcmyk jpeggray la50 la70 la75 la75plus laserjet lbp310
   lbp320 lbp8 lex2050 lex3200 lex5700 lex7000 lips2p lips3 lips4 lips4v
   lj250 lj3100sw lj4dith lj4dithp lj5gray lj5mono ljet2p ljet3 ljet3d ljet4
   ljet4d ljet4pjl ljetplus ln03 lp1800 lp1900 lp2000 lp2200 lp2400 lp2500
   lp2563 lp3000c lp7500 lp7700 lp7900 lp8000 lp8000c lp8100 lp8200c lp8300c
   lp8300f lp8400f lp8500c lp8600 lp8600f lp8700 lp8800c lp8900 lp9000b
   lp9000c lp9100 lp9200b lp9200c lp9300 lp9400 lp9500c lp9600 lp9600s
   lp9800c lps4500 lps6500 lq850 lxm3200 lxm5700m m8510 md1xMono md2k
   md50Eco md50Mono md5k mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8 mgrmono miff24
   mj500c mj6000c mj700v2c mj8000c ml600 necp6 npdl nullpage oce9050 oki182
   oki4w okiibm oprp opvp paintjet pam pamcmyk32 pamcmyk4 pbm pbmraw pcl3
   pclm pclm8 pcx16 pcx24b pcx256 pcxcmyk pcxgray pcxmono pdfimage24
   pdfimage32 pdfimage8 pdfwrite pdfwrite pdfwrite pgm pgmraw pgnm pgnmraw
   photoex picty180 pj pjetxl pjxl pjxl300 pkm pkmraw pksm pksmraw plan
   plan9bm planc plang plank planm plib plibc plibg plibk plibm png16 png16m
   png16malpha png256 png48 pngalpha pnggray pngmono pngmonod pnm pnmraw ppm
   ppmraw pr1000 pr1000_4 pr150 pr201 ps2write psdcmyk psdcmyk16 psdcmykog
   psdcmyktags psdcmyktags16 psdrgb psdrgb16 pwgraster pxlcolor pxlmono
   r4081 rinkj rpdl samsunggdi sj48 spotcmyk st800 stcolor t4693d2 t4693d4
   t4693d8 tek4696 tiff12nc tiff24nc tiff32nc tiff48nc tiff64nc tiffcrle
   tiffg3 tiffg32d tiffg4 tiffgray tifflzw tiffpack tiffscaled tiffscaled24
   tiffscaled32 tiffscaled4 tiffscaled8 tiffsep tiffsep1 txtwrite uniprint
   urf x11 x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 x11gray4
   x11mono x11rg16x x11rg32x xcf xcfcmyk xes xpswrite
 
ijs should be generated by the default build. It is certainly available in the package. You can check the available drivers with
$ gs -h
Output on Debian 12, Note that there is also an epl6200 device that would be worth looking at:
Code:
$ gs -h
GPL Ghostscript 10.00.0 (2022-09-21)
Copyright (C) 2022 Artifex Software, Inc.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF
Default output device: x11alpha
Available devices:
   alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 ap3250 appledmp
   appleraster atx23 atx24 atx38 bbox bit bitcmyk bitrgb bitrgbtags bj10e
   bj10v bj10vh bj200 bjc600 bjc800 bjc880j bjccmyk bjccolor bjcgray bjcmono
   bmp16 bmp16m bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 ccr cdeskjet
   cdj1600 cdj500 cdj550 cdj670 cdj850 cdj880 cdj890 cdj970 cdjcolor cdjmono
   cdnj500 cfax chp2200 cif cljet5 cljet5c cljet5pr coslw2p coslwxl cups
   declj250 deskjet devicen dfaxhigh dfaxlow display dj505j djet500 djet500c
   dl2100 dnj650c epl2050 epl2050p epl2120 epl2500 epl2750 epl5800 epl5900
   epl6100 epl6200 eplcolor eplmono eps2write eps9high eps9mid epson epsonc
   escp escpage faxg3 faxg32d faxg4 fmlbp fmpr fpng fs600 gdi hl1240 hl1250
   hl7x0 hpdj1120c hpdj310 hpdj320 hpdj340 hpdj400 hpdj500 hpdj500c hpdj510
   hpdj520 hpdj540 hpdj550c hpdj560c hpdj600 hpdj660c hpdj670c hpdj680c
   hpdj690c hpdj850c hpdj855c hpdj870c hpdj890c hpdjplus hpdjportable ibmpro
   ijs imagen inferno ink_cov inkcov itk24i itk38 iwhi iwlo iwlq jetp3852
   jj100 jpeg jpegcmyk jpeggray la50 la70 la75 la75plus laserjet lbp310
   lbp320 lbp8 lex2050 lex3200 lex5700 lex7000 lips2p lips3 lips4 lips4v
   lj250 lj3100sw lj4dith lj4dithp lj5gray lj5mono ljet2p ljet3 ljet3d ljet4
   ljet4d ljet4pjl ljetplus ln03 lp1800 lp1900 lp2000 lp2200 lp2400 lp2500
   lp2563 lp3000c lp7500 lp7700 lp7900 lp8000 lp8000c lp8100 lp8200c lp8300c
   lp8300f lp8400f lp8500c lp8600 lp8600f lp8700 lp8800c lp8900 lp9000b
   lp9000c lp9100 lp9200b lp9200c lp9300 lp9400 lp9500c lp9600 lp9600s
   lp9800c lps4500 lps6500 lq850 lxm3200 lxm5700m m8510 md1xMono md2k
   md50Eco md50Mono md5k mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8 mgrmono miff24
   mj500c mj6000c mj700v2c mj8000c ml600 necp6 npdl nullpage oce9050 oki182
   oki4w okiibm oprp opvp paintjet pam pamcmyk32 pamcmyk4 pbm pbmraw pcl3
   pclm pclm8 pcx16 pcx24b pcx256 pcxcmyk pcxgray pcxmono pdfimage24
   pdfimage32 pdfimage8 pdfwrite pdfwrite pdfwrite pgm pgmraw pgnm pgnmraw
   photoex picty180 pj pjetxl pjxl pjxl300 pkm pkmraw pksm pksmraw plan
   plan9bm planc plang plank planm plib plibc plibg plibk plibm png16 png16m
   png16malpha png256 png48 pngalpha pnggray pngmono pngmonod pnm pnmraw ppm
   ppmraw pr1000 pr1000_4 pr150 pr201 ps2write psdcmyk psdcmyk16 psdcmykog
   psdcmyktags psdcmyktags16 psdrgb psdrgb16 pwgraster pxlcolor pxlmono
   r4081 rinkj rpdl samsunggdi sj48 spotcmyk st800 stcolor t4693d2 t4693d4
   t4693d8 tek4696 tiff12nc tiff24nc tiff32nc tiff48nc tiff64nc tiffcrle
   tiffg3 tiffg32d tiffg4 tiffgray tifflzw tiffpack tiffscaled tiffscaled24
   tiffscaled32 tiffscaled4 tiffscaled8 tiffsep tiffsep1 txtwrite uniprint
   urf x11 x11alpha x11cmyk x11cmyk2 x11cmyk4 x11cmyk8 x11gray2 x11gray4
   x11mono x11rg16x x11rg32x xcf xcfcmyk xes xpswrite

Epson 6200 and 6200L are two completely different printers using different drivers (at least this is what i heard)

IJS should be available by default. In every linux i tried it was - but i tried GhostBSD and NomadBSD and in both IJS wasn't available.

But it's always good to learn something new and better understand how printing works in unix-like systems.
 
Now ... the last question... how to change the margins setting ? and generally set the proper paper size.

I have chosen A4 in CUPS printer settings but it isn't perfect. On printed page i have left margin 20mm and right 12mm.

Is there any file to edit this ?
Recent versions of CUPS did get better at centering the printout within margins... Well, on my end of things, the default is US Letter, and I use mostly KDE's print dialog and Firefox print dialog... it's possible to adjust margins there. I also have a habit of running 'Print Preview' or making a PDF printout first.
 
Recent versions of CUPS did get better at centering the printout within margins... Well, on my end of things, the default is US Letter, and I use mostly KDE's print dialog and Firefox print dialog... it's possible to adjust margins there. I also have a habit of running 'Print Preview' or making a PDF printout first.

In my case that wouldn't work. It's something related to printer settings. I can see a perfectly centered document on "page preview" in openOffice Writer and printout still is a bit "moved" to the right.

Even the CUPS generated printing test page is affected by that. I will be definitely trying to solve this in the coming days.
 
Ok. I'm back again.

Finally i am able to print on my Epson AcuLaser M1200.


.....

Any thoughts ?
In my initial post in this thread, I suggested you do not use cups but the FreeBSD lpd print spooler that is the default print system. It is not that hard to set up - you can almost copy -> paste the instructions.
Advantages of the lpd print system.
1. You can specify ijs as the print device - you've already shown it will print.
2. According to this, it has both usb and parallel ports. It is easy to specify the parallel port in your /etc/printcap and should allow you to work around any usb port issues.
3. If you still want to use the usb port, you can specify two different communication protocols - I pasted the relevant information in my 1st post.
4. You can adjust paper sizes in ghostscript. In this Thread 50607, I describe setting up env10 envelope size.
 
In my case that wouldn't work. It's something related to printer settings. I can see a perfectly centered document on "page preview" in openOffice Writer and printout still is a bit "moved" to the right.

Even the CUPS generated printing test page is affected by that. I will be definitely trying to solve this in the coming days.
You use OpenOffice? as in editors/openoffice-4? That stuff is nearly 2 years old (at v. 4.1.15), and there's very little development compared to LibreOffice... in my experience, OpenOffice printouts always suffered from off-center printouts, even after CUPS did improve their own 'printing test' page.
 
Yep, I'm using OpenOffice 4.1.15 . It has everything what i need.
In reference to my earlier post on using the FreeBSD lpd print spooler, in gtk2 based applications the print dialog will interface with both cups and the lpd print spooler. Support of the lpd print spooler was dropped in gtk3.

There are work arounds to utilized later versions of openoffice/libreoffice with the lpd print spooler. Essentially save your work as a *pdf and print the pdf from the command line or via
graphics/zathura-pdf-mupdf.
 
So far i still encounter problems with page formatting. It's not openoffice fault. I can download .pdf file from the internet and after printing it - it's cutted about 1 cm on the right side of the page. (to be clear - there is still free surface on the page but it's cutted)

I have edited the .ppd file . I can change margins , change page size etc... still even when i print it on much smaller page surface it's the same result.

The situation described above is with pdf documents that are made in a way where they need whole width of the page.
Normal text documents from openoffice (even rendered to pdf) still can be printed and are visible but the right margin is always thinner.

I have no idea what to do.
 
Several possibilities you may be able to narrow with some testing:
Using the older version of OpenOffice is likely generating older pdf specfications. The latest pdf specification is 1.7.
pdfinfo(1)
There are also utilities to change the pdf specification.
https://superuser.com/questions/25598/linux-pdf-version-converter
and some online converters.
An internet search will get you some test.pdf files. If they print OK then it suggests a problem with generating the *pdf in OpenOffice.
There are some utilites to change versions/repair pdf:
https://stackoverflow.com/questions/57612957/ghostscript-to-convert-pdf-2-back-to-pdf-version-1-7

Second possibility is not accepting the page size specified in the pdf. pdfinfo(1) should also help you sort this out.

Lastly, Ghostscript also has variables to adjust alignment:
Margin Problems in Ghostscript
and Utilities to condense/crop
Ghostscript- MediaBox, TrimBox, BleedBox
 
Back
Top