Feb 212012
We are proud to announce the release of the DYMO LabelWriter/LabelManager SDK 1.4.0 for Linux.
This release adds support for the LabelWriter 3xx series printers. Please check the DYMO SDK for Linux document for a complete list of supported DYMO LabelWriter/LabelManager printers.
The SDK is available from here. The DYMO LabelWriter/LabelManager SDK for Linux page is here
Does this work with the JavaScript library?
No, JavaScript library isn’t supported on Linux.
Dear Dymo,
I’m trying to get a LabelWriter450 to print labels at a reasonable speed in Ubuntu 11.10
As it stands now it takes about 10 seconds to print a single label. In Windows it prints in a fraction of a second.
We need printing in linux because we will eventually have a setup with several print servers connected to several labelwriters in an assembly line.
Here is what happens:
In one terminal I do:
lpr -o PageSize=w162h90 test.txt
I another:
cat /sys/kernel/debug/usb/usbmon/3u
This is sent over the wire instantly:
ffff8801494a3300 3311681047 S Ci:3:004:0 s 80 08 0000 0000 0001 1 <
ffff8801494a3300 3311682764 C Ci:3:004:0 0 1 = 01
ffff880036bd60c0 3311682837 S Ci:3:004:0 s a1 00 0000 0000 0400 1024
ffff88011df79a80 3314124156 S Bo:3:004:2 -115 2 = 1b41
ffff88011df79a80 3314125771 C Bo:3:004:2 0 2 >
ffff88011df790c0 3316626811 S Bo:3:004:2 -115 2 = 1b41
ffff88011df790c0 3316628777 C Bo:3:004:2 0 2 >
ffff88011df79f00 3319129469 S Bo:3:004:2 -115 2 = 1b41
ffff88011df79f00 3319130775 C Bo:3:004:2 0 2 >
ffff88011df79180 3321630885 S Bo:3:004:2 -115 4 = 1b4c0177
ffff88011df79180 3321632765 C Bo:3:004:2 0 4 >
Then this is sent, all at once. At the same time, the label prints.
ffff8801532fe300 3321633219 S Bo:3:004:2 -115 512 = 1b66010d 1b42091b 44011670 1b420916 701b4209 16701b42 001b442b 17019134
ffff8801532fe300 3321636785 C Bo:3:004:2 0 512 >
ffff8801532fe300 3321636886 S Bo:3:004:2 -115 512 = 1e811381 0d810c81 17821181 0d823581 17821181 0a821a81 37821081 17810981
ffff8801532fe300 3321640763 C Bo:3:004:2 0 512 >
ffff8801532fe300 3321640902 S Bo:3:004:2 -115 512 = 0c820b83 051b4200 1b443f17 018d1191 0c930788 06870b82 05850d83 06840991
ffff8801532fe300 3321644765 C Bo:3:004:2 0 512 >
ffff88011df79240 3321644827 S Bo:3:004:2 -115 512 = 00170583 0a820a81 0e811381 1b811282 0d822681 11810882 0d820e81 00821b81
ffff88011df79240 3321648769 C Bo:3:004:2 0 512 >
ffff8801532fef00 3321648835 S Bo:3:004:2 -115 121 = 810c820b 8311811b 81148209 822b8307 830d8209 8210811f 81138209 82008102
ffff8801532fef00 3321651763 C Bo:3:004:2 0 121 >
ffff88011df79f00 3321651822 S Bo:3:004:2 -115 4 = 1b471b41
Now the label has been print mostly but the roll needs to be advanced before the label can be torn off.
These again one per second.
ffff88011df79f00 3322169771 C Bo:3:004:2 0 4 >
ffff8801542b9180 3324152507 S Bo:3:004:2 -115 2 = 1b41
ffff8801542b9180 3324153774 C Bo:3:004:2 0 2 >
ffff8801542b9180 3326655044 S Bo:3:004:2 -115 2 = 1b41
ffff8801542b9180 3326656775 C Bo:3:004:2 0 2 >
ffff88000b062a80 3329157344 S Bo:3:004:2 -115 2 = 1b41
ffff88000b062a80 3329158770 C Bo:3:004:2 0 2 >
Then this is sent and the roll is advanced to the point where we can use the label.
ffff88000b280600 3331657756 S Bo:3:004:2 -115 2 = 1b45
ffff88000b280600 3331659780 C Bo:3:004:2 0 2 >
It looks like a timeout issue to me. Is there something we can do about it?
Printing from Ubuntu 11.04 to my DYMO LabelWriter 450 Twin Turbo does not take longer than printing from Windows.
I am using the following command:
lpr PageSize=w79h252 test.txt
Is there a delay as well when printing a “Test Page” within the printer properties?
Hi Pi,
thanks for your reply!
The “print test page” function in the properties dialog behaves the same way. It takes about 10 seconds. Some 7 before it starts at all and then it prints about half the label. Waits another 3-4 seconds and then it prints the rest.
What can you deduce from this behaviour?
Are you using Ubuntu or Ubuntu server? Is the printer locally attached? What kind of LabelWriter 450 are you using? Are you able to print locally to a locally attached LabelWriter 450 using Ubuntu?
Hi Pi,
I’m on Ubuntu Desktop. Kernel 3.0.0-16-generic 64 bits.
The printer is locally attached via USB.
The model number is: 1750111.
Serial number is: 1750111-2117415.
I’m using Dymo brand labels type 11354.
The printer works ok. It is just very slow, about 1 label every 10 seconds.
Best regards,
Freek
I am on Ubuntu 11.04 (kernel 2.6.38-13-generic 32 bits). I don’t encounter any delays when printing to a DYMO LabelWriter 450, DYMO LabelWriter 450 Turbo, and DYMO LabelWriter 450 Twin Turbo. Do you see a delay on other DYMO printers as well? Have you tried a different PC and a different USB cable?
Good news:
The printer is fast on my collegue’s computer. He is also on 32 bits ubuntu 11.04.
I have also tried a different cable but that didn’t make a difference.
I’ll try to boot a 32 bit livecd of 11.10 and see what that does. But that will be tomorrow, it’s end of the day here.
Thanks for the help!
Freek
I am able to reproduce the problem on Ubuntu 11.10. It seems something is broken on 11.10 since there isn’t any performance problem on 11.04.
Ok great that you have reproduced it. I’ll hold off on making the livecd and work with 11.04 for now.
Would you be so kind as to post a comment here when/if you find out what the problem was?
Thanks again for your help! Now I at least know that it wasn’t something I did wrong.
best regards,
Freek
It is not a CUPS 1.5.0 issue since it is working with openSUSE 12.1. It looks like an Ubuntu 11.10 bug.
It is an Ubuntu 11.10 feature since the “usb” backend of CUPS has no backchannel support in Oneiric (11.10). This problem will fixed in Precise (12.04).
Ok, thank you for finding this out. I’ll just avoid 11.10 for now!
I really appreciate that you invested all the effort to sort this out for me!
best regards!
Freek Zindel
It is working with Ubuntu 12.04 BETA again. I guess that it will work with Ubuntu 12.04.
Hello
I have the same problem on raspbian. if i do
lpr -Pdymo file.pdf
it is ok
if i do
lpr -Pdymo file1.pdf, file2.pdf
it take 10 seconds to print the 2 labels. first print imeddiately and second wait 6-8 seconds
Any idea ?
Thank you
I don’t have raspbian and we haven’t tested our drivers on raspbian.
The issue above has been caused by missing CUPS back channel support and has been fixed with a more recent Ubuntu version.
Therefore I would try with the latest raspbian version.
Is there a dll available that could translate the “.label” files to an image?
I am looking for lightweight optimization in printer speed across all platforms. I would prefer to do this without full blown gui software.
Currently have a network of customers consisting of 2,900+ LabelWriter printers printing 67,000+ labels per week and growing.
We provide only the CUPS drivers for Linux.
The JavaScript Library might be an option if you consider Windows or Mac OS X. Please check the following blog post:
http://developers.dymo.com/2011/11/17/javascript-library-samples-printers-and-multiple-labels-printing/
Currently using COM via .NET c# on Windows and AppleScript on OSX. Part of our struggle is that we have to install the full Dymo software on each kiosk and would prefer to have a library that we could embed to make installation faster.
Is there a spec for the .label xml format?
The availability of CUPS drivers for Linux is great by the way.
We have 2 blog posts which are dealing with the label file format. They can be found on http://developers.dymo.com/tag/xml/
hi,
I try to install dymo cup driver for “dymo labelmanager pnp” on debian squeeze. When I try to print page test (pdf, image or text) from cups or other program, i get this error:
/usr/lib/ups/filter/pdftoroaster failed.
Also, I don’t know the right URI for pnp on CUPS, I tryed this: “usb://DYMO/LM-PNP” , it’s right? how to fix the pdftoroaster issue? This is my conf:
dymo-cups-drivers-1.4.0.5
CUPS: 1.4.4-7+squeeze1
ghostscript: gs 8.71
tank you.
The current Linux SDK does not support the DYMO LabelManager PnP. Please check the DYMO_SDK_for_Linux document for the supported DYMO printers.
There is an lmpnp.ppd file :( . It ‘a shame that there is not a driver for label manager pnp. there is another way to use this device on linux? It will take a long time before it is released?It’s planned?
The DYMO LabelManager PnP has 2 USB configuration and each configuration is a composite device. The first and default USB configuration reports as a HID interface and a MAS interface. The second USB configuration reports as a printer interface, a HID interface and a MAS interface. Therefore custom software is required to tell the LabelManager PnP to start the second USB configuration in order to print.
I try to switch off uneeded usb storage drive to leave only printer usb. I try to use USB_ModeSwitch (http://www.draisberghof.de/usb_modeswitch/#usage) with this rule:
—————————————————————————————————————————-
DefaultVendor= 0x0922 # idVendor 0x0922 Dymo-CoStar Corp.
DefaultProduct= 0x1001 # idProduct 0x1001
# To Printer mode:
TargetVendor= 0x0922 # idVendor 0x0922 Dymo-CoStar Corp.
TargetProduct= XXXXXX
MessageContent=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
—————————————————————————————————————————-
But i don’t now XXX value. You can help? I find others value from lsusb
The idProduct of the 2nd USB configuration is 0x1002.
Hello, our work uses dymo label printers to barcode stock as it’s processed. Now, we currently have our labels printed via a web browser which requests the label from the server, the response looks something like this:
codemessagemessagelabels
This triggers a label to be printed with a set template. Now, I am considering a move to linux, and to an open source browser to add extra functionality, such as automated data entry. How exactly do I implement this? Add code into the browser? Is there a way to get this server response to trigger a label within linux?
[code]<methodResponse><params><param><value><struct><member><name>code</name><value><string>message</string></value></member><member><name>message</name><value><string></string></value></member><member><name>labels</name><value><struct><label id="683841 GBM12353-1"><tamsid value="683841"/><tamscode value="683841*12480"/><loadcode value="GBM12353-1"/><desc1 value="Computer-PC Hp DC7700 Core 2 Duo 1866MHz"/><desc2 value=" 2048MB 0GB HDD DVD-RW/CD-RW NIC:On Boar"/><serial value="aud71705wq"/></label></struct></value></member></struct></value></param></params></methodResponse>
[/code]
DYMO provides CUPS drivers for printing. But the DYMO JavaScript library isn’t supported on Linux.
So I assume that I’ll need to perhaps put code in the browser to catch the server response, place the elements into the template, and then send code off via cups to print the label?
I downloaded and installed the SDK for Linux version 1.4.0.5, but i dont find the PPD files for the Dymo LabelManager 420P (which i bought because there should be some Cups Drivers for it, according to http://var.dymo.com/US/resources/sdk/linux/ )
Could you please give me a hint?
Thanks in advance and best regards, Mathias
The PPD file for the DYMO LabelManager 420P is called LM420p.ppd. But the DYMO LabelManager PnP as well as the 420P have 2 USB configuration. The first and default USB configuration reports as a HID interface and a MAS interface. The second USB configuration reports as a printer interface, a HID interface and a MAS interface. Therefore custom software is required to tell the LabelManager 420P to start the second USB configuration in order to print.
There is already a comment about this topic. The USB_ModeSwitch (http://www.draisberghof.de/usb_modeswitch/#usage) is working according to that customer.
The DYMO LabelManager PnP Product ID of the 2nd USB configuration is 0×1002
The DYMO LabelManager 420P Product ID of the 2nd USB configuration is 0×1004
Hello pi,
thanks for your quick response. I really appreciate addicted open source developpers of big companies.
Unfortunately this is not always true for other companies ;(
But back to the prolem with the *.ppd for the LabelManager 420P:
The LM420p.ppd file is neither in the SDK 1.2.0 available here: http://var.dymo.com/US/files/2011/12/dymo-cups-drivers-1.2.0.tar.gz nor in the SDK 1.4.0.5 avalable here: http://download.dymo.com/Software/Linux/dymo-cups-drivers-1.4.0.tar.gz .
Maybe it was forgotten to add to the *.tar.gz ?
Thanks for the hints with the usb-modeswitch, it seems that this part is working in my configuration. If it’s running here, i’ll add some information on how to get it running on Ubuntu 12.04 LTS .
Thank you very much, Mathias
Please send an email asking for the lm420p.ppd to the DYMO SDK-only support e-mail [sdkreply at newellco com].
Is the JavaScript library still not supported?
Andrew,
Our JavaScript SDK is only supported on Windows and Mac.
The link to the sdk page is broken. Only the sdk link works. Where is the documentation?
SDK Documentation
Is printing of DieCutLabel XML labels at all possible on linux?
Hi,
Die cut label printing is supported by our linux SDK. You can take a look at the Sample file included in the SDK for examples on how to print these labels.
Hello,
I have trouble with Cups 2.2.x. Firstly, there were a couple of errors at compilation, which could be fixed by including where necessary:
diff -u -r dymo-cups-drivers-1.4.0.5/src/common/CupsFilter.h dymo-cups-drivers-1.4.0.5-patch/src/common/CupsFilter.h
— dymo-cups-drivers-1.4.0.5/src/common/CupsFilter.h 2012-02-07 14:22:37.000000000 +0100
+++ dymo-cups-drivers-1.4.0.5-patch/src/common/CupsFilter.h 2016-10-26 16:09:48.957672252 +0200
@@ -23,6 +23,7 @@
#include
#include
+#include
#include
#include
#include “CupsPrintEnvironment.h”
diff -u -r dymo-cups-drivers-1.4.0.5/src/lm/CupsFilterLabelManager.h dymo-cups-drivers-1.4.0.5-patch/src/lm/CupsFilterLabelManager.h
— dymo-cups-drivers-1.4.0.5/src/lm/CupsFilterLabelManager.h 2012-02-07 14:22:38.000000000 +0100
+++ dymo-cups-drivers-1.4.0.5-patch/src/lm/CupsFilterLabelManager.h 2016-10-26 16:10:40.611006704 +0200
@@ -23,6 +23,7 @@
#include
#include
+#include
#include “LabelManagerDriver.h”
#include “LabelManagerLanguageMonitor.h”
#include “DummyLanguageMonitor.h”
#endif
diff -u -r dymo-cups-drivers-1.4.0.5/src/lw/CupsFilterLabelWriter.h dymo-cups-drivers-1.4.0.5-patch/src/lw/CupsFilterLabelWriter.h
— dymo-cups-drivers-1.4.0.5/src/lw/CupsFilterLabelWriter.h 2012-02-07 14:22:37.000000000 +0100
+++ dymo-cups-drivers-1.4.0.5-patch/src/lw/CupsFilterLabelWriter.h 2016-10-26 16:10:25.051006367 +0200
@@ -23,6 +23,7 @@
#include
#include
+#include
#include “LabelWriterDriver.h”
#include “LabelWriterLanguageMonitor.h”
#include “DummyLanguageMonitor.h”
Secondly, after fixing the compilation issue, the printer doesn’t work. No error is reported and the driver seems working fine from the logs. But the printer (LabelWriter PnP) remains impassibly silent and nothing comes out of it. It was working before the upgrade to Cups 2.2.x.
How to debug / check if the usb communication between the host and the printer works fine? Is there some kind of self-test in the driver?
What Linux version are you running? Is CUPS 2.2 supported on your Linux version? Are you able printing to other printers? Is there a special reason why you are running CUPS 2.2?
I am running Ubuntu 16.04 and the latest CUPS version is 2.1.3. The Linux SDK is compiling just fine with out any issues. What compiler errors are you getting? Have you tried to run drivers compiled against CUPS 2.1 on 2.2?
I assume that you are referring to LabelManager PnP since LabelWriters are our die-cut (pre-sized) label printers. I am not sure how you have fixed your compiling errors. But make sure that you don’t mix LabelWriter and LabelManager code.
Finally the DYMO LabelManager PnP has 2 USB configuration and each configuration is a composite device. The first and default USB configuration reports as a HID interface and a MAS interface. The second USB configuration reports as a printer interface, a HID interface and a MAS interface. Therefore custom software (e.g. USB_ModeSwitch) is required to tell the LabelManager PnP to start the second USB configuration in order to print. Please see the responses of this blog post for more details.
CUPS 2.2 is the official supported version on ArchLinux. It will be also soon for Ubuntu I guess.
The version compiled on 2.1 was not working (dynamic linking issues). I reported the issue here with a detailed error log and a patch (missing #include cups/ppd.h):
https://aur.archlinux.org/packages/dymo-cups-drivers
It’s indeed a LabelManager PnP. It was working fine before with V2.1 and CUPS sees the usb printer. I can still configure it in CUPS but when I print, there are no errors in CUPS logs (debug level enabled) and I see the driver process running, just that nothing comes out of the printer. That’s very strange.
For NixOS i proposed a similar patch: https://github.com/makefu/nixpkgs/blob/892c418f5d52424d15bbe0a2d6908c876a49bbe9/pkgs/misc/cups/drivers/dymo/fix-includes.patch
I also created a support ticket for this to fix upstream.
Hello,
Could you help me?
I have Dymo Label Manager PnP and Fedora 25 operation system. I found Dymo SDK for Linux, download it and try to install.
“./configure” command works fine, but then I tried to execute “make” command process and it was failed.
Here the log of errors:
Making all in src
make[1]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
make all-recursive
make[2]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Making all in lw
make[3]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Making all in tests
make[4]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw/tests'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw/tests'
make[4]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
g++ -DHAVE_CONFIG_H -I. -I../../src -I../common -O2 -Wall -Wno-unknown-pragmas -MT raster2dymolw.o -MD -MP -MF .deps/raster2dymolw.Tpo -c -o raster2dymolw.o raster2dymolw.cpp
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In member function 'int DymoPrinterDriver::CCupsFilter::Run(int, char**)':
../common/CupsFilter.h:135:10: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
std::auto_ptr H;
^~~~~~~~
In file included from /usr/include/c++/6.3.1/memory:81:0,
from raster2dymolw.cpp:28:
/usr/include/c++/6.3.1/bits/unique_ptr.h:49:28: note: declared here
template class auto_ptr;
^~~~~~~~
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In member function 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*)':
../common/CupsFilter.h:218:3: error: 'ppd_file_t' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~~~~~~~~
../common/CupsFilter.h:218:15: error: 'ppd' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~
../common/CupsFilter.h:218:46: error: there are no arguments to 'ppdOpenFile' that depend on a template parameter, so a declaration of 'ppdOpenFile' must be available [-fpermissive]
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^
../common/CupsFilter.h:218:46: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../common/CupsFilter.h:228:22: error: there are no arguments to 'ppdMarkDefaults' that depend on a template parameter, so a declaration of 'ppdMarkDefaults' must be available [-fpermissive]
ppdMarkDefaults(ppd);
^
../common/CupsFilter.h:234:59: error: there are no arguments to 'ppdMarkOption' that depend on a template parameter, so a declaration of 'ppdMarkOption' must be available [-fpermissive]
ppdMarkOption(ppd, Options[i].name, Options[i].value);
^
../common/CupsFilter.h:238:44: error: there are no arguments to 'cupsMarkOptions' that depend on a template parameter, so a declaration of 'cupsMarkOptions' must be available [-fpermissive]
cupsMarkOptions(ppd, OptionCount, Options);
^
../common/CupsFilter.h:243:3: error: 'ppd_choice_t' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^~~~~~~~~~~~
../common/CupsFilter.h:243:17: error: 'choice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^~~~~~
../common/CupsFilter.h:243:67: error: there are no arguments to 'ppdFindMarkedChoice' that depend on a template parameter, so a declaration of 'ppdFindMarkedChoice' must be available [-fpermissive]
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^
../common/CupsFilter.h:248:15: error: there are no arguments to 'ppdClose' that depend on a template parameter, so a declaration of 'ppdClose' must be available [-fpermissive]
ppdClose(ppd);
^
In file included from raster2dymolw.cpp:38:0:
CupsFilterLabelWriter.h: At global scope:
CupsFilterLabelWriter.h:36:89: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriver& Driver, CDummyLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
CupsFilterLabelWriter.h:43:98: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriverTwinTurbo& Driver, CDummyLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
In file included from raster2dymolw.cpp:38:0:
CupsFilterLabelWriter.h:50:95: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriver& Driver, CLabelWriterLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
CupsFilterLabelWriter.h:58:104: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriverTwinTurbo& Driver, CLabelWriterLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
raster2dymolw.cpp: In function 'int main(int, char**)':
raster2dymolw.cpp:60:3: error: 'ppd_file_t' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~~~~~~~~
raster2dymolw.cpp:60:15: error: 'ppd' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~
raster2dymolw.cpp:60:46: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:68:35: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:73:35: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurboWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurboWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:84:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurbo; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurbo; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:89:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:103:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:108:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
Makefile:345: recipe for target 'raster2dymolw.o' failed
make[4]: *** [raster2dymolw.o] Error 1
make[4]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Makefile:435: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Makefile:262: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Makefile:204: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Makefile:263: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
What should I do?
ppd_file_t is defined in “cups/ppd.h”.
Please make sure that this file has been installed and that this file contains the definition for ppd_file_t.
If you can’t find this header file or the definition is missing then install libcups2-dev package.
I found this file. It was in
/usr/include/cups/ppd.d
Then I grep’ed this file to find the ppd_file_t. Here the output:
[root@localhost cups]# less ppd.h | grep ppd_file_t
} ppd_file_t;
extern int cupsMarkOptions(ppd_file_t *ppd, int num_options, cups_option_t *options) _PPD_DEPRECATED;
extern void ppdClose(ppd_file_t *ppd) _PPD_DEPRECATED;
extern int ppdCollect(ppd_file_t *ppd, ppd_section_t section,
extern int ppdConflicts(ppd_file_t *ppd) _PPD_DEPRECATED;
extern int ppdEmit(ppd_file_t *ppd, FILE *fp,
extern int ppdEmitFd(ppd_file_t *ppd, int fd,
extern int ppdEmitJCL(ppd_file_t *ppd, FILE *fp, int job_id,
extern ppd_choice_t *ppdFindMarkedChoice(ppd_file_t *ppd,
extern ppd_option_t *ppdFindOption(ppd_file_t *ppd, const char *keyword)
extern int ppdIsMarked(ppd_file_t *ppd, const char *keyword,
extern void ppdMarkDefaults(ppd_file_t *ppd) _PPD_DEPRECATED;
extern int ppdMarkOption(ppd_file_t *ppd, const char *keyword,
extern ppd_file_t *ppdOpen(FILE *fp) _PPD_DEPRECATED;
extern ppd_file_t *ppdOpenFd(int fd) _PPD_DEPRECATED;
extern ppd_file_t *ppdOpenFile(const char *filename) _PPD_DEPRECATED;
extern float ppdPageLength(ppd_file_t *ppd, const char *name)
extern ppd_size_t *ppdPageSize(ppd_file_t *ppd, const char *name)
extern float ppdPageWidth(ppd_file_t *ppd, const char *name)
extern ppd_attr_t *ppdFindAttr(ppd_file_t *ppd, const char *name,
extern ppd_attr_t *ppdFindNextAttr(ppd_file_t *ppd, const char *name,
ppd_file_t *ppd,
extern int ppdCollect2(ppd_file_t *ppd, ppd_section_t section,
extern int ppdEmitAfterOrder(ppd_file_t *ppd, FILE *fp,
extern int ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp)
extern char *ppdEmitString(ppd_file_t *ppd, ppd_section_t section,
extern ppd_coption_t *ppdFindCustomOption(ppd_file_t *ppd,
extern ppd_option_t *ppdFirstOption(ppd_file_t *ppd) _PPD_DEPRECATED;
extern ppd_option_t *ppdNextOption(ppd_file_t *ppd) _PPD_DEPRECATED;
extern int ppdLocalize(ppd_file_t *ppd) _PPD_DEPRECATED;
extern ppd_file_t *ppdOpen2(cups_file_t *fp) _PPD_DEPRECATED;
extern const char *ppdLocalizeIPPReason(ppd_file_t *ppd,
extern int cupsGetConflicts(ppd_file_t *ppd, const char *option,
extern int cupsResolveConflicts(ppd_file_t *ppd,
extern int ppdInstallableConflict(ppd_file_t *ppd,
extern ppd_attr_t *ppdLocalizeAttr(ppd_file_t *ppd, const char *keyword,
extern const char *ppdLocalizeMarkerName(ppd_file_t *ppd,
extern int ppdPageSizeLimits(ppd_file_t *ppd,
Also I tried to find libcups2-dev for fedora, but can’t. I found just cups-libs. What the difference between them?
Here the packages which installed in my system:
[root@localhost /]# dnf list | grep cups
bluez-cups.x86_64 5.42-2.fc25 @koji-override-0
cups.x86_64 1:2.2.0-8.fc25 @updates
cups-bjnp.x86_64 2.0-5.fc24 @fedora
cups-client.x86_64 1:2.2.0-8.fc25 @updates
cups-devel.i686 1:2.2.0-8.fc25 @updates
cups-devel.x86_64 1:2.2.0-8.fc25 @updates
cups-filesystem.noarch 1:2.2.0-8.fc25 @updates
cups-filters.x86_64 1.10.0-3.fc25 @koji-override-0
cups-filters-devel.i686 1.10.0-3.fc25 @fedora
cups-filters-devel.x86_64 1.10.0-3.fc25 @fedora
cups-filters-libs.i686 1.10.0-3.fc25 @fedora
cups-filters-libs.x86_64 1.10.0-3.fc25 @koji-override-0
cups-ipptool.x86_64 1:2.2.0-8.fc25 @updates
cups-libs.i686 1:2.2.0-8.fc25 @updates
cups-libs.x86_64 1:2.2.0-8.fc25 @updates
cups-lpd.x86_64 1:2.2.0-8.fc25 @updates
cups-pdf.x86_64 2.6.1-11.fc24 @fedora
cups-pk-helper.x86_64 0.2.6-1.fc24 @koji-override-0
cups-x2go.noarch 3.0.1.3-2.fc24 @fedora
gutenprint-cups.x86_64 5.2.11-2.fc24 @koji-override-0
python3-cups.x86_64 1.9.72-9.fc25 @koji-override-0
apcupsd.x86_64 3.14.14-2.fc25 fedora
apcupsd-cgi.x86_64 3.14.14-2.fc25 fedora
apcupsd-gui.x86_64 3.14.14-2.fc25 fedora
bluez-cups.x86_64 5.44-1.fc25 updates
python-cups-doc.x86_64 1.9.72-9.fc25 fedora
python2-cups.x86_64 1.9.72-9.fc25 fedora
Please run automake and autoconf before you run ./configure and then make.
I am not sure if “_PPD_DEPRECATED” will generate an error or just a warning. In the past it used to generate a compiler warning.
What CUPS version are you running?
I did autoconf and automake before ./configure. So when I ran autoconf it works fine. But problem appeared when I tried to start automake. Here a piece of log:
[root@localhost dymo-cups-drivers-1.4.0.5]# automake
configure.ac:22: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see:
configure.ac:22: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
ppd/Makefile.am:53: warning: deprecated feature: target ‘testppd’ overrides ‘testppd$(EXEEXT)’
ppd/Makefile.am:53: change your target to read ‘testppd$(EXEEXT)’
/usr/share/automake-1.15/am/program.am: target ‘testppd$(EXEEXT)’ was defined here
ppd/Makefile.am:49: while processing program ‘testppd’
samples/custom_paper/Makefile.am:28: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
samples/custom_paper_tape/Makefile.am:28: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
samples/paper_bounds/Makefile.am:28: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
samples/test_label/Makefile.am:30: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/common/tests/Makefile.am:41: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/common/tests/Makefile.am:24: warning: source file ‘../Halftoning.cpp’ is in a subdirectory,
src/common/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the ‘subdir-objects’
automake: automake option hasn’t been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using ‘subdir-objects’ option throughout your
automake: project, to avoid future incompatibilities.
src/common/tests/Makefile.am:24: warning: source file ‘../ErrorDiffusionHalftoning.cpp’ is in a subdirectory,
src/common/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/common/tests/Makefile.am:24: warning: source file ‘../NonLinearLaplacianHalftoning.cpp’ is in a subdirectory,
src/common/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/Makefile.am:22: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/lm/Makefile.am:26: warning: source file ‘../common/CupsPrintEnvironment.cpp’ is in a subdirectory,
src/lm/Makefile.am:26: but option ‘subdir-objects’ is disabled
src/lm/Makefile.am:26: warning: source file ‘../common/Halftoning.cpp’ is in a subdirectory,
src/lm/Makefile.am:26: but option ‘subdir-objects’ is disabled
src/lm/Makefile.am:26: warning: source file ‘../common/ErrorDiffusionHalftoning.cpp’ is in a subdirectory,
src/lm/Makefile.am:26: but option ‘subdir-objects’ is disabled
src/lm/Makefile.am:26: warning: source file ‘../common/NonLinearLaplacianHalftoning.cpp’ is in a subdirectory,
src/lm/Makefile.am:26: but option ‘subdir-objects’ is disabled
src/lm/Makefile.am:26: warning: source file ‘../common/DummyLanguageMonitor.cpp’ is in a subdirectory,
src/lm/Makefile.am:26: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:44: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/lm/tests/Makefile.am:24: warning: source file ‘../../common/tests/testsMain.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../../common/tests/MOCK_PrintEnvironment.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../../common/tests/TestCommon.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../../common/DummyLanguageMonitor.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../LabelManagerDriver.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../CupsFilterLabelManager.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lm/tests/Makefile.am:24: warning: source file ‘../LabelManagerLanguageMonitor.cpp’ is in a subdirectory,
src/lm/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/Makefile.am:48: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/lw/Makefile.am:24: warning: source file ‘../common/CupsPrintEnvironment.cpp’ is in a subdirectory,
src/lw/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/Makefile.am:24: warning: source file ‘../common/Halftoning.cpp’ is in a subdirectory,
src/lw/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/Makefile.am:24: warning: source file ‘../common/ErrorDiffusionHalftoning.cpp’ is in a subdirectory,
src/lw/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/Makefile.am:24: warning: source file ‘../common/NonLinearLaplacianHalftoning.cpp’ is in a subdirectory,
src/lw/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/Makefile.am:24: warning: source file ‘../common/DummyLanguageMonitor.cpp’ is in a subdirectory,
src/lw/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:49: warning: ‘INCLUDES’ is the old name for ‘AM_CPPFLAGS’ (or ‘*_CPPFLAGS’)
src/lw/tests/Makefile.am:24: warning: source file ‘../../common/tests/testsMain.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../../common/tests/MOCK_PrintEnvironment.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../../common/tests/TestCommon.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../../common/DummyLanguageMonitor.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../LabelWriterLanguageMonitor.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../LabelWriterDriver.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
src/lw/tests/Makefile.am:24: warning: source file ‘../CupsFilterLabelWriter.cpp’ is in a subdirectory,
src/lw/tests/Makefile.am:24: but option ‘subdir-objects’ is disabled
I googled this wraning and found that it can solve by this change:
I did it in configure.ac
+++ AM_INIT_AUTOMAKE([subdir-objects])
--- AM_INIT_AUTOMAKE(dymo-cups-drivers, 1.4.0.5)
Also I changed Makefile.am and added there a string:
AUTOMAKE_OPTIONS=subdir-objects
After that, automake worked fine. Then I started ./configure it worked fine too. And, then I tried to start make again. At first it was looking good, but then… Here all log messages after make command:
[root@localhost dymo-cups-drivers-1.4.0.5]# make
Making all in src
make[1]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
make all-recursive
make[2]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Making all in lw
make[3]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Making all in tests
make[4]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw/tests'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw/tests'
make[4]: Entering directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
depbase=`echo raster2dymolw.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../../src -I../common -O2 -Wall -Wno-unknown-pragmas -MT raster2dymolw.o -MD -MP -MF $depbase.Tpo -c -o raster2dymolw.o raster2dymolw.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In member function 'int DymoPrinterDriver::CCupsFilter::Run(int, char**)':
../common/CupsFilter.h:135:10: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
std::auto_ptr H;
^~~~~~~~
In file included from /usr/include/c++/6.3.1/memory:81:0,
from raster2dymolw.cpp:28:
/usr/include/c++/6.3.1/bits/unique_ptr.h:49:28: note: declared here
template class auto_ptr;
^~~~~~~~
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In member function 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*)':
../common/CupsFilter.h:218:3: error: 'ppd_file_t' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~~~~~~~~
../common/CupsFilter.h:218:15: error: 'ppd' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~
../common/CupsFilter.h:218:46: error: there are no arguments to 'ppdOpenFile' that depend on a template parameter, so a declaration of 'ppdOpenFile' must be available [-fpermissive]
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^
../common/CupsFilter.h:218:46: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../common/CupsFilter.h:228:22: error: there are no arguments to 'ppdMarkDefaults' that depend on a template parameter, so a declaration of 'ppdMarkDefaults' must be available [-fpermissive]
ppdMarkDefaults(ppd);
^
../common/CupsFilter.h:234:59: error: there are no arguments to 'ppdMarkOption' that depend on a template parameter, so a declaration of 'ppdMarkOption' must be available [-fpermissive]
ppdMarkOption(ppd, Options[i].name, Options[i].value);
^
../common/CupsFilter.h:238:44: error: there are no arguments to 'cupsMarkOptions' that depend on a template parameter, so a declaration of 'cupsMarkOptions' must be available [-fpermissive]
cupsMarkOptions(ppd, OptionCount, Options);
^
../common/CupsFilter.h:243:3: error: 'ppd_choice_t' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^~~~~~~~~~~~
../common/CupsFilter.h:243:17: error: 'choice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^~~~~~
../common/CupsFilter.h:243:67: error: there are no arguments to 'ppdFindMarkedChoice' that depend on a template parameter, so a declaration of 'ppdFindMarkedChoice' must be available [-fpermissive]
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
^
../common/CupsFilter.h:248:15: error: there are no arguments to 'ppdClose' that depend on a template parameter, so a declaration of 'ppdClose' must be available [-fpermissive]
ppdClose(ppd);
^
In file included from raster2dymolw.cpp:38:0:
CupsFilterLabelWriter.h: At global scope:
CupsFilterLabelWriter.h:36:89: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriver& Driver, CDummyLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
CupsFilterLabelWriter.h:43:98: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriverTwinTurbo& Driver, CDummyLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
In file included from raster2dymolw.cpp:38:0:
CupsFilterLabelWriter.h:50:95: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriver& Driver, CLabelWriterLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
CupsFilterLabelWriter.h:58:104: error: 'ppd_file_t' has not been declared
static void ProcessPPDOptions (CLabelWriterDriverTwinTurbo& Driver, CLabelWriterLanguageMonitor& LM, ppd_file_t* ppd);
^~~~~~~~~~
raster2dymolw.cpp: In function 'int main(int, char**)':
raster2dymolw.cpp:60:3: error: 'ppd_file_t' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~~~~~~~~
raster2dymolw.cpp:60:15: error: 'ppd' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^~~
raster2dymolw.cpp:60:46: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
^
In file included from raster2dymolw.cpp:37:0:
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:68:35: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:73:35: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurboWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurboWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:84:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurbo; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriverTwinTurbo; DI = DymoPrinterDriver::CDriverInitializerLabelWriterTwinTurbo; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:89:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriterWithLM; LM = DymoPrinterDriver::CLabelWriterLanguageMonitor]'
raster2dymolw.cpp:103:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
../common/CupsFilter.h: In instantiation of 'void DymoPrinterDriver::CCupsFilter::InitDocument(const char*) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]':
../common/CupsFilter.h:99:15: required from 'int DymoPrinterDriver::CCupsFilter::Run(int, char**) [with D = DymoPrinterDriver::CLabelWriterDriver400; DI = DymoPrinterDriver::CDriverInitializerLabelWriter; LM = DymoPrinterDriver::CDummyLanguageMonitor]'
raster2dymolw.cpp:108:37: required from here
../common/CupsFilter.h:218:32: error: 'ppdOpenFile' was not declared in this scope
ppd_file_t* ppd = ppdOpenFile(getenv("PPD"));
~~~~~~~~~~~^~~~~~~~~~~~~~~
../common/CupsFilter.h:228:18: error: 'ppdMarkDefaults' was not declared in this scope
ppdMarkDefaults(ppd);
~~~~~~~~~~~~~~~^~~~~
../common/CupsFilter.h:234:20: error: 'ppdMarkOption' was not declared in this scope
ppdMarkOption(ppd, Options[i].name, Options[i].value);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:238:18: error: 'cupsMarkOptions' was not declared in this scope
cupsMarkOptions(ppd, OptionCount, Options);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:243:45: error: 'ppdFindMarkedChoice' was not declared in this scope
ppd_choice_t* choice = ppdFindMarkedChoice(ppd, "DymoHalftoning");
~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../common/CupsFilter.h:248:11: error: 'ppdClose' was not declared in this scope
ppdClose(ppd);
~~~~~~~~^~~~~
Makefile:481: recipe for target 'raster2dymolw.o' failed
make[4]: *** [raster2dymolw.o] Error 1
make[4]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Makefile:503: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src/lw'
Makefile:354: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Makefile:299: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/dymo/dymo-cups-drivers-1.4.0.5/src'
Makefile:364: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Also, I have 2.2.0 CUPS version.
Any chance you figured this out? I’m attempting to ‘make’ with Cups 2.2.0 on Raspbian and getting the same “recipe for target ‘all-recursive’ failed” errors.
Ross, development on our Linux has been stopped for the time being. We’ll post here on the blog if anything changes.
Did you get this working? I have the same issue under Ubuntu 18.04
Joel, we have stopped working on the Linux SDK for the time being. We’ll post here on the blog if/when that changes.
I am able to print a single label using the command “lp -o DymoPrintQuality=Text -o PageSize=w54h144 -o landscape -n 1 -d Dymo400Turbo /tmp/test.txt”
When I try “lp -n 2 -o DymoPrintQuality=Text -o PageSize=w54h144 -o landscape -n 1 -d Dymo400Turbo /tmp/test.txt” the -n option is ignored and it prints just 1 label.
I have tested lp with the -n option printing to a non Dymo printer and -n is respected.
Is there another way to print multiple lables?
Hi John,
You can pretty easily write a simple program or script using our SDK to print multiple labels.
Hope this helps,
Ron
Hi Ron,
If there is a SDK for Linux for writing scripts, could you tell me where to find it?
http://www.dymo.com/en-US/dymo-label-sdk-and-cups-drivers-for-linux-dymo-label-sdk-cups-linux-p--1
contains the needed Cups drivers as well as various pieces of C sample code. I didn’t find anything for scripting.Of course it is easy to wrap the lp call in a loop, but that’t not as efficient.
Perhaps I should word my question more clearly: Is there a way to make the Dymo printer respect the -n parameter?
You may have noticed there is an error in my second example – the correct example is “lp -n 2 -o DymoPrintQuality=Text -o PageSize=w54h144 -o landscape -d Dymo400Turbo /tmp/test.txt”. This prints one label, not two.
Hi John,
The Linux SDK only provides CUPS driver source code for the DYMO printers, some sample sources and some documents. There isn’t any script support.
I guess you have to go with the lp or lpr command. Have you tried the -n parameter without any space between -n and the number of copies (e.g. -n2)?
Thanks,
Philipp
Hi Philipp,
Thanks for the help. I tried the -n parameter without the space, it still only prints 1 copy.
Regards,
John
Hi John,
You need to change *cupsManualCopies: False to True in the corresponding /etc/cups/ppd/DYMO_Printer_Name.ppd file. Make sure to restart cups or Linux before trying the multi-copy command.
Hope that helps,
Philipp
Hi Philipp,
Perfect, *cupsManualCopies: True solved the problem. It there some reason it was False?
Anything I need to look out for?
Thank you very much for the help.
Regards,
John
Hi,
I am using DYMO Label Writer 450 on Ubuntu 16.04LTS.
I am able to print my labels using command ‘lp’. I need to send tape cut command after each label print.
Please, let me know hot to send this command using CUPS driver.
Thanks
Hi Sultan,
The Label Writer 450 does not have a cutter, so there is no way to do what you are asking.
Ron
I have a LabelWriter Wireless. Which linux SDK ppd driver would be compatible with this model?
The LabelWriter Wireless is a completely new printer. Therefore there isn’t any compatible driver in the current Linux SDK.
A new Linux SDK will also support the LabelWriter Wireless, but there isn’t any schedule for a new Linux SDK yet!
Any updates re Linux drivers for the LabelWriter Wireless or some workaround to make it work? The LabelWriter Wireless has been out for a while now. I bought it as it seemed the best idea for our office, however, the linux users are unable to use it.
Hello,
Linux support for the LabelWriter Wireless is not in our near term plans.
Sorry,
Ron