Brother bPAC SDK - Examples only print after Form is shown

Posted by Scoregraphic on Stack Overflow See other posts from Stack Overflow or by Scoregraphic
Published on 2010-03-26T07:29:48Z Indexed on 2010/03/26 7:33 UTC
Read the original article Hit count: 1541

Filed under:
|
|
|

Hi there

We have a small Brother Barcode printer which we like to control from a WCF Service. Brother has an API called bPAC SDK version 3 which allows to print those labels. But the problem arises, as soon as we want to print from code only without showing a windows with a button on it. As an addition, this happens only if you want to print a QR-code as barcode. Standard EAN-codes seems to work.

Below is a small piece of code which outputs the stuff to a bitmap instead of the printer (debugging reasons).

DocumentClass doc = new DocumentClass();
if (doc.Open(templatePath))
{
    doc.GetObject("barcode1").Text = txtCompany.Text;
    doc.GetObject("barcode2").Text = txtName.Text;
    doc.Export(ExportType.bexBmp, testImagePath, 300);
    doc.Close();
}

If this is called by a button click, it perfectly works. If this is called in Form.Show-event, it perfectly works. If this is called in Form.Load-event, it does NOT work. If this is called in a Form constructor, it does NOT work. If this is called somewhere else (without forms), it does NOT work.

DocumentClass and related classes are COM-objects, so I guess the form setup/show process seems to do something which is not done without opening forms. I tried calling CoInitialize with a p/invoke, but it hadn't changed anything.

Is there anyone out there willing and able to help me? Are there any alternatives which (also) MUST be able to print directly on our Brother printer?

Thanks lot.

© Stack Overflow or respective owner

Related posts about brother

Related posts about bpac