Opened 15 years ago
Closed 15 years ago
#36 closed task (fixed)
Port QPrintEngine and QPrinterInfo
Reported by: | Dmitry A. Kuminov | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | Qt 4.6.2 |
Component: | QtGui | Version: | 4.5.1 Beta 1 |
Severity: | high | Keywords: | |
Cc: |
Description
Provide the OS/2 version of the QPrintEngine and QPrinterInfo classes.
Change History (11)
comment:1 by , 15 years ago
Severity: | → high |
---|
comment:2 by , 15 years ago
Milestone: | Qt Enhanced → Qt 4.6.1 |
---|---|
Priority: | major → blocker |
comment:3 by , 15 years ago
I adopted the code to use CUPS on OS/2 but it links against libcups.a which unfortunately uses pthreads. Seems to be one more external dependency... Will try to get one at the Paul's page.
comment:4 by , 15 years ago
Okay, I got printing work through CUPS. The only other issue besides the pthread dependency is that sending PDF data to CUPS doesn't work in eCUPS (although according to the Qt sources, it should work since CUPS version 1.2 and ftp://ftp.netlabs.org/pub/ecups/eCUPS003.wpi provides version 1.3). I forcefully cause it to use the PostScript mode so far. Will need to clarify the details with Paul.
comment:5 by , 15 years ago
Another problem that I found is that an attempt to perform any print operation leaves a temporary file in %TEMP% containing raw PostScript data that is sent to CUPS. The file remains locked until the Qt application terminates. I couldn't find any code in Qt responsible for that so I suspect that libcups.a is in charge of that. Paul, could you please comment on that too?
comment:6 by , 15 years ago
Please discard the previous comment. It turned out to be the vendor bug. Fixed in r574.
comment:7 by , 15 years ago
Enabled printing support by default (run configure.cmd as usual). Here's the new bits from README.OS2 on the prerequisites:
- eCUPS 1.3.11 or later to support printing in Qt. The eCUPS WPI is available at: ftp://ftp.netlabs.org/incoming/eCUPS003.wpi or ftp://ftp.netlabs.org/pub/ecups/eCUPS003.wpi Linking against eCUPS also requires pthread.lib: http://web.os2power.com/download/lib/pthread-20100217-os2.zip
- Install the eCUPS WPI archive to enable printing support. If this WPI is installed, the Qt build system will pick up all necessary libraries automatically. Otherwise, you will need to use the following environment variables to tell it where to look for CUPS: set CUPS_INCLUDEPATH=X:\Path\to\CUPS\include set CUPS_LIBS=X:\Path\to\CUPS\lib\libcups.a Note that if the eCUPS WPI is not installed and these variables are not set, printing support will be completely disabled in the resulting Qt build. You will also need to make sure that pthread.lib is placed somewhere in your system library path so that the compiler can find it.
comment:8 by , 15 years ago
ok I see the 'Empty Print file' when trying to print a pdf too - will investigate now
comment:9 by , 15 years ago
of course, then, I enable debug logging in cups and try again, and the damn pdf prints
comment:10 by , 15 years ago
I see :) BTW, is it a big deal to provide cups.dll instead of libcups.a? It is really preferable to link to CUPS dynamically because it allows for transparent CUPS updates w/o rebuilding Qt.
comment:11 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The primary task is done so closing this defect. Created #141 to track remaining problems with CUPS.
This is the main part of implementing the printer support.