Re: [python-win32] Windows printing with the use of Device Context

2022-11-07 Thread Tim Roberts

On 11/7/22 5:25 PM, Neil Kenig wrote:


You may want to try https://pypi.org/project/PyMuPDF/.   It's relatively easy 
to create a blank PDF and then insert text of a given font and size at precise 
locations on the page.  PDF files use points (1/72nd of an inch) for both font 
sizes and location on a page and will print properly regardless of the 
printer's resolution (assuming the stock size is the same, e.g. US Letter or 
A4).  You can then print the PDF and if the preprinted stock is loaded into the 
printer, you should get the desired result.


This is excellent advice, and it has the huge advantage of being 
cross-platform.  The Windows printing API is, in my expert opinion, 
peculiar and finicky.


--
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


Re: [python-win32] Windows printing with the use of Device Context

2022-11-07 Thread Neil Kenig
You may want to try https://pypi.org/project/PyMuPDF/.   It's relatively easy 
to create a blank PDF and then insert text of a given font and size at precise 
locations on the page.  PDF files use points (1/72nd of an inch) for both font 
sizes and location on a page and will print properly regardless of the 
printer's resolution (assuming the stock size is the same, e.g. US Letter or 
A4).  You can then print the PDF and if the preprinted stock is loaded into the 
printer, you should get the desired result.

Neil Kenig
Print Software Engineer (Document Services)

-Original Message-
From: python-win32  
On Behalf Of Tim Roberts
Sent: Monday, November 7, 2022 3:50 PM
To: python-win32@python.org
Subject: Re: [python-win32] Windows printing with the use of Device Context

EXTERNAL MESSAGE - TREAT LINKS/FILES WITH CARE

Antoine FINET wrote:
>
> I would like to print information at the correct coordinates on a pre 
> printed form.
>
> If I understood correctly my readings, the coordinates given to a 
> "TextOut" Printer Device Context depend on the resolution of the 
> printer. Am I right?

Yes, but the exact same thing is true of on-screen windows.  You can use 
GetDeviceCaps(hdc, LOGPIXELSX) to get the pixels per inch resolution.
There's also a LOGPIXELSY, but unless you have a 40-year-old graphics adapter, 
they are the same.  The DeviceCapabilities API returns a DEVMODE structure that 
has detailed information about the printer.


> I don't have another printer to test but my underlying question is :
> does the coordinates depend on the printer?

Absolutely, yes.  Modern printers can be 300, 600, or 1200 dots per inch.  
Label printers can use even wilder values.

--
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


Re: [python-win32] Windows printing with the use of Device Context

2022-11-07 Thread Tim Roberts

Antoine FINET wrote:


I would like to print information at the correct coordinates on a pre 
printed form.


If I understood correctly my readings, the coordinates given to a 
"TextOut" Printer Device Context depend on the resolution of the 
printer. Am I right?


Yes, but the exact same thing is true of on-screen windows.  You can use 
GetDeviceCaps(hdc, LOGPIXELSX) to get the pixels per inch resolution.  
There's also a LOGPIXELSY, but unless you have a 40-year-old graphics 
adapter, they are the same.  The DeviceCapabilities API returns a 
DEVMODE structure that has detailed information about the printer.



I don't have another printer to test but my underlying question is : 
does the coordinates depend on the printer?


Absolutely, yes.  Modern printers can be 300, 600, or 1200 dots per 
inch.  Label printers can use even wilder values.


--
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.



smime.p7s
Description: S/MIME Cryptographic Signature
___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32


[python-win32] Windows printing with the use of Device Context

2022-11-07 Thread Antoine FINET
Hello,

I would like to print information at the correct coordinates on a pre
printed form.

If I understood correctly my readings, the coordinates given to a "TextOut"
Printer Device Context depend on the resolution of the printer. Am I right?
If it depends on resolution, how can I query the printer to know the
resolution and calculate the correct coordinates?

I don't have another printer to test but my underlying question is : does
the coordinates depend on the printer?

Kind regards,

Antoine
___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32