Re: [python-win32] Windows printing with the use of Device Context
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
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
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
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