• ×
    Information
    Windows update impacting certain printer icons and names. Microsoft is working on a solution.
    Click here to learn more
    Information
    Need Windows 11 help?
    Check documents on compatibility, FAQs, upgrade information and available fixes.
    Windows 11 Support Center.
  • post a message
  • ×
    Information
    Windows update impacting certain printer icons and names. Microsoft is working on a solution.
    Click here to learn more
    Information
    Need Windows 11 help?
    Check documents on compatibility, FAQs, upgrade information and available fixes.
    Windows 11 Support Center.
  • post a message
Guidelines
Do you need the WPS PIN to connect your printer? Click here for tips and tricks!
HP Recommended
Color Laserjet Pro MFP M180n
Microsoft Windows 10 (64-bit)

I just want to use some of the internal printer fonts both scalable and bitmapped.

My print driver is HP-PCL6

 

1 ACCEPTED SOLUTION

Accepted Solutions
HP Recommended

>> ... I tried to print it to my printer using PCL paraphernalia and nothing happened ...

 

I assume that you mean you used the PRN File Print tool in the application.

How was the Target printer defined?

 

 

>> ... I have network shared my printer as \\TJ25-PC\M180 ...

>> ... my printer is connected by USB and no real network is involved ...

 

I'm not entirely sure from this how your printer is set up.

Are you saying that the printer is attached to workstation \\TJ25-PC via a USB cable, but that you are attempting to run the PCL Paraphernalia tool on a different workstation and identify the printer via this sharename?

If so, I've never tried this, so don't know if it would be a problem.

 

 

 

 

 

>> ... The printer printed out a page with

 

[ZoneTransfer]

ZoneId=3

ReferrerUrl=D:\TJ25\Computing\test-pjl.zip

 

This doesn't appear to be anything to do with the test file I supplied.

 

 

>> ... I therefore think that the reason PCLparaphernalia does not work with network printers is that it does not allow for the simple network shared device as opposed to a real wireless or wired network with IP ...

 

This may well be the case - as a retired contributor, I don't have the necessary equipment to test out this type of configuration.

I'd suggest that this method of connection is effectively using your other workstation as a Print Server.

 

The tools certainly work (with my limited range of printers) if the Target is configured as a "Windows printer" and identified via its Windows printer name on the current workstation (from the drop-down list provided in the Configure... dialogue); note that this name is not the same as the share name of a device connected to a separate workstation.

 

If the Target is to be defined as a Network printer (always my preferred option), the configuration requires that the TCP/IP address be provided - but (according to your statements) your printer is not connected in this way (even though, as an 'n' model, it could be).

 

 

>>  ... I similarly think that the reason PCLparaphernalia does not work with my windows printer is because it requires the PCL XL commands as shown within hello world ...

 

I don't think that this is the case - of the PJL commands you quote, the only mandatory one is the PJL ENTER LANGUAGE = PCLXL

 The jobs generated by the tools start with a Universal Exit Language escape sequence (to invoke PJL mode) and include the 'enter language' command as the last such command before the set of Page Description Language-specific page rendering sequences (the PDL being PCL or PCL XL as requested in the relevant dialogue).

 

 

>> ...  tell me where,  I can zip and send it ...

 

You can always contact me via the support mailbox 'at' pclparaphernalia.eu

View solution in original post

19 REPLIES 19
HP Recommended

>> ... How do i use internal printer fonts?

 

The answer to this rather depends on what features the application(s) and printer driver(s) you are using 'expose'.

 

With standard applications/drivers, it is probably the case that you can use any of the available fonts:

 

  • if the (Windows) workstation has TrueType display fonts equivalent to the target printer-resident fonts (and you select one or more of these fonts in your application), the driver may dynamically construct and download a printer-format soft font equivalent of the donor TTF in the generated print job.
  • Selecting the TrueType font = "Substitute with Device Font" option in the Printer Properties Advanced dialogue should instead force the driver to substitute suitable device fonts.

 

This all depends on you having the required fonts available as display fonts.

This may be the case if you have Office installed.

 

LinePrinter can be problematic, as this is a bitmap font - there used to be a display version made available, but I'm not sure if this is still the case.

 

Try the Font Sample tool in the PCL Paraphernalia application (available via https://www.pclparaphernalia.eu ) to see how your printer prints the various 'standard' resident fonts, using either PCL5 or PCL XL (PCL6) print jobs - the tool uses internal 'drivers'.

HP Recommended

Thanks for your quick response. It is much appreciated.

 

I have downloaded the tool and I will investigate further.

 

It is surprising that HP provides 85 fonts in my printer but I cant reliably select them all.

 

You would have thought that PCL 6 would have some normally highly unprobable escape sequence such as 5 bytes of 0xFD and could then go into PCL5 mode and you would probably need some timeout if there was no escape back. This would then make it fairly easy.

 

Once again thank you but I may have more questions and so I wont mark this as an answer yet.

HP Recommended

>> ... You would have thought that PCL 6 would have some normally highly unprobable escape sequence ...

 

Not as such, although PCL XL Class/Revision 3.0 does include the PCLSelectFont attribute to the SetFont operator.

 

The attached .zip file contains a sample print file (and an analysis of same) which:

 

  • Prints the characters 'acbde' using the Arial font as selected using standard PCL XL font selection.
  • Prints the same characters using the Wingdings font as selected using its PCL characteristics, via use of the PCLSelectFont attribute.

 

The analysis shows the difference between the two font selects:

 

FontSelPCLXL.png

 

FontSelPCLEmbedded.png

 

 

But very few printers support this attribute; 'sending' the content of the sample print job to some locally available printers yields the following results:

 

  • LaserJet 1320n fails with a PCL XL "UnsupportedProtocol" error - this is because this printer only supports PCL XL C/R 2.0 (not 3.0).
  • LaserJet pro 400 Colour MFP M475dn fails with a PCL XL "IllegalAttribute" error - this printer appears to be a hybrid, in that it supports C/R 3.0, but not all of the more obscure additions introduced in that update.
  • PageWide Enterprise Colour 556 prints the data as expected:

scan0030.jpg

 

... and use of such sequences is almost certainly not supported by 'standard' drivers, so this presupposes that you'd be generating your own (PCL XL) print jobs without use of such a driver.

HP Recommended

Once again thank you for your prompt response.

 

I downloaded the file and analysed it with the same as your response.

 

I tried to print it to my printer using PCL paraphernalia and nothing happened.

 

I initially used the windows printer and I tried using a few of the other tools. I tried powering off and on the printer so that nothing was stuck but to no avail.

 

I have network shared my printer as \\TJ25-PC\M180

 

I the copied the PCL5FontSelect.pxl file to the printer with the dros command line:

 

Copy / b PCL5FontSelect.pxl \\TJ25-PC\M180

 

The printer printed out a page with

 

[ZoneTransfer]

ZoneId=3

ReferrerUrl=D:\TJ25\Computing\test-pjl.zip

 

I think the last line was because I first did this with test-pjl file after unzipping it strangely enough.

 

I couldn’t configure my network printer with PCLParaphernalia as it only allows IP input with a real wireless or wired network whereas my printer is connected by USB and no real network is involved and no HomeGroup.

 

I note from your release notes that USB printers are supposed to be OK.

 

 I then created a Hello World word document and printed it to a file and when I did the same:

 

Copy/b helloworld.prn \\TJ25\M180

 

 The printer produced exactly the same output as when I printed it straight to the printer.

 

I therefore think that the reason PCLparaphernalia does not work with network printers is that it does not allow for the simple network shared device as opposed to a real wireless or wired network with IP.

 

I similarly think that the reason PCLparaphernalia does not work with my windows printer is because it requires the PCL XL commands as shown within hello world.

The Analysis of the file starts off as

Offset: hex    Type                   Sequence          Description                                        

-------------  ---------------------  ----------------  ----------------------------------------------------

00000000       PCL Parameterised      <Esc>%-12345X     Universal Exit Language (UEL)                      

               Comment                                  Switch language to PJL                             

00000009       PJL Command            @PJL JOB          <LF>                                               

00000012       PJL Command            @PJL SET           QTY=1<LF>                                          

00000021       PJL Command            @PJL SET           MANUALDUPLEX=OFF<LF>                              

0000003b       PJL Command            @PJL SET           ECONOMODE=OFF<LF>                                 

00000052       PJL Command            @PJL SET           GRAYSCALE=OFF<LF>                                 

00000069       PJL Command            @PJL SET           RESOLUTION=600<LF>                                

00000081       PJL Command            @PJL SET           BITSPERPIXEL=8<LF>                                

00000099       PJL Command            @PJL SET           STRINGCODESET=UTF8<LF>                            

000000b5       PJL Command            @PJL SET           JOBATTR="JobAcct1=TJ25"<LF>                       

000000d8       PJL Command            @PJL SET           JOBATTR="JobAcct2=\\TJ25-PC"<LF>                  

00000100       PJL Command            @PJL SET           JOBATTR="JobAcct4=20180217154022"<LF>             

0000012b       PJL Command            @PJL SET           JOBATTR="JobAcct9="<LF>                           

00000148       PJL Command            @PJL DMINFO        ASCIIHEX="0400040101020D1010011532303138303231373 

                                                        13534303232"<LF>                                   

00000192       PJL Command            @PJL SET           USERNAME="TJ25"<LF>                               

000001ad       PJL Command            @PJL SET           JOBNAME="Microsoft Word - Document1"<LF>          

000001db       PJL Command            @PJL SET           JOBATTR="Render Type = Discrete V4"<LF>           

00000208       PJL Command            @PJL SET           JOBATTR="JobAcct3=TJ25-PC"<LF>                    

0000022e       PJL Command            @PJL SET           JOBATTR="JobAcct5=-1420718746-58474-17592-9dcc-65 

                                                        c04317367a"<LF>                                    

00000274       PJL Command            @PJL SET           JOBATTR="OS = Windows"<LF>                        

00000294       PJL Command            @PJL SET           JOBATTR="OS Version = 10.0.16299.1"<LF>           

000002c1       PJL Command            @PJL SET           JOBATTR="Render Name = HP ColorLaserJet MFP M178- 

                                                        M181 PCL-6"<LF>                                    

00000307       PJL Command            @PJL SET           JOBATTR="Render Version = 13.29"<LF>              

00000331       PJL Command            @PJL SET           FASTPAGEFIRST=YES<LF>                             

0000034c       PJL Command            @PJL SET           HOLD=OFF<LF>                                      

0000035e       PJL Command            @PJL ENTER         LANGUAGE=PCLXL<LF>                                

               Comment                                  Switch language to PCLXL                           

00000378       PCLXL Stream Header    0x292048..        ") HP-PCL XL;3;0;Comment Copyright(c) 1999-2011 H" 

000003a8                              0x65776c..        "ewlett-Packard Corporation<LF>"                   

000003c3       PCLXL Data Type        0xd1                  uint16_xy                                       

000003c4                  Value       0x58025802            600 600                                        

000003c8       PCLXL Attribute        0xf889              UnitsPerMeasure                                  

000003ca       PCLXL Data Type        0xc0                  ubyte                                          

000003cb                  Value       0x00                  eInch                                            

 

I hope this gives enough information but if you tell me where,  I can zip and send it.

 

HP Recommended

>> ... I tried to print it to my printer using PCL paraphernalia and nothing happened ...

 

I assume that you mean you used the PRN File Print tool in the application.

How was the Target printer defined?

 

 

>> ... I have network shared my printer as \\TJ25-PC\M180 ...

>> ... my printer is connected by USB and no real network is involved ...

 

I'm not entirely sure from this how your printer is set up.

Are you saying that the printer is attached to workstation \\TJ25-PC via a USB cable, but that you are attempting to run the PCL Paraphernalia tool on a different workstation and identify the printer via this sharename?

If so, I've never tried this, so don't know if it would be a problem.

 

 

 

 

 

>> ... The printer printed out a page with

 

[ZoneTransfer]

ZoneId=3

ReferrerUrl=D:\TJ25\Computing\test-pjl.zip

 

This doesn't appear to be anything to do with the test file I supplied.

 

 

>> ... I therefore think that the reason PCLparaphernalia does not work with network printers is that it does not allow for the simple network shared device as opposed to a real wireless or wired network with IP ...

 

This may well be the case - as a retired contributor, I don't have the necessary equipment to test out this type of configuration.

I'd suggest that this method of connection is effectively using your other workstation as a Print Server.

 

The tools certainly work (with my limited range of printers) if the Target is configured as a "Windows printer" and identified via its Windows printer name on the current workstation (from the drop-down list provided in the Configure... dialogue); note that this name is not the same as the share name of a device connected to a separate workstation.

 

If the Target is to be defined as a Network printer (always my preferred option), the configuration requires that the TCP/IP address be provided - but (according to your statements) your printer is not connected in this way (even though, as an 'n' model, it could be).

 

 

>>  ... I similarly think that the reason PCLparaphernalia does not work with my windows printer is because it requires the PCL XL commands as shown within hello world ...

 

I don't think that this is the case - of the PJL commands you quote, the only mandatory one is the PJL ENTER LANGUAGE = PCLXL

 The jobs generated by the tools start with a Universal Exit Language escape sequence (to invoke PJL mode) and include the 'enter language' command as the last such command before the set of Page Description Language-specific page rendering sequences (the PDL being PCL or PCL XL as requested in the relevant dialogue).

 

 

>> ...  tell me where,  I can zip and send it ...

 

You can always contact me via the support mailbox 'at' pclparaphernalia.eu

HP Recommended

The reason why PCL Paraphernalia fails to generate any output on your (USB-connected) LaserJet M180 may be associated with use of "v4 printer model" drivers (although I haven't had time to investigate this yet).

 

With the older "v3 printer model" drivers, 'passthrough' of raw (printer-specific) data is achieved with the 'raw print data' solution by specifying a datatype of RAW.

 

But with the newer (XPS-based) "v4 printer model" drivers, 'passthrough' appears to require use of a datatype of XPS_PASS.

 

If the printer were connected instead as a TCP/IP Ethernet network printer, and the PCL Paraphernalia Target configured as a Network printer, this issue is not relevant, since the  'transport' mechanism is different in this case (it doesn't require any knowledge or use of Windows drivers).

HP Recommended

To check whether the driver is a v3 or v4 version:

 

  • Open a command-prompt session.
  • Type printui.exe /s and <enter>.
  • This should start the Printer Server Properties dialogue (you may be asked to provide an administrator password).
  • Select the Drivers tab - this shows all installed drivers (even for printers which you may no longer have installed); for example:
  • Capture.PNG
HP Recommended

Thank you for your 26th March reply giving a method of establishing whether the driver is V3 or V4.

Around March 20th, I noticed that there was a new version of HP software for my printer and so I have downloaded and installed it. I have previously also installed the latest firmware 121017. Therefore I cannot confirm that the previous printer driver was v3 or v4.

When I ran Printui it confirmed that the current driver was a v4 printer driver.

PCL Paraphernalia still fails with event Ids of 372 and 1000 when I try to print via the HP printer driver. As you say it is apparently due to the v4 printer change and going via the spooler queue which does not support the RAW data type.

However I have added a new printer driver generic/text which uses the same port as the HP printer (USB0001). Now if I configure PCL Paraphernalia to use this Windows Printer generic/ text Paraphernalia works correctly with several PRN files. It is also much faster to print because it does not apparently use the spooler queue.

However when I send PCL5FontSelect to the generic/text driver, the following text is printed:

PCL XL Error

            Subsystem:     KERNEL

            Error:               IllegalAttribute

            File name:       kerlib.c

            Line number:   4556

This looks like it is the same response as your LaserJet pro 400 Colour MFP M475dn.

And your comment on that was “this printer appears to be a hybrid, in that it supports Class/Revision 3.0, but not all of the more obscure additions introduced in that update.

I suspect that there is no error handling for printer errors with the generic text but at least it works with Paraphernalia.

There is another peculiarity of this second driver for the HP printer. It does not show up in Devices and printers but it is available if you try to print from Word or Notepad.

 

HP Recommended

I will try to release an interim version of PCL Paraphernalia to address the "v3 versus v4" issue.

 

[I'm working on a new tool (edit of PCL and PCLXL bitmap fonts), but (at the current rate of progress) it will be some time (and I may never complete it - getting old and tired!]

 

 

The IllegalAttribute error is almost certainly because your printer (like my M475dn) does not support the rather obscure PCLSelectFont feature.

 

 

I can't really help with your new printer instance not showing up in Devices and Printers, sorry.

† The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the <a href="https://www8.hp.com/us/en/terms-of-use.html" class="udrlinesmall">Terms of Use</a> and <a href="/t5/custom/page/page-id/hp.rulespage" class="udrlinesmall"> Rules of Participation</a>.