Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How do you print from Android to your home networked printer on your LAN?

8,844 views
Skip to first unread message

Arlen Holder

unread,
Nov 20, 2020, 2:16:31 AM11/20/20
to
How do you print from Android to your home networked printer on your LAN?

a. I have files on Android that are not in a PC-compatible file format.
b. I have a networked printer that is not WiFi enabled (it's Ethernet).
c. I have Windows 10 desktops on the LAN that don't have bluetooth.

The question isn't "Can I copy the files to Windows to print from Windows".
o The question is can I print from Android to the networked printer

Is it possible to simply print to my networked printer on my private LAN?
o (i.e., without using the Internet? (e.g., not via Google Cloud printing).
--
Note I tried this app, which "should" work, but I'm not sure the setup.
o Android CUPS Print, by UpActivity
<https://f-droid.org/en/packages/io.github.benoitduffez.cupsprint/>
<https://play.google.com/store/apps/details?id=io.github.benoitduffez.cupsprint>

Anssi Saari

unread,
Nov 20, 2020, 8:28:01 AM11/20/20
to
Arlen Holder <arlen_...@newmachines.com> writes:

> How do you print from Android to your home networked printer on your LAN?

I use an app called Mopria Print Service. My printer is an old Laserjet,
connected to a Raspberry Pi which shares it with CUPS and Samba.

Chris Green

unread,
Nov 20, 2020, 9:03:04 AM11/20/20
to
We just tend to E-Mail whatever needs printing to a laptop or desktop
and print from there.

--
Chris Green
·

Anssi Saari

unread,
Nov 20, 2020, 9:31:45 AM11/20/20
to
That definitely wasn't the kind of solution looked for here.

Arlen Holder

unread,
Nov 20, 2020, 1:21:19 PM11/20/20
to
On Fri, 20 Nov 2020 15:27:58 +0200, Anssi Saari wrote:

>> How do you print from Android to your home networked printer on your LAN?
>
> I use an app called Mopria Print Service. My printer is an old Laserjet,
> connected to a Raspberry Pi which shares it with CUPS and Samba.

Thanks Anssi Saari for being helpful in explaining how you print directly
from Android to a networked (Ethernet) printer on your private LAN.

For us to write a tutorial that everyone could use would be beneficial.

I'm familiar with SMB/Samba/CIFs shares, but I really don't know what CUPS
is (although, long ago, in Centos days, I selected "cups" to print from
Linux, but it was just a meaningless word. It worked - but I didn't do any
setup other than choose it as in those days, Linux was easier to set up
printers than was Windows, and those were the days when that wasn't
normally the case for random apps).

Looking up what CUPS (common unix printing system) is, I find:
o <https://en.wikipedia.org/wiki/CUPS>
o <https://www.cups.org/>
"A computer running CUPS is a host that can accept print jobs from
client computers, process them, and send them to the appropriate
printer."

That doesn't help me much in a direct sense, but I'll simply assume Android
is a linux-like system so Android uses this "Cups" thingey to print. :)

Looking at "Mopria Print Service" it seems to be widely acclaimed:
"Mopria is a set of standards that enable printing from a mobile device
to printers from different manufacturers or brands."
<https://support.brother.com/g/s/id/mopria/en/index.html>
<https://www.office.xerox.com/en-us/software-solutions/mopria-print-service>

There seem to be plenty of instructions we can all benefit from:
o Print from Android
<https://mopria.org/print-from-android>
o How to print
<https://mopria.org/how-to-print>
o HP Printers - Printing with Mopria Print Service (Android)
<https://support.hp.com/ca-en/document/c04491981>

The app seems not to be on F-Droid, but of course, Aurora Store has it:
o Mopria Print Service, by Mopria Alliance (free, no ads, GSF Dependent)
<https://play.google.com/store/apps/details?id=org.mopria.printplugin>
"Mopria Print Service enables printing on your Android smartphone
or tablet to Mopria certified printers. If you want to check if your
printer is Mopria certified before installing, check here:
<http://mopria.org/certified-products>

My printer is an old HP LaserJet 2100TN which is considered "legacy":
o Tutorial for the EASIEST (maybe only?) way to install a problematic legacy printer such as the HP LaserJet 2100 on Windows 10 current versions
<https://groups.google.com/forum/#!topic/alt.comp.freeware/Qb-fXNOH_8g>

Not surprisingly, the HP LJ2100 isn't Mopria certified, which, I assume, is
why you also mentioned Cups & SMB/Samba, right?

Anyway, I installed Mopria from the Aurora Store (it's just a great shell
on top of Google Play) and it says there are three different ways to print:
1. Tap on the printer icon
2. Tap on Settings > Print
3. Tape on the Share icon > print

You can opt out of the collection of anonymized Mopria data (which I did).
o But it says you must have device location & location permission on.

Unfortunately, on the first pass, Mopria didn't find any printers
o Pleasantly surprisingly though, Mopria gives good diagnostics
a. Mopria has a green checkmark for "W-Fi is enabled on your device"
b. The "Mopria Print Service" being enabled is also green checkmarked
c. It says the printer should be turned on & on WiFi or Ethernet (it is)
d. It says the printer should be on the same network subnet (it is)
e. It says it should be a "Mopria certified" printer (it's not!)
f. "location permission" should be granted for Wi-Fi Direct printers

The only things that fail are the fact it's not a WiFi printer (but it
implies that Ethernet connected printers should work); but it's likely far
too old to be a Mopria Certified printer.

Is this point where the "Cups" and/or "Samba/Cifs/SMB" comes in handy?
--
On Usenet, people can work out a solution which everyone can then use.

Anssi Saari

unread,
Nov 23, 2020, 9:36:16 AM11/23/20
to
Arlen Holder <arlen_...@newmachines.com> writes:

> Is this point where the "Cups" and/or "Samba/Cifs/SMB" comes in handy?

OK, so my response was needlessly short. The printer I have is a
Laserjet P1102, USB connection only. So to make it into a networked
printer it's connected to a raspberry pi via USB. CUPS shares it in a
way that Linux (and Android) machines see, Samba shares it in a way that
Windows machines see. So when I wrote the response I knew nothing about
printers that are actually directly networked (other than an ancient
Laserjet 4P that's still in storage somewhere but that thing predates
Android phones...)

So anyways, after a quick look, "everyone" uses IPP (internet printing
protocol) for networked printing, both printers and Android. And CUPS
too. So I should be able to print direct to my printer and indeed I
could, even after removing Mopria.

So I guess your printer might be the issue here? Is using the "HP Print
Service Plugin" for Android out of the question? HP says printers newer
than 2004 should work with it. Or my solution with CUPS on some Linux
machine might work for you. Or even CUPS on Android?
https://play.google.com/store/apps/details?id=io.github.benoitduffez.cupsprint

Arlen Holder

unread,
Nov 23, 2020, 11:11:58 PM11/23/20
to
On Mon, 23 Nov 2020 19:43:22 -0000, MJP wrote:

> My brother wireless printer is available to my Android devices as a print
> option.
>
> This uses the brother plug in for android.
>
> https://play.google.com/store/apps/details?id=com.brother.printservice&hl=en_GB

Hi MJP,

We should all be able to print directly to our printers at home
o So this is a worthwhile endeavor to try to write up a tutorial

A specific OEM printer app might be the answer, which I will try on my
o Hewlett Packard LaserJet 2100tn (Ethernet connected to my LAN router)

Using Aurora Store (which is an anonymous front end to Google Play) with
filters to filter out (a) all google apps (b) all paid apps (c) all adware
apps, and (d) all apps which require GSF (which is sort of like .NET
Framework on Windows), I found a few apps for non-HP printers such as:
a. PrinterShare Mobile Print <com.dynamicxsoftware.printershare>
b. Canon Print Service <jp.co.canon.android.printservice.plugin>
c. Epson Print Enabler <com.epson.mobilephone.android.epso...>
d. Konica Minolta Mobile Print <com.konicaminolta.mobileprint>
e. Hauwei Printer <com.hauwei.cv80.printer_hauwei.abr...>
f. Brother iPrint&Scan <com.brother.mfc.brprint>
g. Lexmark Mobile Print <com.lexmark.print>
h. Mobi Print for Zebra, Brother, Seiko printers <com.mobiprintpro.retail.android>
i. Hammer Print <com.hammermill.premium>
etc.

Removing the filter blocking "GSF dependent" apps, brings up HP stuff:
j. HP Print Service Plugin <com.hp.android.printservice>
k. HP Smart <com.hp.printercontrol>
l. HP ePrint Enterprise <com.hp.eprint.client>
m. HP ePrint Enterprise for Good <com.hp.com.hpeprintservice.good>
n. HP Advance <com.hp.mobileconnector>
o. HP PrintOS for PSP <com.hp.printosforpsp>
p. HP SureSupply <com.hp.esupplies>
q. HP QuickDrop <com.hp.quickdrop>
etc.

I'll see if one or more of the printing apps above works for me
given I have on my network via Ethernet an HP LJ2100tn printer.

Arlen Holder

unread,
Nov 23, 2020, 11:12:51 PM11/23/20
to
On Mon, 23 Nov 2020 21:04:45 +0100, Carlos E. R. wrote:

> Two years ago I printed from Android phone to new hp printer (not mine),
> connected to the router by ethernet. I just followed instructions
> (hints) on the printer docs. Sorry, I do not remember the details.

Hi Carlos,
Thanks for that purposefully helpful advice, where I don't want anyone to
go to the trouble I usually go to in order to solve a _new_ problem.

In "Connected devices" there's a secret web page (apparently) on printing.
o <https://i.postimg.cc/zD0CDJZz/printing01.jpg>
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg>

I just want to know how others managed to print, from Android, to a
networked printer that Windows 10 has no problem whatsoever printing to.

My HP LaserJet 2100tn is so old that even Microsoft considers it legacy:
o Tutorial for the EASIEST (maybe only?) way to install a problematic
legacy printer such as the HP LaserJet 2100 on Windows 10 current versions
<https://groups.google.com/forum/#!topic/alt.comp.freeware/Qb-fXNOH_8g>

But Windows 10 prints fine to it so I hope I can get Android to print also.

> In Android setup, search for "print". "Predetermined print service" is
> enabled. If you tap it, it searches for printers in the LAN. IIRC, it
> just worked, easy peasy.

I'm Android 10, Moto G7, where a "Search" inside "Settings" has these hits:
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg>
1. Print services [Connected devices > Connection preferences > Printing]
2. Print jobs [Connected devices > Connection preferences > Printing]
3. Printing [Connected devices > Connection preferences > Printing]
4. Android CUPS Print [App info]
5. Print Service Recommendation... [App info]
6. Default Print Service [App info]
7. Mopria Print Service [App info]
8. Print Spooler [App info]

> At home, my printer is older and does not support it. I guess I would
> have to setup CUPS (which I have, but not for this). I remember there
> was an app that would "see" CUPS in Android. I don't currently have it
> installed.

In the Android thread, I mentioned I installed a "Cups" app thingy
o But I'm not familiar with CUPS (it just worked on Linux years ago
so I didn't learn anything more than the fact Linux uses CUPS).

It's only when things don't work that I learn anything about them.
o <https://i.postimg.cc/xdvmwQ3S/printing02.jpg>

Anyway, I'm not printing from Android to a Windows networked printer yet.
o But I'm still trying to figure out how

Where part of the problem is just finding an answer for an Ethernet
connected printer which isn't WiFi nor Mopria nor USB connected.

Arlen Holder

unread,
Nov 23, 2020, 11:55:38 PM11/23/20
to
On Mon, 23 Nov 2020 16:35:54 +0200, Anssi Saari wrote:

> OK, so my response was needlessly short.

Hi Anssi Saari,

Any amount of purposefully helpful advice and suggestions I appreciate!

I'm just getting started on this quest, and it seems there are lots of ways
to go so that's where advice from others who have been successful can
prevent a whole bunch of dead ends.

In the end, if I can print to the printer directly from Android
o That would be worthy of a tutorial so as to help others do the same

> The printer I have is a
> Laserjet P1102, USB connection only. So to make it into a networked
> printer it's connected to a raspberry pi via USB. CUPS shares it in a
> way that Linux (and Android) machines see, Samba shares it in a way that
> Windows machines see. So when I wrote the response I knew nothing about
> printers that are actually directly networked (other than an ancient
> Laserjet 4P that's still in storage somewhere but that thing predates
> Android phones...)

We both have HP printers, but yours is USB only while mine is Ethernet.
o That probably changes what's available to us by way of printing options.

> So anyways, after a quick look, "everyone" uses IPP (internet printing
> protocol) for networked printing, both printers and Android. And CUPS
> too. So I should be able to print direct to my printer and indeed I
> could, even after removing Mopria.

I installed every free app for IPP that Aurora Store found on Google Play:
a. CUPS Printing <io.github.benoitduffez.cupsprint>
b. Let's Print Droid <com.blackspruce.lpd>
c. PrinterShare Mobile Print <com.dynamixsoftware.printershare>
d. PrintBot <net.jsecurity.printbot>
e. PrinterOn <com.printeron.droid.phone>
f. Direrct Print Service <com.solvaig.printservice>
g. PrintHand Mobile Print <com.dynamixsoftware.printhand>

I will have to test each one out to see which ones work on my HP printer.
o <https://i.postimg.cc/5N8c5d9T/printing05.jpg>

> So I guess your printer might be the issue here? Is using the "HP Print
> Service Plugin" for Android out of the question? HP says printers newer
> than 2004 should work with it.

I haven't even tried yet this HP Print Service Plugin, but I downloaded it
and many other HP printer apps from the Aurora Store overlay on Google Play
h. HP Print Service Plugin <com.hp.android.printservice>
i. HP Smart <com.hp.printercontrol>
j. HP ePrint Enterprise <com.hp.eprint.client>
k. HP ePrint Enterprise for Good <com.hp.com.hpeprintservice.good>
l. HP Advance <com.hp.mobileconnector>
m. HP PrintOS for PSP <com.hp.printosforpsp>
n. HP SureSupply <com.hp.esupplies>
o. HP QuickDrop <com.hp.quickdrop>

> Or my solution with CUPS on some Linux
> machine might work for you. Or even CUPS on Android?
> https://play.google.com/store/apps/details?id=io.github.benoitduffez.cupsprint

Just in case it turns out to be the solution, I downloaded a few CUPS apps
(although I haven't yet dug into how or why this CUPS stuff would work).
o <https://i.postimg.cc/Y9TVg85t/printing06.jpg> 11 print services on

In summary, this printing directly from Android to a networked printer
isn't intuitive, but there's so much information that I still have to delve
into I can't say much other than this is the status so far, for the
screenshots for the upcoming (hopefully) tutorial so all others benefit:
o <https://i.postimg.cc/zD0CDJZz/printing01.jpg> Android10 ConnectionPrefs
o <https://i.postimg.cc/xdvmwQ3S/printing02.jpg> ConnectionPrefs > Printing
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg> Search > Print > Services
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg> ? > Print > Documentation
o <https://i.postimg.cc/5N8c5d9T/printing05.jpg> Added free IPP print apps
o <https://i.postimg.cc/Y9TVg85t/printing06.jpg> 11 print services on
--
If anyone has printing figured out, please let us know so we all benefit.

Arlen Holder

unread,
Nov 24, 2020, 3:51:40 AM11/24/20
to
I've been testing a dozen or more apps, but so far none are working.
o Given my simple problem set of Android 10 to an Ethernet'd printer.

This article says to use the printer manufacturer's app
o Print From Android Using The Manufacturer's App
<https://techlogon.com/how-to-print-from-android-tablet-or-phone/>

But it doesn't seem that the HP app I installed can even _see_ the
networked (aka wired via Ethernet to the router on the same subnet) printer
that Windows 10 has no problem seeing on the LAN (on the same subnet).
o HP Print Service Plugin, by HP
<https://play.google.com/store/apps/details?id=com.hp.android.printservice>

These instructions don't apply to my networked printer situation:
o HP Printers - Printing from Android Smartphones or Tablets
<https://support.hp.com/us-en/document/c04024231>

This 2010 article from PC World purports to explain how to print:
o How to print from an Android Phone
<https://www.pcworld.com/article/212203/how-to-print-from-android.html>
but it pretty much is too outdated to be useful (plus it suggests we print
over the Internet, which is just crazy when you have a perfectly good LAN).

This article explains how to print, but it uses Google Cloud Print:
o Print From Android Phone to a non-WiFi Printer Connected to PC
<https://www.techmesto.com/print-from-android-phone-to-printer-connected-to-pc/>
Which is crazy given you shouldn't need the net just to print on your LAN.

This article suggests Google Cloud Print and printing over email, both of
which are crazy if all you want is to print to your own networked printer:
o How to print from an Android smartphone or tablet
<https://www.digitaltrends.com/mobile/how-to-print-from-android/>

Likewise, this article uses Google Cloud Print instead of your own LAN:
o How to print from your Android phone or tablet
<https://www.androidcentral.com/how-print-your-android-phone-or-tablet>

This "seems" to explain how; but it didn't find my printer when I tried.
o How to add a printing service to your Android device in a flash
<https://www.techrepublic.com/article/pro-tip-add-a-printing-service-to-your-android-device-in-a-flash/>

Likewise, this one suggests Google Cloud Print or a USB cable, neither of
which is what I want, which is to print to a wired network printer:
o How to print from your Android phone or tablet
<https://www.androidauthority.com/how-to-print-from-phone-tablet-236088/>

This article pretty much says it can't be done for free without using the
Google cloud to print from your Android phone to a printer on your own LAN:
o Everything You Need to Know About Printing From Your Android Phone or Tablet
<https://www.howtogeek.com/165778/everything-you-need-to-know-about-printing-from-your-android-phone-or-tablet/>

What irks me a bit is this task is so very _simple_ that it should be easy.
o I should be able to print to a printer that is on my own network

So far, I haven't found a way that works; but I presume a method exists.

Arlen Holder

unread,
Nov 25, 2020, 3:23:06 AM11/25/20
to
UPDATE:
o <https://i.postimg.cc/zD0CDJZz/printing01.jpg> Android10 ConnectionPrefs
o <https://i.postimg.cc/xdvmwQ3S/printing02.jpg> ConnectionPrefs > Printing
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg> Search > Print > Services
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg> ? > Print > Documentation
o <https://i.postimg.cc/5N8c5d9T/printing05.jpg> Added free IPP print apps
o <https://i.postimg.cc/Y9TVg85t/printing06.jpg> 11 print services on
o <https://i.postimg.cc/FzmF5wYr/printing07.jpg> Shortcut to print settings

HELPFUL HINT: I've been pulling up the printer menus so much that this
one-tap homescreen print-settings shortcut is coming in quite handy:
o <https://i.postimg.cc/FzmF5wYr/printing07.jpg>

To create this one-tap homescreen shortcut to Android print settings:
1. Download & install & run "Shortcut Creator", by AlexTernHome
<https://play.google.com/store/apps/details?id=com.alextern.shortcuthelper>

2. ShortcutCreator:Settings > Observe activities > Printing (.Settings$PrintSettingsActivity)
o Press the "plus" sign to add that shortcut to your homescreen.

3. Voila!
o You can access any deeply nested Android setting in a single tap!
--
See also:
o Is there a way to make an Android homescreen shortcut to any given settings page such as the battery status?
<https://groups.google.com/g/comp.mobile.android/c/_1oTdgCIpkc>

Arlen Holder

unread,
Nov 25, 2020, 5:30:59 AM11/25/20
to
UPDATE:

I printed from Android to the printer, but, I only figured out,
after the fact, that it used an Internet server!
o <https://i.postimg.cc/2530Yc6X/printing10.jpg> It uses the Intenet! :(

Nonetheless, this is certainly "one way" to print (albeit not that good)
o <https://i.postimg.cc/DZJprj3b/printing08.jpg> PrintBot static printer
o <https://i.postimg.cc/wjqWfTdz/printing09.jpg> PDF > Open with PrintBot

Here's what I did on Android 10 to print a single page of a multi-page PDF
a. I printed a PDF file from my Moto G7 (Android 10)
b. To my circa 1999, HP LaserJet 2100tn printer on my LAN
c. Where Android is over Wi-Fi & the HP is Ethernet'd to the router

Note:
A. The printer is on the same subnet as Android is, on my private LAN
B. The HP LaserJet 2100tn has no Wi-Fi hardware (nor Wi-Fi Direct)
C. The HP LaserJet 2100tn has USB input (but it is not connected to a PC)
D. I have no desire to use the Internet just to print on my own LAN
(I did not disconnect the router from the net when running this test)

I found out only after I printed that this uses the Internet! :(
o Nonetheless, so others benefit, here's the process I used that worked.

1. Download & install Printbot, by https://zenofx.com/
<https://play.google.com/store/apps/details?id=net.jsecurity.printbot>
<https://zenofx.com/printbot/>

2. Turn off all "print services" _except_ "PrintBot" (if you have others).
NOTE: I don't know if this is needed; but HP instructions say it is.

3. In PrintBot, hit the settings hamburger & then "Add static printer"
o Protocol = Raw(JetDirect) [out of Raw(JetDirect), LPR, IPP, & Fritz!Box]
o Host (IP address or hostname) = 192.168.0.20
o Manufacturer = (scroll to the "HP" pre-defined setting)
o Printer model = (scroll to the "LaserJet-2100" pre-defined setting)
<https://i.postimg.cc/DZJprj3b/printing08.jpg>

4. That creates the following "PrintBot Settings":
o Network connection = raw://192.168.0.20/
o Printer = HP LaserJet-2100
Press "Print test page" (and a ZenoFX test page should result).

5. Select any document on the Android phone to print to that printer
I selected a multi-page PDF file, for example, named "foo.pdf".

This foo.pdf file will either open up in your default editor, or,
if you don't have a default PDF editor set up in Android,
then Android will ask you what you want to do with the file.

You can choose to "Open with PrintBot" & press the green printer icon.
If desired, before printing, you can modify the default settings, such as:
o Set Copies = 1
o Set Paper size = Letter
o Set Color = Black & White
o Set Orientation = Portrait
o Set Two-sided = none (mine is grayed out as the printer doesn't support it)
o Set Page = All 4 (I changed that to print the range of just page 1)
<https://i.postimg.cc/wjqWfTdz/printing09.jpg>

6. The _first_ time only (I think), it will give you this warning:
"Use PrintBot? Your document may pass through one or more servers
on its way to the printer." [Cancel][OK]
<https://i.postimg.cc/2530Yc6X/printing10.jpg>

I only saw that the first time printing though.

Googling for what that warning means, I found the first gotcha:
<https://play.google.com/store/apps/details?id=net.jsecurity.printbot>
"Free version allows printing of 3 images or PDF documents per month
(after that, a watermark is added on each page).
PDFs are restricted to 3 pages.
Pro version allows unlimited printing."

That also imples the second gotcha, which is this method uses the net!

Notice that the same outfit has a "localprint" app which does NOT use
the Internet (so I will test that app next; but it adds watermarks).
o LocalPrint, by zenofx.com
<https://play.google.com/store/apps/details?id=com.zenofx.localprint>

LocalPrint says this, which PrintBot does _not_ say:
"LocalPrint allows you to print from your Android device
without using any kind of cloud service!
All data stays within your local network all the time."

In summary, this test turned out to be a failure for two reasons:
1. Unbeknownst to me, it used the Internet
2. Even so, after a while, watermarks will appear

Nonetheless, this test was a proof of concept that the hardware works.
o I'll keep testing until I find a local solution that works.
--
See also:
o If you print from Windows 10 to your LAN networked printer - have you also printed from Android? How?
<https://groups.google.com/g/alt.comp.microsoft.windows/c/6ScU1H5Q43U>
o How do you print from Android to your home networked printer on your LAN?
<https://groups.google.com/g/comp.mobile.android/c/nTAYljkvVl4>
o <https://i.postimg.cc/zD0CDJZz/printing01.jpg> Android10 ConnectionPrefs
o <https://i.postimg.cc/xdvmwQ3S/printing02.jpg> ConnectionPrefs > Printing
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg> Search > Print > Services
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg> ? > Print > Documentation
o <https://i.postimg.cc/5N8c5d9T/printing05.jpg> Added free IPP print apps
o <https://i.postimg.cc/Y9TVg85t/printing06.jpg> 11 print services on
o <https://i.postimg.cc/FzmF5wYr/printing07.jpg> Shortcut to print settings
o <https://i.postimg.cc/DZJprj3b/printing08.jpg> PrintBot static printer
o <https://i.postimg.cc/wjqWfTdz/printing09.jpg> PDF > Open with PrintBot
o <https://i.postimg.cc/2530Yc6X/printing10.jpg> What is this warning???

Arlen Holder

unread,
Nov 25, 2020, 3:26:17 PM11/25/20
to
On Wed, 25 Nov 2020 13:36:06 GMT, AnthonyL wrote:

> I think at various times I've had AngryIP blocked by various av
> software etc despite it having been around a while

Thank you very much for your purposefully helpful advice on ipscan.
o AngryIP ipscan is simple - it just scans for devices & open ports

o FOSS angryip.org ipscan version 3.7.3 cross platform local network scanner for IP address & open ports
<https://groups.google.com/g/alt.comp.freeware/c/ac-yxuM3Ufc>

What it found for my printer turned out to be correct
o I hadn't realized my printer had port 80 open, but it did!
<http://192.168.0.20:80> brought up an HP JetScan help document

> Others may have guidance on port scanning but there is another thread
> on printing to windows 10 and it notes that AngryIP can scan for open
> ports (Options-Select Ports ie range).

In another thread, I'm trying to get printing to work from Android
directly from my Android phone (on my LAN via Wi-Fi) to the Ethernet'd
printer (on my LAN on the same subnet).
o Do you use Windows to print from your Android to your printer?
<https://groups.google.com/g/alt.comp.microsoft.windows/c/6ScU1H5Q43U>

One thing that comes up is "CUPS", which seems to use port 631 by default.
o <https://i.postimg.cc/6qRSK6WY/printing11.jpg> Turn CUPS print server on
o <https://i.postimg.cc/9fMnMYX4/printing12.jpg> CUPS wants to use port 631

That begs the question of "what port" do printers normally use anyway?

Arlen Holder

unread,
Nov 26, 2020, 1:38:15 PM11/26/20
to
On Thu, 26 Nov 2020 09:46:25 +0100, Michael Logies wrote:

> Do a google search for: printing android windows
> First article:
> https://www.howtogeek.com/165778/everything-you-need-to-know-about-printing-from-your-android-phone-or-tablet/
> Everything You Need to Know About Printing From Your Android Phone or
> Tablet

Hi Michael Logies,

I thank you very much for your purposefully helpful advice!
o Not only for me, but for _everyone_ who wishes to do the same thing.

I've been able to print - but not yet without using the Internet:
o Nor, yet, for free <https://i.postimg.cc/DZJprj3b/printing08.jpg>

All of us should be able to freely print from Android to our printer (IMHO)
o But I haven't yet found a solution that works given the requirements of
... unlimited free printing on my own LAN to an Ethernet'd printer ...

You'd think that would be an _easy_ problem set to resolve...
o But it's not (or it's not yet since we haven't found a solution).

I'm still digging into the many proposed solutions I've found, so I haven't
exhausted the "easy" solutions yet though - but I have exhausted the
tutorials on the net - where I haven't found a single cite that is
"Everything you need to know about printing from Android" on your own LAN.

Bear in mind _most_ of these tutorials assume _different_ conditions
o Some use the Internet (e.g., most payware seems to be doing that)
o Some assume a CUPS server (usually on Linux, but maybe on Windows)
o Most assume Wi-Fi (and/or Wi-Fi Direct)
etc.

I haven't seen any tutorials that use the fact Windows can print to the
Ethernet'd printer (meaning Windows has the necessary printer drivers);
but that "may" be the solution (perhaps via its SMB/CIFS or CUPS server).

Notice that if the problem were easy to solve - I wouldn't be asking.

This problem may certainly turn out to be easy to solve (as many problems
are); but it's not easy to _find_ the solution to this problem on the net.

Rest assured, you can trust that I've scoured the Internet for a tutorial.

In fact, I read that exact tutorial days ago & even posted it here:
o <https://groups.google.com/g/comp.mobile.android/c/nTAYljkvVl4/m/NsnpkXBoBwAJ>

Here is a quote of my one-line summary of that specific article.
"This article pretty much says it can't be done for free without using the
Google cloud to print from your Android phone to a printer on your own LAN:
o Everything You Need to Know About Printing From Your Android Phone or Tablet
<https://www.howtogeek.com/165778/everything-you-need-to-know-about-printing-from-your-android-phone-or-tablet/>

Bear in mind we can _easily_ solve the problem by relaxing the constraints:
a. If we want to _pay_ for printing, that will work
b. If we want to use the cloud for printing, that will work
c. If we purchase a new Wi-Fi printer, that will work

But I'm trying to find a solution that works for an Ethernet'd printer.
o Keeping everything on my own LAN, and for free

In summary, nobody yet seems to have solved this problem and documented the
solution that I can find - although I can't imagine that almost anyone with
Android and an Ethernet'd printer wouldn't _benefit_ from the solution.

Since I need to dig deeper, I have to figure out _how_ printing actually
works, e.g., does Android need the printer drivers or not?

And why do we need something called a "printer server" anyway?

If people on this newsgroup know how printing normally works, that would be
helpful because then I'd know better where to focus on solving the
problems.

Is this "printer flow" correct, for example, for Windows?
1. The document to be printed is open in an editor on Windows.
2. The editor's "File > Print" sends the file to a "printer driver"
(what format is that in? I don't know.)
3. The printer driver reassembles the format into a printer format.
4. The printer driver sends that printer-format-file over the LAN
(the network is just a printer IP address, and a port, I guess???)
5. The printer prints

Notice I don't mention a "print server" in that process; but everything I
read on Linux solutions seems to require a "CUPS print server"????

So is _this_ how printing works on Linux?
1. The document is open in an editor on Linux
2. That editor has a "file > print" which sends it to a CUPS server???
3. The CUPS server acts as a universal printer driver????
4. The CUPS server sends a printer-format file to the printer over the LAN
(the network is just the printer IP address and port 631 for CUPS???)

Note that I bring up Linux simply because Android is kind of sort of Linux.
o <https://i.postimg.cc/6qRSK6WY/printing11.jpg>

These linx-based solutions all seem to use port 631 for some reason:
o <https://i.postimg.cc/9fMnMYX4/printing12.jpg>

Unfortunately, I never needed to understand the print process on Windows
(or Linux) simply because it just worked with a printer driver.

But if I'm going to be the first person to solve this problem (that we know
of), then I'm gonna have to figure out where exactly the problem lies.
a. In the printer driver?
b. In the printer server?
c. On the network?

Dunno yet.
o Does anyone?

Arlen Holder

unread,
Nov 28, 2020, 3:34:46 AM11/28/20
to
SOLVED! (We always, well, almost always, solve the problems together!)

I only solved it moments ago, so anything below can change with time...
o And, my technical description of the "printer driver" may be flawed
o As well may be my technical description of the "print service" be flawed

I simply know that, in the end, it printed, using only the private LAN
o Where I ask people more knowledgeable than I to explain how it worked!

Here's what transpired just now...

After testing more than a dozen reputed solutions, I found most were simply
scams (IMHO), e.g., the Mopria-based solutions seem to merely reproduce
what's _already_ on Android (aka the Android "Default Print Service").

Likewise, most of the rest were simply cloud services (e.g., Google Cloud
Printing) or worse, cloud-based scams (e.g., ZenoFX PrintBot), or even
worse, promises of local-only solutions which were scams (e.g., ZenoFX
LocalBot).

Some, of course, were legit (e.g., the HP Print Service), but they don't
work on older HP Ethernet'd printers (they appear to work only on Wi-Fi or
Wi-Fi Direct printers, AFAICT).

One by one, I deleted the more than a dozen reputed solutions (most of
which were, IMHO, scams), where in the end, what worked was devilishly
simple, but you just have to know what I know now.

Bear in mind it's super critical to the problem set what the components
are, and how they are set up, where in my situation, I had:
1. An HP LaserJet 2100TN (which has a JetDirect Ethernet card).
2. A Moto G7 Android 10 phone using Wi-Fi
3. That HP printer is directly connected to the router (not to a PC)
4. That HP printer is NOT Mopria capable, nor Wi-Fi in any way
5. That HP printer USB port is currently not connected to anything

The solution therefore requires some sort of "printer driver" on Android,
which turned out to be the "Let's Print PDF" (LPP) PDF Viewer & file
browser.
o Let's Print PDF, by BlackSpruce [free, ad free, gsf independent]
<https://play.google.com/store/apps/details?id=com.blackspruce.mupdf>

That printer driver is needed, I think, because the HP printer can't accept
PDF 1.3 directly (apparently). The printer accepts PCL5 instead, which the
"Let's Print PDF" program creates from a bitmap using on-device rendering.

In addition, I needed a "print service" to be turned on in Android
settings, which, apparently, is kind of sort of like a lpd (line printer
daemon), which turned out to be "Let's Print Droid" (LPD):
o Let's Print Droid, by BlackSpruce [free, ad free, gsf independent]
<https://play.google.com/store/apps/details?id=com.blackspruce.lpd>

Let's Print Droid creates PDL format files of PDF 1.3 format, which my HP
printer apparently can't print; so that's why I needed both programs in
series.
a. The Let's Print PDF renders the PDF into a bitmap & then PCL-5
b. The Let's Print Droid sends that PCL-5 to the HP Printer
(The native output of LPD would otherwise be PDF level 1.3)

After installing both programs, you have to also know a few more tricks
in terms of setting up the Let's Print Droid "print service".
a. The first is to disable Apple Bonjour mDNS scanning
(it simply doesn't work and just wastes your time overall)
b. Another trick is you need to set the "Let's Print Droid" print server to
[x]PDF Rendering (on-device pdf rendering to PCL-5 for the HP printer)
c. The third is you need to "manually configure" the printer in LPD
(where I hit upon the settings below by almost sheer trial & error)
Printer Name: HP LJ 2100 tn <== this isn't critical
Protocol: RAW - Jet Direct <== there are 13 protocols to choose from
IP Address/Computer Name: 192.168.0.20 <== it's a static IP address
Port Number: 9100 <== this was the default, so I kept it that way
Queue/Share/Dir Name: DROID <== this was the default, which I kept
Page Description Language: PCL - HP-PCL5 Black/White <== 8 choices
d. And, as a doublecheck, you need to make sure Let's Print Droid
is turned on in the Android Settings "Print Service" menu
(which you can easily make a shortcut to if you follow this thread)
o Creating quick-access shortcuts to any Android or App setting page
<https://groups.google.com/g/comp.mobile.android/c/_1oTdgCIpkc>

To give you an idea of the "trial and error", these are protocol choices
1. LPR - Line Printer Remote
2. RAW - Jet Direct
3. SMB - Windows Shared Printer
4. GCP - Google Cloud Print
5. IPP - IPP/CUPS print server
6. IPPS - IPP/CUPS SSL server
7. HTTP - Web Server POST
8. HTTPS - encrypted POST
9. FILE - CIFS/SMB File drop
10. FTP - File Transfer
11. FTPS - File Transfer SSL
12. SHARE - Share PDF with another app
13. VIEW - View PDL with another app

And these are the Page Description Language (PDL) choices:
A. RAW - image files not rendered to PDL
B. Jpeg Image
C. PCL - HP-PCL5 Black/White
D. PCL-C - HP-PCL5-C Colour PCL
E. PS - Postscript
F. PDF - Portable Document Format
G. PCL-XL - HP PCL 6 colour,b/w
H. URF - Apple AirPrint Universal Raster

While there may be other settings that will likewise work,
those are what worked first given my Ethernet'd printer.

Note: I haven't yet tested anything but PDF files as I want to keep the
problem set as simple as possible while I'm setting it up & testing.

The printing process that worked first after the setup above was:
1. Tap the homescreen "Let's Print Droid" icon
2. Inside the "Let's Print Droid" app, tap the "Print A File" icon
3. In the resulting file browser navigate to your PDF file
4. That brings up not the PDF file, but the default print settings
5. Keep or change the settings as desired, & press [Continue]

That's it.
o Every page of your PDF file to be printed will be rendered on your phone.
o Once all pages are rendered, they will then be sent to the printer

Key issues which remain to be resolved:
a. It would be nice to eliminate Let's Print PDF renderer if possible
(This will likely take trial & error on the protocol settings.)
b. But mainly I need help from experts in figuring out what's going on!
(I need to better understand what's actually happening when I print.)
--
As always, please improve so all benefit from every action we take.

Arlen Holder

unread,
Nov 28, 2020, 3:09:54 PM11/28/20
to
On Sat, 28 Nov 2020 14:08:15 +0100, Michael Logies wrote:

> the help of my phone (Xiaomi Mi 8) tells me, that for printing it has
> to be a Wifi printer. My printer are Wifi-capable, so I have no
> problem printing to them from Android.

Hi Michael Logies,

I very much appreciate your kind volunteer advice, as Usenet is how we,
together, solve problems, given none of us are trained in this stuff.

And none of us are paid to help each other.
o Worse, even if we were... we're all amateurs at printing technology

At least I am... (when things just work, we don't learn anything)

Hence Usenet is how we solve things, and, better yet, how we disseminate
the solutions, since we can then help everyone else with the same issues.

Yes. You are correct that if the HP LaserJet 2100tn were a "Wi-Fi capable"
printer (either Wi-Fi or Wi-Fi Direct), then it would most likely be simple
to print from Android to that printer.

Yet, the printer is on the LAN (via Ethernet on CAT5 cable), and, to the
point of this newsgroup, it prints just fine from Windows.

Interestingly, Windows needs something called a "printer driver".
o I don't know why Android doesn't seem to use printer drivers

What's confusing to me is that I never even once had thought about how
Android printing must be completely different (in some way) than Windows
printing.
a. In Windows, you install a printer driver for each printer
b. On Android, it doesn't seem to work that way (at least AFAICT)

> As I understand, the printer
> and the device have to support Cups, the linux standard way of
> printing. Because Android is a Linux flavor, Cups is integrated. And
> modern printer also support Cups.

I must openly admit that I only recently looked up what CUPS means, as, on
Android, they do have a CUPS "print service" that I installed.
o <https://i.postimg.cc/6qRSK6WY/printing11.jpg>

But that requires, apparently, a "CUPS Print Server" which I don't have:
o <https://i.postimg.cc/9fMnMYX4/printing12.jpg>

I'm very confused why Windows doesn't seem to need a "print server"
o Yet, Android seems to need a "print server"

Windows just needs a "printer driver".
o Yet Android doesn't even use printer drivers.

It's confusing to me _how_ printing actually works when it doesn't work.

> If your printer does not support Cups, I would print to a pdf on
> Android, transfer it to the windows machine and print it from there to
> the Windows printer.

Actually, early this morning, I found a solution that works perfectly.
o It's still "magic" _how_ it works (I need help on that); but it works!

1. On Android, I installed a "print server" which outputs PDF level 1.3
<https://play.google.com/store/apps/details?id=com.blackspruce.lpd>
2. But my printer doesn't accept PDF - my printer wants PCL-5 instead
<https://support.hp.com/us-en/product/hp-laserjet-2100-printer-series/25469/model/14918>
3. So I added a muPDF "faux printer driver" to "render" the PDF to a bitmap
<https://play.google.com/store/apps/details?id=com.blackspruce.mupdf>

Somehow, the _combination_ (with judicious settings applied) converts the
PDF to a bitmap and by some magic, then to PCL-5, which is then sent to the
printer via the Android "print server".
o <https://groups.google.com/g/comp.mobile.android/c/nTAYljkvVl4/m/qnuazdahCAAJ>

I do not profess nor pretend to know _how_ it works; but it works.
o I must say this is documented NOWHERE on the entire Internet (AFAICT).

So I may be the first person on the planet who has documented it here.
o Where it took hours of trial & error (particularly on the many settings)

Now that it works, I need someone to help EXPLAIN _how_ it is working
o Because at this point, it's just "print magic" to me that it's working

Especially since all the other solutions I tried turned out to be scams
o Or cloud services, or watermarked crippleware, or bogus in some way

In summary, I solved the problem set of printing from Android
o For free, ad free, gsf-free, google free, Windows-free, Linux-free
o Over the Wi-Fi LAN
o To a non-Wi-Fi Ethernet'd HP LJ 2100tn printer (built in 1999)
o Keeping everything on the LAN (i.e., no cloud involved)
o For unlimited printing (sans prevalent watermarking crippleware)
o From any Android device that I want at any time I want
o As long as both the Android device & the printer are on the same subnet

How it works is what I want to know, where I think the file conversions are
o PDF on Android to bitmap on Android to PCL-5 on Android to the printer

What I need help with is understanding why printing from Windows is easy
o And yet, printing from Android to the same printer is not

Why, for example, does Windows use a "printer driver" but Android does not?
o Why, for example, does Android use a "print server" but Windows does not?
--
On Usenet we can solve problems that nobody else seems to have resolved.

Arlen Holder

unread,
Nov 28, 2020, 9:15:20 PM11/28/20
to
On Sat, 28 Nov 2020 09:22:17 GMT, AnthonyL wrote:

> Just did a nice helpful reply - actually I think there are one or two
> clues that may have helped - then saw the other thread in which you've
> solved it.

Hi AnthonyL,

I thank you and appreciate your purposefully helpful advice.
o All of us are volunteers - we pitch in together to help each other

As you noted, printing has gotten easier over time, at least from Windows &
Linux it has, where Linux (with CUPS) was even easier than Windows years
ago; but both are seamless nowadays (although Windows drivers are a PITA
when HP no longer supplies them on their web site, & neither does Win10):
o Tutorial for the EASIEST (maybe only?) way to install a problematic legacy printer such as the HP LaserJet 2100 on Windows 10 current versions
<https://groups.google.com/forum/#!topic/alt.comp.freeware/Qb-fXNOH_8g>

Also as you noted, the only requirement for the printer "should" be that
it's on the LAN (no matter _how_ it's hooked up to that LAN subnet).

(1) Cloud solutions
Like you, I found out a lot of the highly marketed solutions require the
cloud, which is, I think, this data flow (I'm not fully sure though)
a. You press a print button which sends your document to a server
b. That server renders that document in the proper format (e.g., PCL-5)
c. That server sends the rendered results (e.g., PCL-5) back to you
d. And then your app sends that PCL-5 to the printer over your LAN

(2) Local PDF solutions
I also found a bunch of so-called "local" solutions, which didn't render
all that much it seems; they just send the PDF directly to the printer,
which would work fine (I guess) for a printer that directly accepts PDF.

(3) OEM Brand-name solutions (e.g., HP, Epsom, Brother, etc.)
I tried the OEM HP-branded solution, but it simply failed for whatever
reason. It only had the choice of Wi-Fi or Wi-Fi direct, so I suspect that
it failed simply because it was designed for a Wi-Fi enabled printer only.

(4) Mopria solutions
I tried a bunch of these until I realized that they're _all_ scams
(AFAICT), since Android _already_ comes, native, with a "Mopria" print
server (as its default print server). Even so, they can't work, I think,
simply because my printer, built in 1999, isn't Mopria compliant.

(5) CUPS Server solutions
I only halfheartedly tried the "CUPS Server" solutions, in that I installed
them on my phone; but they seem to require a cups server somewhere, where I
couldn't find CUPS software for Windows (I found it for Linux). While I
dual boot, it's more often in Windows than it's in Linux, so that's not a
good solution for me unless it was the only way to do it (and it wasn't).

(6) Windows SMB shares solutions
I contacted the Windows newsgroup asking for sharing solutions, but none
were forthcoming, and, besides, it turns out I didn't need to go this far
(although I would have had I not found another solution). It's strange
though, that Windows 10 prints just fine, and Android is so difficult, but,
if you were to ask me today, I could get you up and running in minutes just
because I now know how to do it and I didn't know then.

(7) Windows USB shares solutions
As with the SMB shares, I didn't explore directly connected computers,
although others who posted to the thread claimed they work just fine.

(8) There was only one solution (so far) that actually worked!
This solution turned out to be, as many tend to be, devilishly simple!
o Note: I almost never fail, if ever, in solving technical problems.

*How to print from Android to an Ethernet-only HP PCL-5 printer on your LAN*
a. On Android, I installed a "print server" which outputs PDF level 1.3
<https://play.google.com/store/apps/details?id=com.blackspruce.lpd>
b. But my printer doesn't accept PDF - my printer wants PCL-5 instead
<https://support.hp.com/us-en/product/hp-laserjet-2100-printer-series/25469/model/14918>
c. So I added a muPDF "faux printer driver" to "render" the PDF to a bitmap
<https://play.google.com/store/apps/details?id=com.blackspruce.mupdf>

Somehow, the _combination_ (with judicious settings applied) converts the
PDF to a bitmap and by some magic, then to PCL-5, which is then sent to the
printer via the Android "print server".
o <https://groups.google.com/g/comp.mobile.android/c/nTAYljkvVl4/m/qnuazdahCAAJ>

I do not profess nor pretend to know _how_ it works; but it works.
o I must say this is documented NOWHERE on the entire Internet (AFAICT).

Since the main purpose of my posts once a problem is resolved is to
leverage that solution to others so that they don't have to go through the
hell I did, here are, physically, the steps that will solve this problem.

A. If necessary, figure out your printer's IP address on your LAN:
o Printer's IP address, by Alex Trishan
<https://groups.google.com/g/comp.periphs.printers/c/Y-b186tFKTs>

B. Test that the Android device can connect to the printer's IP address:
AndroidTermux: ping 192.168.1.20

C. Determine if your printer can support PDF level 1.3
Note: I don't know programmatically how to determine this information,
but if you try to print from Let's Print Droid, it will pretty much
tell you that it needs Let's Print PDF in order to print PCL-5.

D. If your printer can't support PDF level 1.3 directly, then install
this "faux printer driver" which renders PDFs into bitmaps (I think):
o Let's Print PDF, by BlackSpruce (note it uses muPDF code)
<https://play.google.com/store/apps/details?id=com.blackspruce.mupdf>
Note: As always, this APK is free, ad free, cloud free, & google free.

E. Then install the companion "Let's Print Droid" print server APK
o Let's Print Droid, by BlackSpruce
<https://play.google.com/store/apps/details?id=com.blackspruce.lpd>
Note: As always, this APK is free, ad free, cloud free, & google free.

As a side note, I don't use Google Play as I don't ever use Google
products if I don't have to; so I use the Aurora Store, which is better.

F. After installing both programs, you have to also know a few more tricks
in terms of setting up the Let's Print Droid "print service".

I only found out these tricks by pure trial and error; so not only
is there likely a better way, but some of the tricks may be wrong.

a. The first is to disable Apple Bonjour mDNS scanning
(it simply doesn't work and just wastes your time overall)
b. Another is you need to "manually configure" the printer in LPD
(where I hit upon the settings below by almost sheer trial & error)
Printer Name: HP LJ 2100 tn <== this isn't critical
Protocol: RAW - Jet Direct <== there are 13 protocols to choose from
IP Address/Computer Name: 192.168.0.20 <== it's a static IP address
Port Number: 9100 <== this was the default, so I kept it that way
Queue/Share/Dir Name: DROID <== this was the default, which I kept
Page Description Language: PCL - HP-PCL5 Black/White <== 8 choices
c. You need to make sure Let's Print Droid is the _only_ print server
turned on in the Android Settings "Print Service" menu
(which you can easily make a shortcut to if you follow this thread)
o Creating quick-access shortcuts to any Android or App setting page
<https://groups.google.com/g/comp.mobile.android/c/_1oTdgCIpkc>

Note: The "trial and error" choices for the "protocol" setting above are:
o LPR - Line Printer Remote
o RAW - Jet Direct
o SMB - Windows Shared Printer
o GCP - Google Cloud Print
o IPP - IPP/CUPS print server
o IPPS - IPP/CUPS SSL server
o HTTP - Web Server POST
o HTTPS - encrypted POST
o FILE - CIFS/SMB File drop
o FTP - File Transfer
o FTPS - File Transfer SSL
o SHARE - Share PDF with another app
o VIEW - View PDL with another app

Note: These are the trial & error Page Description Language (PDL) choices:
o RAW - image files not rendered to PDL
o Jpeg Image
o PCL - HP-PCL5 Black/White
o PCL-C - HP-PCL5-C Colour PCL
o PS - Postscript
o PDF - Portable Document Format
o PCL-XL - HP PCL 6 colour,b/w
o URF - Apple AirPrint Universal Raster

While there may be other settings that will likewise work, those are what
worked first for me given my Ethernet'd HP LaserJet 2100tn printer which is
connected by CAT5 cable directly to the SOHO router.

Note: I haven't yet tested anything but PDF files as I wanted to keep the
problem set as simple as possible while I'm setting it up & testing.

The printing process that worked first after the setup above was:
1. Tap the homescreen "Let's Print Droid" icon (which I renamed LPD)
2. Inside the "Let's Print Droid" app, tap the "Print A File" icon
3. In the resulting file browser navigate to your PDF file
4. That brings up not the PDF file, but the default print settings
5. Keep or change the print settings as desired, & press [Continue]

That's it.
o Every page of your PDF file to be printed will be rendered on your phone.
o Once all pages are rendered, they will then be sent to the printer
o Note that a huge PDF will consume a lot of your phone's memory
(My 64GB $100 Moto G7 has 4GB of memory so it didn't flinch yet.)

Key technical issues which remain to be resolved:
a. It would be nice to eliminate the Let's Print PDF renderer if possible
(This will likely take trial & error on the protocol settings.)
b. But mainly I need help from experts in figuring out what's going on!
(I need to better understand what's actually happening when I print.)
c. Is either of these two flows what is actually happening to the data?
PDF -> LetsPrintPDF -> bitmap -> LetsPrintDroid -> PCL5 -> printer
PDF -> LetsPrintPDF -> bitmap -> PCL5 -> LetsPrintDroid -> printer

See also this Google Group, apparently, for the Let's Print Droid app:
o <https://groups.google.com/g/lets-print-droid>

Arlen Holder

unread,
Nov 29, 2020, 5:53:40 PM11/29/20
to
On Sun, 29 Nov 2020 14:59:21 +0100, Michael Logies wrote:

> if your printer is modern, it has a CUPS server included,
> the CUPS client ist on Android.

Hi Michael Logies,

Thank you for your purposefully helpful advice on the CUPS process
o None of us are paid to help each other so I appreciate your help.

You help out of your heart and that's what is great about Usenet!

THANK YOU for being the first to explain _how_ the CUPS process works!
o Almost all debugging _requires_ knowledge of _how_ the system works.

I had tried CUPS, and failed, but I didn't even know _how_ it worked!
o Thank you for explaining that process for us all.

If the CUPS client is on Android, then I _already_ have that installed.
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg>

In fact, a CUPS client was the second approach I had tried (after Mopria):
o <https://i.postimg.cc/xdvmwQ3S/printing02.jpg>

However, based on my search results, CUPS "seemed" to only reside on Linux
which is fine except my dual-boot desktops are mostly on Windows, and,
worse, I tried like hell to find a CUPS port to Windows.
o I found something for Windows called CUPSS but it seemed a dead end.

So I failed with CUPS; but if I had a step-by-step tutorial...
o I might not have failed (likewise if the CUPS setup were more intuitive).

> The CUPS client always converts to PDF or
> forwards a PDF to the CUPS server which converts it for the printer
> (like a driver on Windows) for its printing.

Thank you for _explaining_ what the heck CUPS does as I read the Wikipedia
& still didn't understand in the least how it applied to Android printing.

Unfortunately, when I tried using CUPS, I could find no Android tutorial:
o <https://i.postimg.cc/6qRSK6WY/printing11.jpg>

So when it got to this stage, I had no server to give the setup form:
o <https://i.postimg.cc/9fMnMYX4/printing12.jpg>

It needs a server:port of the format:
o <http://server.tld:631/printers/Print...

Certainly I "guessed" and gave it the printer's IP address:
o http://192.168.0.20:631

But that failed.
o And I gave up on CUPS as I didn't have any step-by-step tutorials.

Nor did I even understand what I was doing.
o Up until now, printing has "just worked"; and then you learn nothing.

> If the printer supports printing PDF natively, the CUPS server has
> not to convert. I took my wisdom from:
> https://wiki.ubuntuusers.de/CUPS/ Funktionsweise von CUPS

My printer is a typical Hewlett Packard LaserJet 2100tn built in 1999:
o I really do not know what it supports, but I "think" it's only PCL-5.
<http://h10032.www1.hp.com/ctg/Manual/bpl13210>

o I don't see any mention of CUPS or PDF on its official web page:
o <https://support.hp.com/us-en/product/hp-laserjet-2100-printer-series/25469/model/14918>

>>I'm very confused why Windows doesn't seem to need a "print server"
>>o Yet, Android seems to need a "print server"
>
> The situation on Window is similiar, I think. You have a print job
> from a client, which has to be converted in a way, the printer
> understands. This is done by the printing driver for Windows.

Thank you for explaining _how_ the printing process works on Windows
o As I never needed to understand it until now (since Windows "just works")

Is this a correct data flow based on what you are trying to advise me?
1. The Windows application (eg MS Word) opens the file in a native format
2. Word "File > Print" sends the native format file to the "printer driver"
3. The printer driver receives "native format" & outputs "printer format"
(which, for my HP LaserJet 2100tn appears to be "PCL-5")
4. The printer driver sends that PCL-5 to the printer IP at 192.168.0.20
(I have no idea which port as a port scan shows only port 80 open.)
5. The printer prints it because the printer accepts PCL-5 format

Is that the correct data flow in a typical Windows printing situation?
o If so, that printer driver is doing a _lot_ of work as it needs to know
a zillion native formats (e.g., MS Word, Irfanview image, VIM text, etc.)

> On CUPS it is more standardized. If a printer understands PDF,
> no conversion by a the CUPS server is needed.

Half of my problem is I don't understand how printing is supposed to work
o That can be overcome with a step-by-step tutorial - but there are none

So it behooves me to _understand_ what you're trying to impart to me!]

Assuming that the printer can "understand" the PDF format...
o Is this how an Android print to that printer is "supposed" to work?
1. The Android editing app reads the file in a native format (e.g., JPEG)
2. The app's "File > Print" sends native format to its "CUPS client"
3. The Android CUPS client converts that native (eg JPEG) format to PDF
4. That CUPS client forwards that PDF to the printer at 192.168.1.20:????
5. The printer prints it because the printer accepts PDF format

>>I do not profess nor pretend to know _how_ it works; but it works.
>
> PCL-5 is another standard (from HP), like PDF. If Android generates a
> PCL output, your printer accepts it as a PCL input.

Given I haven't seen any evidence my HP LJ2100tn supports PDF, I think I
_must_ get Android to output PCL, which, so far, I have been able to attain
only with the combination of two companion programs, where I still need to
_understand_ the data flow as it's not yet working perfectly:

I "think" this is the data flow, but I'm not at all sure that it is:
1. The LetsPrintDroid "print server" reads native format (e.g., PNG)
2. That print server converts that native format (eg PNG) to PCL-5 format
3. It then sends the resulting PCL-5 to the printer 192.168.0.20:?
4. The printer prints it because the printer accepts PCL format

For PDF files, for whatever reason, we need to add an Android intermediary:
1. The LetsPrintDroid "print server" reads native format (e.g., PDF)
2. That print server can't convert that native format (eg PDF) to PCL-5
3. So it sends the PDF to "LetsPrintPDF" which sends back a "bitmap"
4. The LetsPrintDroid print server" converts that bitmap to PCL-5 format
5. LetsPrintDroid then sends the PCL-5 to the printer at 192.168.0.20:?
6. The printer prints it because the printer accepts PCL format

Note: Any of that can be wrong; it's what I "think" the data flow is.
Note: LetsPrintPDF is a PDF viewer (also image viewer) on its own.

>>What I need help with is understanding why printing from Windows is easy
>>o And yet, printing from Android to the same printer is not
>
> If your old windows printer does not support PDF or CUPS, it does not
> work with Linux/Android out of the box. It`s simple.

As far as I can tell, the HP LJ 2100tn, built in 1999, doesn't support
either CUPS or PDF; but it does have something called "Jet Direct", which
seems to accept something called "RAW" but I can't figure out what that is.
o What is JetDirect <https://en.wikipedia.org/wiki/JetDirect>

All I can figure out about "JetDirect" is that it's an Ethernet "NIC".
o It's what allows me to connect the printer to the SOHO router by CAT5.

On terminology, I see JetDirect somehow related to "print server" based on:
o HP LaserJet - Printers that can use HP Jetdirect print servers
<https://support.hp.com/us-en/document/c04763513>

But I'm not at all sure what a "print server" even is.
o Nor if my printer having a JetDirect card makes it a "print server".

What is a print server anyway? <https://en.wikipedia.org/wiki/Print_server>
o I looked it up and it seems to be unnecessary for a single printer.
<https://rjyoung.com/blog/managed-it-services/what-you-need-to-know-about-a-print-server-setup/>

> Years ago hardware for Postscript/PDF-rendering was too expensive to
> integrate in every printer. So it was done in software on the Windows
> machine, which converts e. g. PDFs to GDI for the GDI driver of the
> printer. Such printers are called "GDI printers":
> https://en.wikipedia.org/wiki/Graphics_Device_Interface#GDI_printers
>
> The better ones supported at least PCL, too.
> But today every new printer should support CUPS/PDF.

What I desire is to know the normal data flow for an Ethernet'd printer.
o From Windows (since it just works), and,
o From Android (since it needs to be debugged).
--
When we pool our knowledge, all of us can learn from each other.

Arlen Holder

unread,
Nov 29, 2020, 6:33:27 PM11/29/20
to
On Sun, 29 Nov 2020 09:47:15 -0000, wasbit wrote:

>> the help of my phone (Xiaomi Mi 8) tells me, that for printing it has
>> to be a Wifi printer. My printer are Wifi-capable, so I have no
>> problem printing to them from Android.

> I would suggest that means the phone needs to connect to the router via
> wifi.

Hi wasbit,

The funny thing about doing something for the first time that nobody has
been successful at (as far as I can tell) even as it's a trivially simple
problem set - you would think - is that I end up needing to understand the
printing data flow - which I never bothered to try to grasp before.
o I could even turn my brain off if I could find a step-by-step tutorial.

Regarding Wi-Fi (or Wi-Fi Direct?) printing, I'm not sure if that means the
Android device connects to the printer via a subnet on the LAN or if that
means the Android 10 device connects to the Wi-Fi printer directly via the
Wi-Fi printer's own Access Point. Do you know which it is?

On that note, I'm sure printing would be a lot easier if the printer had an
access point of its own which the Android 10 phone could simply connect to.

But the HP LaserJet 2100tn was built in 1999 where it only has Ethernet.
o <https://support.hp.com/us-en/product/hp-laserjet-2100-printer-series/25469/model/14918>
Note: I think the "tn" means it has the "JetDirect/Raw" Ethernet NIC.

Paradoxically, the Android 10 "Help" that Michael Logies speaks of "looks"
good upon first inspection - in fact - it looks "very good" at first glance
o <https://i.postimg.cc/PxdDh7Sv/printing03.jpg>

But, notice in this screenshot there's _nothing_ in the help for Ethernet!
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg>

It's as if Android 10 isn't designed to do something that Windows 10 has no
problem doing, which is to print to a printer on the same subnet connected
via Ethernet (e.g., it's just a computer with IP address192.168.0.20:port).

What's also interesting is that "cloud printing" has no problem printing to
the printer, which kind of sort of seems to imply that the network isn't
really the problem. Or at least I think that's what that fact implies.
o <https://www.google.com/cloudprint/learn/>

While anyone who knows me knows that I abhor using the cloud just to go
from one computer on my subnet to another computer on my subnet, but what's
interesting is that when I tested out cloud printing, it just worked.
o I tested ZenoFX "PrintBot" & "LocalBot", both of which are crippleware
PrintBot <https://zenofx.com/printbot/>

When I tested that "cloud" solution, it worked the very first time.
o Seamlessly (or so it seemed).

But how?
o How does cloud printing work anyway?

I'm not sure what the "data flow" is for cloud printing, but for sure, the
server-on-the-cloud is converting the native file format to the native
printer format (which is PCL-5 in the case of my Ethernet'd HP LJ 2100tn).
o What is Cloud Printing? How Cloud Printing Works
<https://www.uniprint.net/en/what-cloud-printing/>
"cloud printing service eliminates the need for printer drivers"
"Cloud printing works with both cloud ready printers or legacy printers"

Since coming up with a step-by-step tutorial which is documented nowhere
(AFAICT) is going to take a bit of knowledge on my part, can someone check
this presumed data flow with respect to how cloud printing actually works?

Is this a correct data flow based on what you are trying to advise me?
1. The Android application (eg Acrobat) opens the file in a native format
2. Acrobat "Print" sends the native format file to a "cloud server"
3. The cloud server receives native format & outputs "printer format"
(which, for my HP LaserJet 2100tn appears to be "PCL-5")
4. The cloud server sends that PCL-5 back to the _phone_
5. The phone sends that PCL-5 to the printer IP at 192.168.0.20:?
(I have no idea which port as a port scan shows only port 80 open.)
6. The printer prints it because the printer accepts PCL-5 format

Or, is this what cloud printing entails by way of data flow:
1,2,3, are the same, but 4 is different, & 5 is omitted
4. The cloud server sends that PCL-5 to the _printer_ at 192.168.0.20:?
5. is omitted
6. The printer prints it because the printer accepts PCL-5 format

Can someone please help me figure out the data flow for cloud printing?

Arlen Holder

unread,
Nov 29, 2020, 10:59:34 PM11/29/20
to
On Mon, 30 Nov 2020 03:14:09 +0000 (UTC), JT wrote:

> HP printers use TCP port 9100 by default

Hi JT,

Thank you for your purposefully helpful information about the port that the
HP printers use by default being port 9100. Much appreciated.

I instantly ran this quick test the moment I saw your post:
o telnet 192.168.0.20 9100 (connects, but I can't talk printer protocol)
o telnet 192.168.0.20 9200 (fails, I chose that port arbitrarily to test)

Indeed, you are correct that the HP LJ 2100tn is listening on port 9100.
o Thank you for being a good netizen by helping others out.

I wonder why port 9100 didn't show up in the ipscan for that printer?
o Printer's IP address, by Alex Trishan
<https://groups.google.com/g/comp.perips.printers/c/Y-b186tFKTs>
o IP = 192.168.0.20
o Ping = 2ms
o Hostname = [n/a]
o Ports[3+] = 80

I checked the automatically set settings in Android LetsPrintDroid:
o <https://i.postimg.cc/L5Pfd7xc/printing14.jpg>

Notice they _also_ confirm they automatically chose port 9100.
o <https://i.postimg.cc/bYS12Dqm/printing15.jpg>

Do you perchance know what the "RAW" means in the "RAW - Jet Direct"
o Is that "RAW" format the same thing as "PCL-5" format?
--
Usenet pools our collective experience with people around the world.

Arlen Holder

unread,
Dec 1, 2020, 5:17:48 AM12/1/20
to
On Mon, 30 Nov 2020 13:02:50 GMT, AnthonyL wrote:

> As mentioned previously try the Android app Port Scan from the Fdroid
> repositiory.

Hi AnthonyL,
Thank you for reminding me of that, which, I openly admit, I had forgotten.
o You'd think a Windows port scan would find open ports on a printer

I use AuroraDroid instead of F-Droid (same thing, only with a better GUI,
e.g., it autosaves APKs, just as I use Aurora Store instead of Google Play)
o Port Authority, Port scanner
<https://f-droid.org/en/packages/com.aaronjwood.portauthority/>

It turns out I already had that F-Droid app in my "Network" folder:
o <https://i.postimg.cc/L4YqhR1P/printing16.jpg>

Pressing "Discover Hosts", it found the printer easily at:192.168.1.1
o 192.168.0.20 HP-UX E 9000/889

Then I tapped that particular entry & hit "Scan Well-Known Ports"
o Which scanned the first 1024 ports, finding these "Open Ports"
23 - Telnet
80 - World Wide Web HTTP
280 - http-mgmt
515 - spooler
631 - IPP (Internal Printing Protocol)

That was interesting. For example, noting that CUPS is often using port
631, does that mean my printer is already cups server of its own right?

Curious, I hit the button to scan the entire 65K port range, which found:
23 - Telnet
80 - World Wide Web HTTP
280 - http-mgmt
515 - spooler
631 - IPP (Internal Printing Protocol)
9100 - PDL Data Streaming Port

So there it is, in stark black & white.

Not only is the default PCL-5 printer port clearly 9100
o But, apparently, I have "IPP" (is this the same as CUPS?)

Looking it up, it seems IPP is the _only_ protocol CUPS supports natively:
o Cups protocol: What's the difference between RAW/JetDirect, IPP, IPP14, LPD?
https://unix.stackexchange.com/questions/333296/cups-printing-protocols-whats-the-difference-between-raw-jetdirect-ipp-ipp>
--
Together we know more than any one of us can possibly know being all alone.

Arlen Holder

unread,
Dec 1, 2020, 5:45:16 AM12/1/20
to
On Tue, 1 Dec 2020 02:51:16 +0000 (UTC), JT wrote:

> RAW is the default protocol on HP printers.
> The other option is LPR/LPD.
> I would highly recommend using RAW.

Hi JT,

Thanks for that recommendation as I'm at the point where I'm over my head
in protocols, RAW/JetDirect, IPP, IPP14, LPD, none of which have I even
thought about in all my decades of printing from Windows & Linux.

When everybody knows how to do it, I just google and find the steps
o It's only on Android printing that the steps simply don't exist (AFAICT).

Nowhere on the net have I found a step-by-step tutorial to do something
this simple, which is print directly to your own Ethernet'd printer which
isn't Mopria or Wi-Fi, and where you don't have a Linux CUPS server setup.

Even Android 10 help completely ignores printing to an Ethernet'd printer:
o <https://i.postimg.cc/pTkFdBSG/printing04.jpg>

Even the HP app failed (it expects a "Wi-Fi printer"), where, until I found
the combination of LetsPrintDroid/LetsPrintPDF, the only solutions that
worked were the highly marketed cloud solutions.

While big marketing orgs love to have your data, the last thing I would use
is the cloud just to get data from one device on my LAN to another...
o Only a fool would need to use the cloud to transfer files to/from his own devices.
<https://groups.google.com/forum/#!topic/misc.phone.mobile.iphone/sgSv_BRzO0A>

I admit though that, when I looked for solutions, the big MARKETING orgs
sure did make it easy for people to print to their printers via the cloud.

> LPR/LPD gives you options for creating a print queue and send info about the job.
> Not really needed in a home environment.
> More info about LPR/LPD: https://www.brooksnet.com/content/faq-what-is-lpr-lpd
> This entirely different from printer language.
> Most HP printers support PCL5, PCL6 and Postscript printer languages.
> PCL6 would be my choice if you don't need Postscript or your printer doesn't support it.

Since this is a "legacy printer", HP no longer supplies the Windows 10
drivers, and neither does Windows 10, by default, even when you click the
"Update Driver" buttons where it tries (forever, and fails) to get them.

I wrote up this tutorial long ago for the _only_ way to get Windows
drivers, where, at that time, as I recall, I _tried_ PCL-6, but failed.
o Tutorial for the EASIEST (maybe only?) way to install a problematic legacy printer such as the HP LaserJet 2100 on Windows 10 current versions
<https://groups.google.com/forum/#!topic/alt.comp.freeware/Qb-fXNOH_8g>

I tentatively (but not conclusively) conclude it doesn't support PCL-6.

> In addition, some HP printers do NOT allow Telnet access.

A port scanner says HP LaserJet 2100tn apparently supports telnet
o Although I would only use it for debugging purposes (AFAIK).

I wish I had on Windows a port scanner that could tell me this information
Which reported the printer had the following "Open Ports"
23 - Telnet
80 - World Wide Web HTTP
280 - http-mgmt
515 - spooler
631 - IPP (Internal Printing Protocol)
9100 - PDL Data Streaming Port
As shown in this screenshot:
o <https://i.postimg.cc/L4YqhR1P/printing16.jpg>

While I'm not sure what the "spooler" port does, it seems I had two options
all along that I didn't know I had, which are to use "IPP" (I don't really
know what that is yet though) or RAW (port 9100).

The good news is, I think, the fact IPP (whatever that is) might work in
addition to JetDirect/RAW, literally doubles my options, from 1 to 2!
--
Knowledge is not the same as experience when it comes to making choices.

Arlen Holder

unread,
Dec 1, 2020, 5:06:06 PM12/1/20
to
On Mon, 30 Nov 2020 13:39:01 +0100, Michael Logies wrote:

>>Assuming that the printer can "understand" the PDF format...
>>o Is this how an Android print to that printer is "supposed" to work?
>>1. The Android editing app reads the file in a native format (e.g., JPEG)
>>2. The app's "File > Print" sends native format to its "CUPS client"
>>3. The Android CUPS client converts that native (eg JPEG) format to PDF
>>4. That CUPS client forwards that PDF to the printer at 192.168.1.20:????
>>5. The printer prints it because the printer accepts PDF format
>
> Yes.

Hi Michael Logies,

Thanks for sticking with me as I generally don't give up easily, and even
when I find a solution (as I have, using Let's Print Droid), it's still
good for me to explore the CUPS solution, and then to write a tutorial for
others to do in minutes what has taken me (elapsed time) days to solve.

Thanks for confirming that the CUPS server is what converts the native
format to the printer format (which, in my HP LJ 2100tn, is PCL-5) via the
CUPS port (i.e., port 631, which I confirmed is open on the HP printer):
o <https://i.postimg.cc/L4YqhR1P/printing16.jpg>

I installed _every_ free app on both F-Droid & Google Play that had "CUPS"
in the name, and tested every single one; but all failed in my tests:
o <https://play.google.com/store/search?q=cups%20printing&c=apps>

Only belatedly did I realize there's just no way CUPS is going to work
unless I have a _separate_ dedicated Linux CUPS server running; although
there are heroic ways, if rooted, to run a Debian CUPS server on Android:
o How to print to CUPS (running on another computer in the LAN)?
<https://android.stackexchange.com/questions/43774/how-to-print-to-cups-running-on-another-computer-in-the-lan>

The chance of finding a robust CUPS server compiled for Windows is slim
o CUPS Server compiled for Windows?
<https://stackoverflow.com/questions/2844819/cups-server-compiled-for-windows>
"Making the complete CUPS server+filtering code work on Windows would be
a daunting task, since Windows spooling and printing is so much
different from the Unix world."
--
Solving problems nobody else has ever solved sometimes requires teamwork.

Arlen Holder

unread,
Dec 1, 2020, 5:39:20 PM12/1/20
to
On Tue, 01 Dec 2020 22:46:28 +0100, Michael Logies wrote:

> But there seem to be different flavors of IPP, "IPP Everywhere" being
> the newest one.
> Have you tested this one?
> https://play.google.com/store/apps/details?id=io.github.benoitduffez.cupsprint&hl=de&gl=US
> CUPS Printing

Hi Michael Logies,
Thanks for that warning that CUPS' IPP may have different flavors, where, I
claim I've tried _ever_ free CUPS "print service" on both F-Droid & Google
Play.

Only belatedly have I realized they will _never_ work simply because all
require a "CUPS Server" (not to be confused with Android "Print Services".

> Other ways:
> https://www.xda-developers.com/android-oreo-print-service-ipp/
> Android Oreo Introduces Built-in Print Service for Printers that
> Support the IPP

As far as I can tell, IPP won't work without a "print server" (not to be
confused with an Android "print service"), such as a CUPS print server.

I'm only slowly realizing the "Print Service" simply means that apps can
use the Android API to talk to that Print Service via the "File > Print" of
that Android app. The Android "Print Service" doesn't seem to do much else.

I had read that very same article a while ago, where it's one reason I said
all the Mopria apps were, essentially, scams, as the default Android "Print
Service" is Mopria certified.

Given my HP LaserJet 2100tn Ethernet'd printer is _not_ Mopria certified
o Mopria-certified HP Printers
<https://support.hp.com/us-en/document/c04459315>
"In Windows 10, printing is automatically enabled when the Windows 10
update has been applied (effective October 2018). In Android, you can
print to Mopria-certified printers using the Default Print Service app
built in to Android 8.0 and newer devices."

There's no way the default Android "print service" is gonna work for me:
<https://mopria.org/certified-products>

The only way (AFAICT) the defulat "print service" can work is via IPP,
which, again, I think requires a _separate_ CUPS (or other) Linux-based
"print server" (not to be confused with Android "print services").

The Android "print service" merely energizes the "File > Print" menu in
Android apps (AFAICT), & doesn't actually add much more value than that.

> (...)
> If you have an older printer that does not support the IPP, though,
> then you will still need to install the app recommended by the
> PrintRecommendationService,
> https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r1/packages/PrintRecommendationService/.
> You can learn more about this from a Google I/O 2016 presentation
> here,
> https://www.youtube.com/watch?v=M_JGeGLpOKs&feature=youtu.be&t=16m20s
> (...)

My HP LaserJet 2100tn Ethernet'd printer appears to support IPP based on a
network scan I ran from Android this morning showing 631 as an open port:
o <https://i.postimg.cc/L4YqhR1P/printing16.jpg>

However, I'm slowly coming to the realization that nothing will work using
port 631 (CUPS defaults to IPP) until/unless I add a CUPS print server.

It's trivial to find a step-by-step tutorial to set up a Linux CUPS server:
o Set Up CUPS Print Server on Ubuntu (Bonjour, IPP, Samba, AirPrint)
<https://www.linuxbabe.com/ubuntu/set-up-cups-print-server-ubuntu-bonjour-ipp-samba-airprint>

But there are no tutorials (AFAICT) for setting up a Windows CUPS server.
o If they exist, & I just haven't found them, I'd love a pointer to one!

In summary, as far as I can tell (and I may very well be wrong), there is
no chance for the Mopria/CUPS/IPP default Print Service to work on Android
with my Ethernet's printer without a Linux CUPS server on my network.

Given there's almost zero change of setting up a Windows CUPS server, the
only way Windows 10 can help, I think, is via some kind of "shared" setup.

Otherwise, the only solution on the planet, known to me anyway, is the one
I came up with by help from people like you, and determined trial & error.
--
Some problems are harder to resolve because the industry went to the cloud.

Arlen Holder

unread,
Dec 3, 2020, 10:20:23 AM12/3/20
to
On Wed, 02 Dec 2020 17:03:16 +0100, Michael Logies wrote:

> yesterday I tried to print with my Android 10 (Xiaomi Mi 8) to a Epson
> WF-4630 (ca. 2014) in my office. It did not work with the system print
> service. I had to install "Epson Print Enabler", now it works. I do
> not know, whether the cloud is used or not.
> At home the Epson WF-4720 is recognized easily on the network by the
> system print service.
> I print too seldom from Android for being too much intererested in
> printing problems.

Hi Michael Logies,

Thank you for your update, where I appreciate that you let us know the
Epson app worked for you, even as the HP app failed for me (for reasons
already covered in gory detail in this thread).

I think it's the _wrong_ approach for everyone to have to install a
printer-specific app from the manufacturer; but if it works, that's OK.

What I always strive to do is spend the time to write the tutorial so that
the amount of effort it took us to get it working disappears for others.

All they have to do is follow the tutorial, where, I claim, based on what
I've learned, _anyone_ "should" be able to print to their networked
printer, no matter _what_ printer they have on the network, and no matter
how it's networked, as long as it has an IP address and open ports.

I'm writing up and testing the BSOD tutorial as we speak, and I already
wrote a few tutorials this week on the other newsgroups, so I'm a bit late
on this printing tutorial, but in its simplest form, this is the procedure:

1. Run a scan to identify the printer IP address & supported protocols.
2. Install "Let's Print Droid" & set it up as the _only_ "print service".
3. If the printer doesn't support PDF, also install "Let's Print PDF".

For sure, that does _not_ use the Internet in any way when printing.
o It's free, ad free, & most importantly, compatible with old printers!

I posit there's a good chance that procedure "should" (could? would?) work
on almost any printer on the network no matter how old it is, as long as it
has an IP address (e.g., I don't know about USB or serial port printers).

There are other options, of course, where I've already listed about 8
different ways to print from Android to the printer so I won't repeat them.

Thanks again for being a good hearted person who helps others on Usenet out
of the goodness of your soul, where it's nice to solve problems together.

Arlen Holder

unread,
Dec 6, 2020, 2:43:25 PM12/6/20
to
I solved the problem of a great FOSS program for finding the printer IP &
ports so that Android can print to _any_ networked printer on your LAN!
o Windows: ZenMap/Nmap <https://nmap.org/download.html>
o Android: Port Authority <https://f-droid.org/en/packages/com.aaronjwood.portauthority/>

The solution turned out to be simple, if you already knew what it was!
o Apparently nobody on this newsgroup knows it, but you will now! :)

That's the beauty of asking a question on Usenet...
o We update the tribal knowledge with information nobody knew before.
(Or at least, nobody with purposefully helpful intent who posted.)

Following this article which was mentioned prior in search results:
o 12 Top Open Source Port Scanners for Windows for Host Discovery
<https://www.networkstraining.com/open-source-free-port-scanner-windows/>
o NMAP
o ZENMAP
o Solarwinds Port Scanner
o MyLANViewer Network Scanner
o Netcat
o Cenix Network Port Scanner
o Advanced Port Scanner
o Angry IP Scanner
o LAN Sweeper IP Scanner
o Komodo Slitheris Scanner
o Port Authority Mobile App
o MiTec Network Scanner

I moved to the next "ten best" item that showed up in the lists as #1.
o Nmap (Zenmap) is a keeper

Here's my ad hoc syslog (which I keep of every installation for re-use).
o As always, if you can improve upon this information, please do so.

Obtain the Nmap & Zenmap (the graphical front end) installers or zip files:
o <https://nmap.org/download.html>
o <https://nmap.org/zenmap/>
o <https://nmap.org/dist/nmap-7.91-setup.exe> (includes Zenmap GUI)
o <https://nmap.org/dist/nmap-7.91-win32.zip> (command line only)

Save to your installer archive:
o x:\menu\network\scanner\nmap\.

Name: nmap-7.91-setup.exe
Size: 27278840 bytes (26 MiB)
CRC32: DBC5220C
CRC64: 90765CD4D224C792
SHA256: C4683097A2615252EEDDAB06C54872EFB14C2EE2DA8997B1C73844E582081A79
SHA1: 7474A3C2C44E612387D1FF176179187DDC1B9BFC
BLAKE2sp: B88CB5146BFAA351DE02F4FA852ACD4CFE59EEB6ACEEF34466B7FECEB9BBA060

Name: nmap-7.91-win32.zip
Size: 15303896 bytes (14 MiB)
CRC32: EF156F45
CRC64: 660AAF5D195250E8
SHA256: F497F45CD91E3A78C546C06940ACBD0B5F1FDAE2AEBAA68D8285C2F99220149B
SHA1: 462BFB0F7A7880FBDC05987994A65FC44D716654
BLAKE2sp: 1C504ECC570FB00F7FBC91E0D0883CE295E0C502EE2F5340848E0449F99832BF

I executed the Windows installer:
o x:\menu\network\scanner\nmap\nmap-7.91-setup.exe

These are the default components it will install:
(Uncheck any you do not wish to install; I left them at the default.)
o [x]Nmap Core Files
o [x]Register Nmap Path
o [x]Npcap 1.00
o [x]Networking Performance Improvements)
o [x]Zenmap (GUI Frontend)
o [x]Ndiff (Scan comparison tool)
o [x]Ncat (Modern Netcat reincarnator)
o [x]Nping (Packet generator

It wants to go in: C:\Program Files (x86)\Nmap
o I put it where it belongs, in: C:\app\network\scanner\nmap
NOTE: You define where things belong, not hundreds of others.

Agree to the npcap license popup where these are default checkboxes.
o [_]Legacy loopback support for Nmap 7.80 and older.
o [_]Restrict Npcap driver's access to Administrators only
o [_]Support raw 802.11 traffic (and monitor mode) for wireless adapters
o [x]Install Npcap in WinPcap API-compatible Mode

The penultimate step is this default checkbox list to "Create Shortcuts":
o [x]Start Menu Folder
o [x]Desktop icon

Then press [Finish]
o This creates "Nmap - Zenmap GUI.lnk" on your desktop.
o TARGET: C:\app\network\scanner\nmap\zenmap.exe

Populate your cascade accordion style Taskbar pullout menu:
o move "Nmap - Zenmap GUI.lnk" c:\menu\network\scanner\zenmap.lnk

Run Zemmap:
o Taskbar > menu > network > scanner > zenmap

You'll be presented with a Zenmap GUI asking:
Target: [<blank>]
Profile: [Intense scan]
Command: [nmap -T4 -A -v]
[Scan]

It won't take a blank target, unfortunately.
It won't take "all" either.
Nor will it take 192.168.0.1-192.168.0.255
But it will take a single IP address: 192.168.0.1
Or a static list of IP addresses: 192.168.0.1 192.168.0.255
Or, better yet, a range of IP addresses: 192.168.0.1/24

Which results in the following suggested first run:
Target: [192.168.0.1/24]
Profile: [Quick Scan]
Command: [nmap -T4 -A -v]
[Scan]

Here is a sample output for the printer on my network:
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-07 03:35 USA Standard Time
o Nmap scan report for 192.168.0.20
o Host is up (0.046s latency).
o Not shown: 95 closed ports
o PORT STATE SERVICE
o 23/tcp open telnet
o 80/tcp open http
o 515/tcp open printer
o 631/tcp open ipp
o 9100/tcp open jetdirect
o MAC Address: 00:10:83:b6:23:00 (Hewlett Packard)
o Nmap done: 1 IP address (1 host up) scanned in 8.28 seconds

Compare that output to that of the prior suggested Android Port Authority:
o <https://i.postimg.cc/qq3fY3qT/printing17.jpg> Printer port scan

And we have a keeper each for Android & for Windows' network scanning!
o Windows: ZenMap/Nmap <https://nmap.org/download.html>
o Android: Port Authority <https://f-droid.org/en/packages/com.aaronjwood.portauthority/>
--
The beauty of Usenet is people volunteer to purposefully help each other
solve problems by adding value out of the sheer goodness of their hearts.















Arlen Holder

unread,
Dec 9, 2020, 2:51:49 PM12/9/20
to
Update:

This thread shows how to print to _any_ printer that is on your LAN,
(as long as it has an IP address) where I've been printing away.

However, today I noticed a "gotcha", which is "landscaped" printing.
o I was printing a 2021 customized paper calendar (with birthdays)
based on this tutorial where I converted the calendar PDF to PPT.

o Windows Tutorial to annotate & print family calendar at home on 8.5x11 paper (please improve for all to benefit)
<https://groups.google.com/forum/#!topic/alt.comp.freeware/RA3bLfsgtFg>

When I converted the custom Powerpoint back to PDF, it unexpectedly
printed from my Android phone _only_ in "portrait" orientation.

Not "landscape".

I solved it easily by rotating the PDF in Adobe Acrobat on Windows,
but this problem of "portrait-only" orientation doesn't happen when I print
the same file on Windows.

The "portrait-only" orientation only happens when I print from Android.

In summary, it's just a heads-up to test both orientations if you use this
tutorial to print from Android using LetsPrintDroid & LetsPrintPDF.
--
Google proved, yet again, core iOS code has never been tested since 1985.
<https://groups.google.com/g/misc.phone.mobile.iphone/c/7Mc1sX9XISA>
Google asked "Is it really that easy?", where the answer was "Yes".
0 new messages