Novell Home

Hosting iPrint Maps on Remote Server

Novell Cool Solutions: Tip
By Greg Riedesel

Digg This - Slashdot This

Posted: 27 Oct 2005
 

Problem:

One side effect of iPrint's map editor is that you have to host the map on the same server that iPrint runs out of. If your environment has strict rules about the look of web-sites, this can present a problem. Or if you desire to host the list of printers on a separate web-server, such as one run by your Support department, the map tool is not well suited.

Creating your own pages can be done, but you do need to be aware of how iPrint URLs work as well as certain pages on the iPrint web-server itself. This guide will show you what you need to know to make it work out.

Solution:

Anatomy of an iPrint page

If you dig into the HTML produced by the map tool you can see how the requests are generated. Each link to a printer looks similar to this one:

<!-- ipp_printer_1 -->
<DIV id="ipp_printer_1" style="position:absolute;left:28;top:57;" ALIGN="center">
      <A name="ipp_printer_1" href="isinstf.htm?ippPrinterURL=ipp://10.123.97.2/ipp/prbh101&onInstalled=status&onNotInstalled=install">
        <IMG name="ipp_printer_1" src="images/printers/laser_5.gif" title="prbw101" border=0></A><BR>
        <LABEL ID="ipp_printer_1_caption">Bhemler Hall</LABEL>
</DIV>
  • The <DIV> section provides a name for the link and positions it on the page.
  • The <A> section provides the actual link that gets followed.
  • The <IMG> section gives the printer image to use.
  • The <LABEL> section gives the text that describes the image.
If you break down the <A> link you get a call to a URL:
isinstf.htm?ippPrinterURL=ipp://10.123.97.2/ipp/prbh101&onInstalled=status&onNotInstalled=install

This calls a page in the same directory as the map called "isinstf.htm" and passes it several parameters. The first parameter is the iPrint printer that is being requested. The second and third parameters define what to do with the two states called onInstalled and onNotInstalled. If the computer requesting the page already has that printer installed then the status page for that printer is displayed. If the computer requesting the page does not have the printer installed, it will ask to install the printer.

By default, the "isinstf.htm" file is located at SYS:Apache2\htdocs\ippdocs. If you go ahead and open that file in a text editor, you will see that it is very short. The three lines that drive the installation process are the <SCRIPT SRC=".."> tag, and the two <IFRAME SRC=".."> tags.

By default the URLs in both tags are preceded by a "./", indicating that the page is a child of the same web-server as the page itself.

Remote Hosting the page

In order to remotely host the page you need to edit the isinstf.htm file. All instances of a relative path (the ./) need to be replaced by a full URL. Example:

<SCRIPT SRC="./scripts/iprint.js"></SCRIPT>

Changes to

<SCRIPT SRC="https://10.123.97.2/ippdocs/scripts/iprint.js"></SCRIPT>

This needs to be done to both the SCRIPT and IFRAME tags. If you don't do it, installations will behave weirdly. If you have a cluster, this page needs to be present on all servers that can host the iPrint web-server.

Note: Since you are hand-editing a file that service-packs and patches consider to be static, it is a very good idea to make a copy of it when you are done editing. After service-packs and iPrint patches you will likely have to copy what you edited over what was put down by the service pack or patch.

At this point the hard work is done! In the page you create, the URL is very similar to the one that the map tool creates. You will need to add the full URL for the isinstf.htm call:

https://10.123.97.2/ippdocs/isinstf.htm?ippPrinterURL=ipp://10.123.97.2/ipp/prbh101&onInstalled=status&onNotInstalled=install

Just place that call on whichever page you wish, and you are now set. If you wish to provide a link to the printer status, that URL is very simple:

https://webserver/ipps/printername

Which will jump to the status screen for the printer.

Gotchas

Please note that there is no "ipps:" method. The iPrint client on the local machine will negotiate with the iPrint server whether or not to use SSL for the conversation. IPP is not like HTTP/HTTPS where you have two different protocols.

On the other hand, if you change the path in the above URL to use ipps instead of ipp:

ipp://10.123.97.2/ipp/prbh101

To

ipp://10.123.97.2/ipps/prbh101

You can force people attempting to install the printer to authenticate before the printer will install. If you have configured your printers to require authentication before they will print, this can be a way to cut down on log-clutter and cluttered-up workstations.


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell