I want to know if thermal printers work with quickreports designed with delphi 7 before I buy one. I have designed a program that generates a receipt like quickreport but I am not sure whether it will work with an e-pos T220 thermal printer before I buy one. Has anyone used thermal printers with quick reports?
Yes, QuickReports supports thermal printers. Our own software supports exactly this and has been from Delphi versions 4 through XE7 (although I personally have not worked with QR).
This includes both barcode/label printers and receipt printers. The general rule of thumb is, if you can print to a printer from Microsoft Word, then you can print to that printer using QuickReports.
If I recall, if you want to use quality font rendering, you have to choose from a limited set of system fonts, as supported by the printer. You can still use other fonts, but the quality of other fonts isn't guaranteed.
You can also print images, although they are in black/white.
Related
I am generating prints for an older printer, a Laserjet 4si MX that has a Postscript engine. This engine is version 2011.110
The engine reports that it has about 35 built-in fonts. The fonts listed are things like:
ITC Avant Garde Gothic Book
ITC Bookman Demi
Courier
Helvetica
New Century Schoolbook Bold
Palatino
Symbol
Times Roman
ITC Zapf Chancery Medium Italic
etc and so on
I think the engine also supports downloaded fonts.
To maximize print quality would I be advised to program to print in these particular built-in fonts, or can I use operating system fonts just as well? My concern is that using an operating-system provided font will be lower print quality than the built-in fonts.
I worked at Adobe Systems, in the PostScript printer division, when (I believe) this printer's PostScript interpreter was developed. The font names you give match the names of fonts from the PostScript Level 2 core font set. If you send a page description which asks for the built-in fonts, it will generate high-quality results. If you send a page description which downloads fonts (or font subsets) properly, it will also generate high-quality results. It was routine for this class of printer to print with downloaded fonts.
But, the quality of the result depends also on the quality of PostScript language page description you are sending, and the way that page description downloads fonts. That in turns depends on which operating system, which application, which printer driver, and which fonts, you are using. You don't tell us this. This is an old printer. It may be that a new OS or application won't have support for delivering fonts the way this printer expects.
Also, the meaning of "quality" depends on the requirements of the person evaluating it. By "print quality" do you mean smoothness of outlines, or ability to match a desired font design? Do speed of printing, or compactness of page description data, play a role?
As Mike 'Pomax' Kamermans says, "we can't tell you, so test it, and report your results". What do you want us to tell you that your simple test will not?
What i want is
Design a label layout(barcode on it).
Scan the information by handheld and print the label directly from mobile printer linked with bluetooth.
want to know:
best way to implement this? see my preferences list below
1) free of charge
2) the API should have 2D barcode support
3) label layout can be designed by Drag-and-drop. The best is a visual studio control. so we do not need too much coding.
Hope someone has experience can share some to me, what cotrol? what liberary? Must use zebra specific printing language?
Kindly show a technique chain of the best(easy, free). Thank you all.
You should try and go with the Zebra SDK (for windows ce too). I assume there is no drag and drop GUI designer tool. But you may examine the code generated by a label designer application printing to a zebra printer using file: as output port.
Zebra provides good SDKs, samples and support. For example to print a QR code:
^XA^FO100,100^BQN,2,10^FDYourTextHere^FS^XZ
You see, it is more or less readable where to replace text to get another QR barcode.
see also https://km.zebra.com/kb/index?page=content&channel=SAMPLE_CODE
You may need to study the ZPL programmers guide and then you can start to print your own mind-designed labels. Printing meeans to send ZPL code lines directly to the printer.
What is a common printer interface today? I've read most of them support PostScript and/or PCL. How should I use PS/PCL from an app code (say, under Win32)?
PostScript and PCL are both open-spec as far as I am aware. The definitive source for PostScript would be the PLRM (PostScript Language Reference Manual). PCL's equivalent can be found at this page.
Most modern multi-function printers for office environments will accept a number of different PDLs. PostScript and PCLXL are the most common, but some others are:
PDF, some printers support rendering PDFs directly.
XPS, Microsoft's XML Paper Specification.
TIFF, a bitmap-only page representation.
Many manufacturers also implement a proprietary PDL. Since PostScript, PDF and XPS can be slow to parse and render, a manufacturer often implements a proprietary PDL that is optimised for the printer's hardware and firmware. A lot of manufacturer-rated page-per-minute counts are only possible if you use their custom PDL driver. This technique is also used by low-end budget printers where the hardware is incapable of interpreting high-level PDLs.
In terms of generating this output, usually you do not need to do so, instead you should go through Windows GDI, or depending on your target OS, GDI+. Your drawing and text-output routines will be handled by a printer driver which in turn will generate output for a specific printer. There are also generic drivers out there (Microsoft includes a generic PostScript printer driver) that can be used to generate output that is not specific to any particular printer.
In Windows, you generally use the GDI and let the printer driver translate it to the actual printer language. This gives you complete device independence.
I need to develop a small delphi app that prints stickers (text + graphics) to label printer such as DYMO one by one.
What is best way to do this, is there e.g. some custom API for DYMO printers or how to print color graphics to small stickers?
The label printer may have a normal Windows printer driver.
If that is the case you can print simply with something like this:
Printer.BeginDoc;
Printer.Canvas.TextOut(10, 10, 'Hello label');
Printer.EndDoc;
Have a look on this dymo.com page for a Dymo SDK you can download.
We've been printing to Zebra label printers for years through standard printing functionality. We actually create a report (QuickReport) and send it to the printer using the basic Print command.
The ability to print color is going to depend on the facilities of your printer. For example, the Zebra printers that we use are thermal transfer ribbon printers which means that there is only one color possible.
I've used plain old Printer.Canvas from the Printers unit to write to DYMO label printers, with labels printing OK.
As Scott W suggested using the Windows printer drivers, is the easiest way to output labels to a printer, and your software can be used with other label printers.
You just need to create a page with the correct label size, using QuickReports, Rave or any other reporting components.
You can download drivers from DYMO direct. For other label printers I would highly recommend using drivers from Seagull Scientific. There drivers are better than those supplied by the printer manufacturer.
We are making a lab instrument using an ARM9/RTOS system. The client has asked about printing simple reports from the ARM9 system. In this case, we have USB Host support in the RTOS. I'm thinking about printing bitmaps in generic PCL, hoping that will cover the widest range of printers. Is there a better way to approach this? I'm assuming the RTOS does not have printer drivers, and I don't want to support a lot of printers.
We also support USB device mode on our system, so you could plug in a photo printer, and our device would appear to be a USB stick. So that would work, but it's a bit clunky. This will be a C/C++ embedded system
Pretending to be a digital camera and interfacing with a PictBridge printer actually sounds pretty clever. It would remove the need to deal with different printer drivers, and if my understanding of the technology is correct, you could even control the operation of the printer right from your device.
On the other hand, as someone who has used a fair number of computerized lab instruments (oscilloscopes etc.) I find the ability to save screenshots from an ethernet/web interface to be much more useful. Print is dead.
Have you looked at what all the scope vendors are doing? They all have print options (I think) and I don't know what they are doing to solve this problem.
Last time I was involved with something like this, we used serial ports to talk to HP printers using PCL. That backfired as everyone quickly stopped making serial printers!
PostScript is natively supported by most printers, so you could just send it over the wire, but it would be a lot more cumbersome than straight ASCII. There are libraries, but they're bulky.
Since your device can appear to be a USB stick, a simple solution would be to generate a report as a JPEG image and then have the printer open and print it. This way, the people who want paperless output can use the image as-is, and everyone else can print it.
If I understand you correctly, you could write a formatted text file and do a "print" command through Windows in the "usb stick" mode.
For a simple report, it would be best to stick to straight ASCII. If you need some graphics, PCL would be a good choice for B/W laser printers, but I'm not sure how universal it would be for the more common ink-jet printers.
Edit: the PCL Reference Manual is available as a PDF from HP.