Can anyone point to libraries that can be used for Printing from Compact .Net Framework 1.0?
Criteria:
I need to be able to print Text and Bar codes.
The library should preferably be upgradable to .Net 2.0 or above with minimal disruption.
Can be either Open Source [that can be distributed as part of Commercial application] or that can be purchased.
Edit
More information:
We are an ISV and this application is sold to our customers.
This application is usually installed on Symbol, Opticon devices. But occasionally this is installed on a generic Windows Mobile PDA or Phone devices.
I want the library to work with Printers from multiple vendors. [I now have printers from O'Neil and Citizen-Systems for testing].
We want the printers to be connected using bluetooth. I guess the library should in general work with any serial port connections.
PrinterCE.NetCF from FieldSoftware appears to fit the bill. Thanks ctacke. I am looking for something similar.
Thanks,
Kishore
You've not given us much detail, like the device you're using or the printer type you want to print to (local, lan, serial, network, etc), however I'll see if I can at least point you in the right direction.
The de-facto standard for CF printing is PrinterCE from Field Software. PrintBoy from Bachmann Software also works well. I'm not certain if eitehr has the ability to print barcodes though.
Now if you're printing barcodes, that suggests that you're using a device like a Symbol (now Motorola) or Intermec handheld. If that is the case then those manufacturers have their own SDKs that allow printing.
If you are printing to something like a Zebra barcode printer, they typically have some serial PCL commands for printing barcodes as well, so you don't actually need to "print" the barcode. Instead you send the PCL command to tell the printer that the data should be output a barcode instead of text. The printer manufacturer can provide a PCL reference, as the PCL for these types of things isn't standardized.
Related
I am currently writing a program where I wish to use a barcode scanner to scan a bar code into a system, then use this information to make certain decisions.
How can I get C# to react when I use the bar code scanner? Do I need certain DLLs or APIs to use a bar code reader? I can create bar codes but need a way for C# to read them externally and import them into the program.
Richard,
It is important to know that typically barcode scanners support multiple interfaces that fall into two categories. Many have an option that makes the barcode scanner appear as a keyboard and whenever you scan data the text is entered into your application at the insertion point. The manufacturer of the scanner may refer to this as Keyboard, Keyboard Wedge, HID Keyboard or simply HID mode, however the last one in this list is technically not accurate as there are other HID interfaces besides keyboard.
The second category is often referred to as application mode. There are several different interfaces that support application mode, such as IBM Scanner, HID POS Scanner, etc. Each of these interfaces represent follow a specific hardware specification. You must make sure that the mode that your scanner is in matches the SDK that you are using to interact with the scanner.
If you are using .NET Framework, you may find POS for .NET useful as it abstracts the barcodes scanner away from the software in a way that allows you to use scanners from multiple manufacturers without changes in your application. In this case, you will need to acquire an OPOS Service Object from the scanner manufacturer to use with POS for .NET. See POS for .NET 1.14.1 Download page for more information: https://www.microsoft.com/en-us/download/details.aspx?id=55758
Terry Warwick
Microsoft
As far as it is connected to your device correctly , it will automatically pass data to your Focused itembox in your program.so if you run your program.exe which has a textbox, when you scan a barcode , it will be parsed into that textbox (it has to be focused).
Use the class SerialPort. It can listen your ports and then when you will use your scan the program will read it.
while (spPort.BytesToRead > 0)
{
carac = (char)spPort.ReadByte();
if (carac != 08)
m_mystring += carac;
}
Here is an example of how you can read it. And this is the link to the class : https://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=vs.110).aspx
It also depends on what form your application takes. If you have the option of uploading a picture or accessing the camera, you can pull an image into your code and then use one of many SDK's to read the barcode out of the image.
I have just implemented this using a web application, and I used the ZXing SDK, which is a free port to .Net and is available via NuGet.
https://github.com/micjahn/ZXing.Net
If you're just starting out, samples within SDKs are the best place to get started.
UWP apps to handle barcode are best explained in the universal samples at --> https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/BarcodeScanner
A Win32 C# .net sample can be found in the Pos For .Net 1.14 SDK mentioned earlier.
Most barcode scanners are "HID" devices, which means that they write the data of the barcode (the small numbers) like you would do manually with your keyboard, they're also recognized as a keyboard by most operating systems.
So the easiest way is just having a textbox. Make sure the focus is automatically on the textbox before the scan, and if you want it to automatically do something, make sure to have an event listening for an enter keydown. (Most HID scanners press an enter right after the scan is complete.)
Barcode scanner has are sending keys when they detects Barcode same goes with QR Scanners.
All you need is just put the focus in a textbox and use some events like text change or keypress/keydown since most of the scanners has an option for you to add/remove newline at the end of each set of keys it returns.
Using a physical barcode scanner is one option, but you're limited to scanning one barcode at a time.
An alternative option would be passing multiple documents, either as images or PDFs, to your application to process in bulk.
IronBarcode is a c# barcode scanner that also allows you to read barcodes quickly and accurately in this way.
// The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs.
// All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "Image1.PNG", "image2.JPG", "image3.PDF" };
PagedBarcodeResult[] BatchResults =
BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments);
Disclaimer: I work for Iron Software.
I am new to windows mobile development and searching for how to print document to Bluetooth printer using C#.Net. I have go through some blogs but not sure from where to start.
Below are the some information I found
Zebra provides an SDK for Windows mobile which has many examples, short sample applications, and even a demo utility. You just simply call the APIs provided and the SDK will make the proper connection to the printer via Bluetooth (or TCP) for you.
- But I am not sure whether its free to use?
Please help me to find better option for printing on bluetooth printer from windows mobile device.
Thanks in advance
-Nitin
Using the Zebra SDK is free. It is a fast an easy way to use there printer on windows mobile. But you are stuck to Zebra (if you ever change the printer vendor that might be an issue) and what there SDK provides.
You can go the free way and start your own printing lib and have full control over the code:
Before you can start printing, you need a connection to the printer. For Bluetooth you can use other free SDKs (with free source code) like inTheHand (32feet.net).
Further on you have to start learning the Zebra printer's language. That may be, for example, ZPL. You need to send commands to the printer to get something out.
Bluetooth printer can be connected to Windows Mobile (WM) by using a socket or a virtual COM port.
Starting with virtual COM port is an easier approach, just call registerDevice with the right args to get back a new virtual COM port you can use to communicate with the printer. A problem may occur, if the printer requests a PIN. I did not yet find a native way to set this PIN from code and used 32feet libs to overcome this.
You may also use TCP/IP socket programming to communicate with the printer. If the printer is already paired with the WM device, it is an easy task: https://github.com/hjgode/btprint using a lot of MS BT API.
If you are not familar with printer languages like ZPL, ESC/P and need to print text only, you may consider using the commercial PrinterCE SDK. It frees you from knowing all the bits and bytes of printing languages.
You can find some demo BT/VCOM printing code at http://code.google.com/p/win-mobile-code/source/browse/#svn%2Ftrunk%2FCommAppCFbtSearch%253Fstate%253Dclosed (CommApp... folders).
I am developing an application where I have to print information because of that I am using a AP1300 this is a bluetooth printer but nothing happens. Do I need an specific kind of printer for doing so,thanks for your answers.
Such printer needs Drivers. And as you can see on the website, WP8 is not (yet?) supported.
It is possible, but it requires a fair amount of low-level RS232/Serial code and might not work with your specific printer. See Can I print with windows phone 8 using Bluetooth to a portable printer? for a few suggestions and links.
First obstacle is whether your phone can pair with the printer. If you can't, the printer uses a BT profile not supported by your phone. If it can you might be able to write code against it, provided the pairing is using a profile you can write code against, and you can figure out the correct commands required to send to the printer (look up developer doc for the printer if available).
Lastly only apps that you write will work (or if someone else wrote an app for your printer). You won't find any support for any of the built-in apps, so no printing of emails, word documents etc.
I had some questions in this scanner using WIA or TWAIN in C#.net. We are planning to buy Kodak i920 Scanner to scan Image through our Application in C#. My questions are
1 . Is it possible to scan an image in single click by using any one of the drivers. ( I dont want select device dialog and image settings dialog)
Some scanners has inbuilt OCR functionality. can i use that OCR function programatically of that scanners. So that when i click on OCR button the scanner has to scan an do an OCR and revert me back. Is it possible to do this?
Yep. You certainly could do all of that provided you could be certain that the same scanner was going to be available for every scan so that you could always just force use of the device you wanted. You can also pass along the settings you'd like the device to make use of provided that the device says they're supported. A number of SDKs either free/opensource or proprietary exist that would allow you to do that in c# -- Atalasoft, Dynamsoft, and Twain.Net provide one to name a few.
I have Motorola MC55 with Windows Mobile 6.5 on-board. This nice palm contains also an embedded bar-code scanner. My question is - Will I need anything special in .NET CF in order to use the bar-code scanner? I would expect that the bar-code are read as normal strings and delivered as keyboard events? Is any special .NET CF library necessary?
Thanks for help
Dominik
That entirely depends on what you want to achieve.
Handheld barcode scanners based on Windows Mobile usually come with a piece of software that translates barcode module output to keystrokes -- you can put it in the autorun folder and then handle text input in your textbox.
Alternatively, there's usually an SDK that contains libraries with which you can hook the scanner directly and have all the additional information (type of the barcode, binary data etc).
We use MC9090 here, and we went the SDK way. Works like a charm. The SDK can be dowloaded here. If the link doesn't work (I had to crop it), go to the seach form and search for "SDK".
Usually, for Motorola (earlier Symbol) scanners there's a set of libraries for the Comapact Framework including samples.
We use mobile devices a lot with our customers (not only Motorola) and I strongly advise against using keyboard emulation if possible, as you will run into trouble when there are multiple input fields (or no input fields at all). Also, you will not be able to detect special characters within barcodes when you get them through keyboard emulation.
Link to SDK is provided by GSerg in his answer. I strongly recommend using the SDK as it provides access to other device functionality as well.
There's a utility for these devices called DataWedge that lets you treat the built-in scanner as a keyboard device.