I have been helping someone with a program called TubeCAD. The program requires a 32-bit prefix and according to the text that came with it should be run in Windows 2000 or lower. I have tried Windows 2000 all the way down to Windows 95 but still get the error. The program is self-inclusive according to the text so no dll's etc are needed.
The problem is it doesn't "like" a printer, at least the developer says it means there is no Windows default printer defined. I have a wireless printer defined as the only and default printer in linux. If I don't close the error box the program seems to run fine until you select report, at which point it does show my printer but generates the same error when I try to print. I installed the CUPS pdf and made it the default in linux. It shows and behaves in the program just the same. I don't see how a program can see a printer, let you select it but refuse to "see" it when it tries to print. The developer did say this is not an app fault but rather no default printer defined in Windows.
I have no clue what the differences are between any printer "calls" in the various version of Windows.
From what I have gleaned from reading on the net wine sees the printers as defined to linux. I only have a single printer and it is set as the default printer in linux. Since it is wireless I even tried having it connected via a USB cable for direct printing but the program still behaves the same. My printer is using CUPS but I also read that sometimes you have to have a PPD or some such thing file for lpr. Apparently CUPS uses lpr??
So, since the printer is know to linux is there a way within wine to define a printer as a default Windows printer? Winecfg doesn't show anything for a printer from what I can see on the tabs.
I am running linux mint 20 64-bit with the Mate desktop.
Wine version is 5.0.3. EDIT: Just tried with staging 6.0-rc3 with no difference
Winetricks version shows as 20201206-next with sha256sum: data after it.
If any additional information is needed I will gladly supply it.
Thank you for any help!
Define a default printer in wine??
Re: Define a default printer in wine??
So, I've dug in a little and see the printer in the registry.
I have tried to read the microsoft docs for the registry entries for a printer and then see if any way i might need to set those in a wine prefix. I got lost and don't understand what I'm reading.
How do I know in the registry if the printer is set as the default? I don't know what things like (default), which shows as (value not set), Attributes, Default DevMode, etc., should look like in wine.
There is another subkey (hklm/system/currentcontrolset/print/<my printer>/PPD Overrides. I see (default) (value not set) and DefaultPageSize with no value Could this somehow causing a problem when the app is looking for the default printer and things like the page size and the default rotation?
I know the printer taken from the linux devices but I don't know how to make things sync up in the registry for a default printer, it's default orientation (I need automatic), default page size, etc.
Am I way off base here?
I have tried to read the microsoft docs for the registry entries for a printer and then see if any way i might need to set those in a wine prefix. I got lost and don't understand what I'm reading.
How do I know in the registry if the printer is set as the default? I don't know what things like (default), which shows as (value not set), Attributes, Default DevMode, etc., should look like in wine.
There is another subkey (hklm/system/currentcontrolset/print/<my printer>/PPD Overrides. I see (default) (value not set) and DefaultPageSize with no value Could this somehow causing a problem when the app is looking for the default printer and things like the page size and the default rotation?
I know the printer taken from the linux devices but I don't know how to make things sync up in the registry for a default printer, it's default orientation (I need automatic), default page size, etc.
Am I way off base here?
Re: Define a default printer in wine??
@fargodwe
You can test what printers you have setup in Cups, with:
You'll see:
- if you haven't correctly setup Cups - on the Linux host.
If you don't even see that information - then you may still need the 32-bit cups library.
Or your Linux user may need to be in the lpadmin group??!!
Wine will auto-populate registry keys (3-5 - from memory) with the current system printers - whenever a WINEPREFIX is booted. There is no point trying to do this manually...
Bob
You can test what printers you have setup in Cups, with:
Code: Select all
WINEDEBUG=+winspool wineboot -u
Code: Select all
...
00c0:trace:winspool:load_cups 0x7d311cb0: libcups.so.2 loaded
00c0:trace:winspool:WINSPOOL_EnumPrintersW Found 0 printers
00c0:trace:winspool:CUPS_LoadPrinters Found 0 CUPS printers:
00c0:trace:winspool:WINSPOOL_EnumPrintersW Found 0 printers
...
If you don't even see that information - then you may still need the 32-bit cups library.
Or your Linux user may need to be in the lpadmin group??!!
Wine will auto-populate registry keys (3-5 - from memory) with the current system printers - whenever a WINEPREFIX is booted. There is no point trying to do this manually...
Bob
Re: Define a default printer in wine??
Thanks Bob. Did the winedebug and it finds and shows my printer and as default.
My user is a member of both the lp and lpadmin groups.
I did put in WINEDEBUG=+all even though it's supposed to be the default. I then executed the program and while nothing shows on the terminal when it starts up and gets the error I think I may have found something. When the program is running and you select the report option none of the options work and nothing additional shows on the terminal except for one option: Setup. It shows the default printer selection window, but each time you access it I get the following on the terminal, perhaps a hint to what print call might be used that is failing:
Not sure what is going on. Don't know how the developer coded this back prior to Windows 2000. It may be that this is just one of those apps that just isn't compatible in wine.
My user is a member of both the lp and lpadmin groups.
I did put in WINEDEBUG=+all even though it's supposed to be the default. I then executed the program and while nothing shows on the terminal when it starts up and gets the error I think I may have found something. When the program is running and you select the report option none of the options work and nothing additional shows on the terminal except for one option: Setup. It shows the default printer selection window, but each time you access it I get the following on the terminal, perhaps a hint to what print call might be used that is failing:
Code: Select all
00e0:fixme:commdlg:PrintDlg16 custom setup hook 038709CB no longer supported
Not sure what is going on. Don't know how the developer coded this back prior to Windows 2000. It may be that this is just one of those apps that just isn't compatible in wine.
Re: Define a default printer in wine??
I guess I didn't explain my thinking very well in the post above. If the program is apparently using a 16-bit call for printer selection, perhaps there is 16-bit printing call it is using as well, and perhaps this call isn't supported in wine?