LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Printer not working !

Hello ,

Created application with CVI 7.0 , hope that when finishing the test work , putput the result via a printer . The printer model is "HP
Deskjet 1120C" , but whatever the printer can not work , please give an advise how to resolve the problem . Thanks.


David
0 Kudos
Message 1 of 14
(5,167 Views)
AFAIK, CVI (and LabVIEW) both use the GDI commands to send data to printers. Now, it's possible that the printer you're using no longer supports GDI with the latest drivers. I would possibly try contacting HP to see if the printer supports GDI, and also it may be necessary to try an older driver that you can download from HP's site. We have had several notes from customers about this, and are looking at possible fixes for future releases. I would place a product suggestion on our website to start taking advantage of new printer interfaces. Hope this helps!
Jeremy L.
National Instruments
0 Kudos
Message 2 of 14
(5,160 Views)
But when do you can fix this bug ? This project is for an important customer , hope can resolve the problem ASAP .


David
0 Kudos
Message 3 of 14
(5,153 Views)
I too had problems in the past with some little HP and Espon inkjet printers, but all was solved when moving the applicationt to CVI 6 from the original 5.5 version. Before doing so the only solution I had found was to download and use an old driver for the printer, as Jeremy suggested, or change the unit to a different type (preferably laser: they told me that this problem is more frequent with home or SOHO inkjet units).

It is to be said that when I started to work with CVI 6 I no more had similar problems. Till now I made no tests on version 7 of CVI.


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 4 of 14
(5,142 Views)

The issue is more of an incompatibility with the driver that the particular printer uses. CVI creates standard Windows GDI instructions for rending text and images on display devices and does not directly interact with the driver. It is up to the driver to be fully compatible with the Windows GDI subsystem standard and properly render all of the instructions. The printing functionality of CVI has remained unchanged for quite some time and has stuck with this method of using GDI only to maintain the highest level of compatibility with all output devices, but sadly many of the newer driver implementations have forgone GDI compatiblity to optimize their drivers to work best with certain applications. Now, if you think about it, since an older driver often can correctly output the graphics and text without incident (depending on when the printer was originally manufactured there may not be an older driver), it must be a change in the new driver that is causing this to happen, and the printer itself nor CVI is the problem.

Also, you can try changing to bitmapped mode. Look for "bitmap printing" in the CVI online help. Hope this provides some more possibilities for you!

Jeremy L.
National Instruments
0 Kudos
Message 5 of 14
(5,141 Views)
I'm working with CVI 6.0 on WinXP, and I have exactly the same problem.
I tried both the HP Deskjet D2360 and HP Deskjet 5940 but PrintTextBuffer() and PrintPanel() don't work Smiley Sad

When I send printing command, my application hangs without printing, and I must close it using the Task Manager. Then, after I re-start the application, everything works fine.... or it seems so.
My problem is the same I read in
http://forums.ni.com/ni/board/message?board.id=180&message.id=7129&query.id=588823#M7129

I read different explanations, and I agree that it's hard to believe it's not a CVI problem.
I read I should try an older printer driver, but where I can find it? On th HP web site there are only the newest ones!!!!
The deskjet printers quickly go out of production, and I need to replace them with the new models... so I can't select a specific printer (but how can I find a working one???).

Can someone help me?


Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 6 of 14
(4,899 Views)

Hello Vix,

I don't have that printer but I downloaded the D2300 driver from HP and tried to reproduce the problem using CVI 6.0. I couldn't reproduce it when I tested PrintTextBuffer by printing to the LPT1 port (which, of course, didn't really have a printer attached) but then I tried printing to a file and the program hung, like you said. I was able to debug the hang and found that it was a thread deadlock problem (the driver is discarding threads at an unexpected point of the code). Because of a change in how CVI handles threads being discarded that was introduced in version 7.0 (as a result of bug report 2NGDHNAB) this deadlock no longer happens in versions 7.0 and later. To confirm that it fixes your problem you can try downloading the latest version of the CVI run time engine.

Luis

 
Message 7 of 14
(4,879 Views)
I'll try and I let you know,
but now I have another question.
Does your suggestion mean that it's possible developing an application with CVI 6.0, and running it on another PC with different RTE installed (for example 7.0, 8.0, ...)?
I know that CVI RTE is tipically installed in \Windows\System32 folder, so if I install a newer RTE I overwrite the old one. Are the newest RTEs fully backward compatible with the oldest ones?

And what about developing with CVI 6.0, but installing RTE 7.0 on my PC (overwriting the 6.0 RTE)? Is it OK?
In LabVIEW this is impossible....

Thanks in advance
Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 8 of 14
(4,857 Views)

Run-time engines are backward compatible, so you can run an application of yours on a different (newer) RTE without problems. At least this is what I saw in the documentation and in my experience.

In my developing machine I have installed at present 3 different cvi versions (6, 7 and 😎 so I am using RTE 8 even when I modify and test CVI6 applications and never had problems.

On the other hand, I have seen some differences in how the different RTEs render graphical objects in the user interface, particularly between version 6 and 7 but this had never had impact on system and program performances.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 9 of 14
(4,855 Views)
Ok, nice to hear Smiley Happy
I installed CVI RTE 7.0 on my developing machine, and I think i did it in the right way. As a matter of fact I checked, and the version of C:\Windows\system32\cvirte.dll is 7.0
Then with CVI 6.0 IDE I created the Distribution Kit for my application (including Full Runtime Engine support), but when I installed on the target PC, I found 6.0 RTE again.
How can I include 7.0 RTE in Distribution Kit created with CVI 6.0?
Is it possible?

Thanks in advance
Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 10 of 14
(4,839 Views)