SeaPrint - Network printing for SailfishOS

Hi, my Printer works with Seaprint but is shown as “unknown printer” and can`t show the right ink level on. I Postet it in the Storeman comments and @attah told me I should post an debug output from my printer here. But how ca I create something like that in Windows?

In the SeaPrint app, with no document selected, rapidly tap the printer 5 times. Copy to e.g. an email to yourself and post it here. Please make sure to use a “hide details” section , as it is quite alot of info.

A suggestions on the visuals side of things. When SeaPring shows the available printers there is either an icon of a printer (the same as in the logo) or a pic of the printer (which imo looks a bit meh). So i would like to propose to remove both and use a line printer icon similar to the line icons of SFOS.

I get that the picture of the printer “helps” the user but i cant help feel that with my suggestion the app will look better. :man_shrugging:

1 Like

I would like to propose not removing the printer pic. I like it, and my printer looks awesome! You can always buy a better looking printer :wink: Actually, this was even useful when I had two printers. These days I only have one, so the pic (or icon) doesn’t have any functional value, but still I like the way it looks.

5 Likes

Sorry, i will not take your suggestion. The impromptu like-vote seems to agree with me as well.
If your printer-supplied images is showing up as too low resolution, post your debug-output, and i’ll see if i can improve the heuristics and pick one in a higher resolution, if available.

Maybe i am too fond of the nice logo, and am over-using it… but i am no graphics designer. And definitely couldn’t make something better even if i knew what i wanted. I was just looking over the sharpness of the logo on the cover, so i’ll give the ones showing up in the main view that same treatment. (But it is only a slight improvement there)

2 Likes

No problem. :slightly_smiling_face:

1 Like

Thank you attah;

here is my log:

Summary

{
“charset-configured”: {
“tag”: 71,
“value”: “utf-8”
},
“charset-supported”: {
“tag”: 71,
“value”: [
“utf-8”
]
},
“color-supported”: {
“tag”: 34,
“value”: true
},
“compression-supported”: {
“tag”: 68,
“value”: [
“none”
]
},
“copies-default”: {
“tag”: 33,
“value”: 1
},
“copies-supported”: {
“tag”: 51,
“value”: {
“high”: 1,
“low”: 1
}
},
“document-format-default”: {
“tag”: 73,
“value”: “application/octet-stream”
},
“document-format-supported”: {
“tag”: 73,
“value”: [
“application/octet-stream”,
“image/urf”,
“image/pwg-raster”
]
},
“finishings-default”: {
“tag”: 35,
“value”: 3
},
“finishings-supported”: {
“tag”: 35,
“value”: [
3
]
},
“generated-natural-language-supported”: {
“tag”: 72,
“value”: [
“de”
]
},
“ipp-features-supported”: {
“tag”: 68,
“value”: [
“wfds-print-1.0”
]
},
“ipp-versions-supported”: {
“tag”: 68,
“value”: [
“1.0”,
“1.1”,
“2.0”
]
},
“job-creation-attributes-supported”: {
“tag”: 68,
“value”: [
“copies”,
“finishings”,
“ipp-attribute-fidelity”,
“job-name”,
“media”,
“media-col”,
“orientation-requested”,
“output-bin”,
“output-mode”,
“print-quality”,
“printer-resolution”,
“requesting-user-name”,
“sides”,
“print-color-mode”
]
},
“landscape-orientation-requested-preferred”: {
“tag”: 35,
“value”: 5
},
“marker-colors”: {
“tag”: 54,
“value”: [
“”,
“”,
“”,
“”
]
},
“marker-high-levels”: {
“tag”: 33,
“value”: [
100,
100,
100,
100
]
},
“marker-levels”: {
“tag”: 33,
“value”: [
40,
40,
40,
100
]
},
“marker-low-levels”: {
“tag”: 33,
“value”: [
10,
10,
10,
10
]
},
“marker-names”: {
“tag”: 54,
“value”: [
“”,
“”,
“”,
“”
]
},
“marker-types”: {
“tag”: 68,
“value”: [
“toner”,
“toner”,
“toner”,
“toner”
]
},
“media-bottom-margin-supported”: {
“tag”: 33,
“value”: [
432
]
},
“media-col-default”: {
“tag”: 52,
“value”: {
“media-bottom-margin”: {
“tag”: 33,
“value”: 432
},
“media-left-margin”: {
“tag”: 33,
“value”: 432
},
“media-right-margin”: {
“tag”: 33,
“value”: 432
},
“media-size”: {
“tag”: 52,
“value”: {
“x-dimension”: {
“tag”: 33,
“value”: 21000
},
“y-dimension”: {
“tag”: 33,
“value”: 29700
}
}
},
“media-source”: {
“tag”: 68,
“value”: “auto”
},
“media-top-margin”: {
“tag”: 33,
“value”: 432
},
“media-type”: {
“tag”: 68,
“value”: “stationery”
}
}
},
“media-col-supported”: {
“tag”: 68,
“value”: [
“media-type”,
“media-size”,
“media-top-margin”,
“media-left-margin”,
“media-right-margin”,
“media-bottom-margin”,
“media-source”
]
},
“media-default”: {
“tag”: 68,
“value”: “iso_a4_210x297mm”
},
“media-left-margin-supported”: {
“tag”: 33,
“value”: [
432
]
},
“media-right-margin-supported”: {
“tag”: 33,
“value”: [
432
]
},
“media-source-supported”: {
“tag”: 68,
“value”: [
“auto”,
“manual”,
“tray-1”
]
},
“media-supported”: {
“tag”: 68,
“value”: [
“iso_a4_210x297mm”,
“na_letter_8.5x11in”,
“na_legal_8.5x14in”,
“na_executive_7.25x10.5in”,
“iso_a5_148x210mm”,
“iso_a6_105x148mm”,
“iso_b5_176x250mm”,
“jis_b5_182x257mm”,
“na_number-10_4.125x9.5in”,
“iso_dl_110x220mm”,
“iso_c5_162x229mm”,
“na_monarch_3.875x7.5in”,
“na_index-3x5_3x5in”,
“om_folio_210x330mm”,
“custom_min_76.2x127mm”,
“custom_max_215.9x355.6mm”
]
},
“media-top-margin-supported”: {
“tag”: 33,
“value”: [
432
]
},
“media-type-supported”: {
“tag”: 68,
“value”: [
“stationery”,
“stationery-lightweight”,
“stationery-heavyweight”,
“stationery-cover”,
“envelope”,
“envelope-heavyweight”,
“envelope-lightweight”,
“stationery-recycled”,
“labels”,
“photographic-glossy”,
“stationery-bond”
]
},
“multiple-document-jobs-supported”: {
“tag”: 34,
“value”: false
},
“natural-language-configured”: {
“tag”: 72,
“value”: “de”
},
“operations-supported”: {
“tag”: 35,
“value”: [
2,
4,
8,
9,
10,
11
]
},
“orientation-requested-default”: {
“tag”: 35,
“value”: 3
},
“orientation-requested-supported”: {
“tag”: 35,
“value”: [
3,
4
]
},
“output-bin-default”: {
“tag”: 68,
“value”: “face-down”
},
“output-bin-supported”: {
“tag”: 68,
“value”: [
“face-down”
]
},
“output-mode-default”: {
“tag”: 68,
“value”: “color”
},
“output-mode-supported”: {
“tag”: 68,
“value”: [
“color”,
“auto”,
“monochrome”
]
},
“pages-per-minute”: {
“tag”: 33,
“value”: 23
},
“pages-per-minute-color”: {
“tag”: 33,
“value”: 23
},
“pdf-versions-supported”: {
“tag”: 68,
“value”: [
“none”
]
},
“pdl-override-supported”: {
“tag”: 68,
“value”: [
“attempted”
]
},
“print-color-mode-default”: {
“tag”: 68,
“value”: “color”
},
“print-color-mode-supported”: {
“tag”: 68,
“value”: [
“auto”,
“color”,
“monochrome”
]
},
“print-quality-default”: {
“tag”: 35,
“value”: 4
},
“print-quality-supported”: {
“tag”: 35,
“value”: [
4,
5
]
},
“printer-device-id”: {
“tag”: 53,
“value”: “”
},
“printer-icons”: {
“tag”: 69,
“value”: [
http://BRN30055C0D2E59.local./ipp/printer-icons-128.png”,
http://BRN30055C0D2E59.local./ipp/printer-icons-512.png”
]
},
“printer-info”: {
“tag”: 65,
“value”: “Brother MFC-9340CDW”
},
“printer-is-accepting-jobs”: {
“tag”: 34,
“value”: true
},
“printer-location”: {
“tag”: 53,
“value”: “”
},
“printer-make-and-model”: {
“tag”: 53,
“value”: “”
},
“printer-more-info”: {
“tag”: 69,
“value”: “http://BRN30055C0D2E59.local./net/net/airprint.html”
},
“printer-name”: {
“tag”: 54,
“value”: “”
},
“printer-resolution-default”: {
“tag”: 50,
“value”: {
“units”: 3,
“x”: 600,
“y”: 600
}
},
“printer-resolution-supported”: {
“tag”: 50,
“value”: [
{
“units”: 3,
“x”: 600,
“y”: 600
},
{
“units”: 3,
“x”: 2400,
“y”: 600
}
]
},
“printer-state”: {
“tag”: 35,
“value”: 3
},
“printer-state-reasons”: {
“tag”: 68,
“value”: [
“none”
]
},
“printer-up-time”: {
“tag”: 33,
“value”: 828244
},
“printer-uri-supported”: {
“tag”: 69,
“value”: [
“ipp://BRN30055C0D2E59.local./ipp/print”,
“ipps://BRN30055C0D2E59.local./ipp/print”,
“ipps://BRN30055C0D2E59.local./ipp/print”
]
},
“printer-uuid”: {
“tag”: 69,
“value”: “urn:uuid:e3248000-80ce-11db-8000-30055c0d2e59”
},
“pwg-raster-document-resolution-supported”: {
“tag”: 50,
“value”: [
{
“units”: 3,
“x”: 600,
“y”: 600
}
]
},
“pwg-raster-document-sheet-back-supported”: {
“tag”: 68,
“value”: [
“Rotated”
]
},
“pwg-raster-document-type-supported”: {
“tag”: 68,
“value”: [
“srgb_8”,
“sgray_8”
]
},
“queued-job-count”: {
“tag”: 33,
“value”: 0
},
“sides-default”: {
“tag”: 68,
“value”: “one-sided”
},
“sides-supported”: {
“tag”: 68,
“value”: [
“one-sided”,
“two-sided-long-edge”,
“two-sided-short-edge”
]
},
“urf-supported”: {
“tag”: 68,
“value”: [
“SRGB24”,
“W8”,
“CP1”,
“IS1-4”,
“MT1-3-4-5-8-11”,
“OB10”,
“PQ4-5”,
“RS600”,
“DM1”
]
},
“uri-authentication-supported”: {
“tag”: 68,
“value”: [
“none”,
“none”,
“none”
]
},
“uri-security-supported”: {
“tag”: 68,
“value”: [
“none”,
“ssl3”,
“tls”
]
}
}

  • The Printer is shown as “unknown printer”
  • Supply status is “unnamed Supply” for all 4 toners. But the fill state is shown correct.

Very nice App. Thank you for it.

I have some ideas to make the App better if you have time for it:


When a file is selected for printing, a button should appear under the printer icon wich is called “printer options” or so one. Or let appear an infor for tapping on the printer to configure it.

And right to the selectet file should be a buttor for deleting the file selection.

I think this will make the App easier to use.


On my Screenshot of the Printer-Configuration in the german translation:

  • Please rename the first point “Seiten” with “duplex” or “Forder und Rückseite”.
  • And rename “Seiten bereich” to “Seiten auswählen”.
    In my opinion it would be more unterstand than the current words.

As you can see in the debug info, the printer does not provide a name, is just says:

"printer-name": {
"tag": 54,
"value": ""
},

Nor does it provide information about make and model (the second line):

"printer-make-and-model": {
"tag": 53,
"value": ""
},

My reasoning is that “Unknown” is still better than completely empty.
Edit: Same with supplies: marker-names/colors/types

You mean for accessing the print job options page?
Maybe i should make the printers look less active somehow, before a file is selected, or maybe a notification about no file selected?
I don’t think a button is very “Sailfish”.

Well, the only reason to be able to do that is to get to the debug info, and hopefully that isn’t a common use-case.

Noted, fixing.

that is right

Yes i mean this page. You are right a button is not very Sailfish. And your idea with the more Active Printers is much better than my idea :+1:. But in addition, you could still add a gear icon to the printer icon. Then it would be even more obvious that the ‘Print Settings’ can be found there.

That is not what i mean:


If you tab on the x…


… no more file is selected. is more Handy as restart the app.

Or let open a menu by long pressing on the selected document to get a deselect option. This was my first try to deselect it. Looks better than a button and i think Sailfish users know to use it.

There is a spelling mistake, Sorry. Right is “Vorder- und Rückseite”.

I’ll keep thinking on how to clarify what the next step in printing something is.

Oh, but i think it is. You probably misunderstand me.
There are no reasons to be able to deselect a document, other than accessing debug options.
And most people will never need that… and for that one time i ask for info, restarting the app is fine.

I went with “Duplex”.

seen in this way: Okey.

:+1:

Sorry if I asked again but i found this in the log:

there is the right name of my printer. I´m confused about it. Is this only on the wrong place? And what mean the “tag”: 65?

Yes, that is the wrong place for names.
The attribute is optional and meant for information, not just names.
https://datatracker.ietf.org/doc/html/rfc8011#section-5.4.6

printer-name however, is mandatory.

The tags indicate the IPP data type of the attribute. There are many types that are simply strings, but with some special meanings (only allowed certain values, translatable, untranslatable, URL etc). There are also things like numbers, resolutions and so on, each with their own tag to say what type it is.

Maybe you can check for firmware updates and see if Brother has fixed some of these issues?

1 Like

Thank you for your great support. And this App.

I just checked for a firmware update. It is up do date.

And for a workaround is it not possible to ad it to the app screen?

it would not be the most beautiful, but a solution i find, or not?

Good suggestion, but i don’t think it will work well for the general case.
Most printers doesn’t say anything interesting in the printer-info, they just the name again.
From the printers i have logs from, it is only your printer that would be helped by it (not even ViGe’s Brother that also shows as unknown make and model would be helped).
And if 4 lines wasn’t already getting a bit crowded, i have one log where the printer has newline characters in its printer-info, so that field would span multiple lines and get really messy.

So in the interest of keeping things as simple as possible, i will not add printer-info at this point in time.
Should it turn out to be a common issue, i will remember this and may reconsider.

PS: but i think i see how i can make your printer icon load… so at least that’s something.

2 Likes

ok.

And if 4 lines wasn’t already getting a bit crowded, i have one log where the printer has newline characters in its printer-info, so that field would span multiple lines and get really messy.

good Argument

PS: but i think i see how i can make your printer icon load… so at least that’s something

what will you do?

loading bar in the background of the Printer icon when something is printing?

Another idea is to add inbut field in the top of the printer Icon. Because the user have the choice to ad a special name for the printer. the second is:if user have multiple printers of the same type a inbut field would get more overview for this.

Yes, configurable is probably the way to go.
I never meant to go that far with SeaPrint, but i already have the possibility to save job settings, and overriding format support would make sense.
Along with the latter, overriding names should be pretty straight-forward.
Won’t happen immediately, but probably eventually.

I don’t mean that the icon would show loading, i meant that it would show up at all.
Your printer has the icon addresses as FQDNs for some reason, i.e. with an extra trailing dot.
That trips up resolution of .local since that is all in-app, but i can just compensate for it, now that i know it is a thing.

1 Like

I have an old HP 840C inkjet printer attached to a router and accessible for every Linux PC in the net at /lpr/queue path in cups. Seaprint does not see it and does not accept the same URL. Could it be changed?

No.

SeaPrint supports only IPP, not port 9100 PJL/PCL Raw, not lpr or anything else.
The reason is that it is completely impossible to auto-detect printers, their capabilities, and worst of all, deal with their quirks, over any of the other protocols.

CUPS supports such printers through a whole mess of special handling and PDL files. Even they have realized that it is not sustainable and are moving away from that. Their plan forward is to create more purpose-built applications with PAPPL that serve up such printers over IPP. Then those applications would be responsible for knowing how the printer works, compensating for any shortcomings, etc. and make them appear like proper IPP printers.

Of course this hadn’t happened when i started SeaPrint, i just wanted a reasonable scope, but it is always nice to have some validation.

Anyway, I don’t believe there is a PAPPL for pdl printers yet, but in the meantime you can serve/proxy your printer with CUPS on one of the machines where it does work, and point SeaPrint to that. (CUPS shared printers are IPP already). CUPS on the phone should even work if you can get the filters working.

1 Like

We need a GUI CUPS frontend for sailfish then. Functions: 1) select file and senfd it to a local cups server, 2) show, printer queue, 3) create/start/pause/cancel jobs. 4) open cups admin page in the browser to add printers.

a recipe for command-line printing with cups exists https://together.jolla.com/question/5869/printer-support/