View Single Post
  #31  
Old November 30th 20, 03:14 AM posted to alt.comp.os.windows-10,alt.comp.microsoft.windows,comp.periphs.printers
JT[_4_]
external usenet poster
 
Posts: 8
Default If you print from Windows 10 to your LAN networked printer - have you also printed from Android? How?

Arlen Holder wrote:

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 serverort 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/Graphi...e#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).



HP printers use TCP port 9100 by default


JT

--