• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 804
  • Last Modified:

Printing to Dymo Labelwriter 330 Turbo


A customer wants to print addresses directly from within my Delphi-program to a Dymo Labelwriter 330 Turbo.
I don't have this printer myself, so it is hard to see what kind of functionality is required here.
I'm using an MS Access database, Delphi 7 pro.

Does anybody have experience with this? Any help is most welcome.

Stef Merlijn
Stef Merlijn
  • 3
3 Solutions
Hi Stef,
I dont know the specific dymo you have but i have a p-touch label printer and with the right driver installed it functions as a normal printer, have you tried to print using regular printing method? (even Richedit print method)
Well if you need to print from a richtext and set its margins and amout of copies... try this function

function PrintRichText(RTLeftMargin, RTRightMargin, RTTopMargin, RTBottomMargin: single;
RichTextMeasurement: TRichTextMeasurements; Copies: Integer): Boolean;
  PixelsX, PixelsY, LeftSpace, TopSpace : Integer;
  LeftMargin, RightMargin, TopMargin, BottomMargin: single;
  R : trect;
  Result := False; // default return value
  rtleftmargin := strtofloat(sleft);
  rttopmargin := strtofloat(stop);
  rtrightmargin := strtofloat(sleft);
  rtbottommargin := strtofloat(stop);
  if RichTextMeasurement <> rtmNone then
      // get pixels per inch
      PixelsX := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
      PixelsY := GetDeviceCaps(Printer.Handle, LOGPIXELSY);

      // get non-printable margins
      LeftSpace := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
      TopSpace := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);

      LeftMargin := RTLeftMargin;
      RightMargin := RTRightMargin;
      TopMargin := RTTopMargin;
      BottomMargin := RTBottomMargin;

      // If the measurement is set in Centimetres, recalculate
      if RichTextMeasurement = rtmCentimetres then
          LeftMargin := LeftMargin / 2.54;
          RightMargin := RightMargin / 2.54;
          TopMargin := TopMargin / 2.54;
          BottomMargin := BottomMargin / 2.54;

        // Set the Margins
        R.Left := Round(PixelsX * LeftMargin) - LeftSpace;
        R.Right := Printer.PageWidth - Round(PixelsX * RightMargin) - LeftSpace;
        R.Top := Round(PixelsY * TopMargin) - TopSpace;
        R.Bottom := Printer.PageHeight - Round(PixelsY * BottomMargin) - TopSpace;
        form1.RichEdit4.PageRect:= R;

  // Print the required number of copies
  while Copies > 0 do
      form1.RichEdit4.Print('MyApp: Copy '+IntToStr(Copies));
  Result := True;

With the code above and this information:

Im sure you can make a mok up of the dimensions and give it a try to the customer. Put in a series of test that the customer can bring back to you so that you can fine tune the settings on your side :P

Peace Scay7
I just saw from that site that it mentioned that they give examples for DELPHI:

"Provides OLE, DLL, and DDE interfaces to application developers. Supports popular development platforms such as Visual Basic, C/C++, Access, FoxPro, Power Builder and Delphi. Includes sample applications in C, Visual Basic, Access, Delphi, FoxPro, Power Builder and Delphi
Includes add-ins that enable one-click address labels direct from the main toolbars of Microsoft ® Word, Outlook, the Palm Desktop, GoldMine ® and ACT!™. Also directly supported by Corex ® CardScan ® and TeleMagic ®"

mabey ask for those examples... then you can make a proper app to go with this printer...

Peace Scay7
K sorry about my posts... think i found the dev KIT that comes with that printer...


Software TAB
click dev aid
click soft dev kit

scroll to the bottom should be an exe there for download...

hope that helps

Peace Scay7
Stef MerlijnDeveloperAuthor Commented:
I will download the SDK and software from the website and see where that brings me.
Thanks for now.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now