2

我正在Visual Studio 2012 RC 中开发 POS 系统的 C# 应用程序。我必须使用标签打印机打印销售额

Brothers P-Touch QL-500 标签打印机。

我已经做了什么。

  • 我已经安装了最新的 b-pac SDK 3.0
  • 成功添加对我的 C# 应用程序的引用。
  • 为了创建标签模板,我安装了最新版本的 p-touch Editor 5.0。
  • 制作了一个模板(Mylabel.lbl)。

    但在那之前。

我运行了一些内置的示例,但这些示例引发了异常。在 Google 上进行了大量搜索后,我发现这是打印机的驱动程序问题

我无法安装驱动程序,因为驱动程序的安装需要连接打印机。 我没有打印机。

我需要做什么

  • 你知道我该怎么做这个任务吗?
  • 使用Brothers P-Touch QL-500 标签打印机打印标签的正确方法是什么。

    请帮助我我已经做了很多时间搜索。stackoverflow 是我最后的希望。我是这种标签打印的新手。请帮助我将不胜感激。

我正在使用的 ruff 示例代码。

bpac.DocumentClass doc = new DocumentClass();
if (doc.Open("templateFile.lbx"))
{
    doc.GetObject("field1").Text = "...";
    doc.GetObject("field2").Text = "...";

    doc.StartPrint("", PrintOptionConstants.bpoDefault);
    doc.PrintOut(1, PrintOptionConstants.bpoDefault);
    doc.EndPrint();
    doc.Close();
}

这是我正在尝试的示例代码。第一行抛出异常

bpac.DocumentClass doc = new DocumentClass();

我还附上了一个异常屏幕预览。

抛出异常屏幕预览

4

6 回答 6

8

发生异常时,我收到了完全相同的错误消息。我的解决方案是将“平台目标”设置为“X86”CPU。这可以通过:(菜单)项目->属性->(选项卡)构建->平台目标“x86”而不是“任何CPU”来完成

我在 Windows 7 64 位上开发了该软件。

您可以在 b-PAC SDK 文档中找到有关此的更多信息。C:\Program Files (x86)\Brother bPAC3 SDK\Doc\bPAC30_eng.chm 在“故障排除”部分您会发现:“程序无法在64位操作系统上运行。将平台更改为“x86”,然后重新编译它。”

此解决方案已使用连接到我的 PC 的 QL560 硬件进行测试,并且可以正常工作。

于 2013-11-30T15:20:36.683 回答
3

这是我用来使用此对象打印的一些代码。

            string strPrinterAddress = "domain\machinename";
            objDoc = new BrssCom.Document();
            string strPath = "192.168.1.45" + " /D" + strPrinterAddress;
            if (objDoc.Open(strPath))
            {
                objDoc.SetText(0, "Recycle: " + recycleReason);

                objDoc.SetText(1, "Other Text");
                objDoc.SetBarcodeData(0, "1234");
                objDoc.DoPrint(BrssCom.PrintOptionConstants.bpoAutoCut, "0");
            }

但是,@JamieMeyer 是对的。你不能,绝对不能确定这在没有打印机测试的情况下会起作用。在我的示例中,我使用了一个非常简单的标签,其中包含 3 个字段,其中一个是条形码。这不是使用命名变量的简单问题,它实际上取决于添加字段的顺序等。

我自己没有打印机,我花了大约 2 周的时间在晚上发送代码更新,然后第二天客户进行一轮又一轮的测试,以使外观和感觉恰到好处。如果让我重新做一遍,我会自己购买一台打印机。

祝你好运,但你是在没有打印机的情况下在黑暗中拍摄。

于 2012-06-23T02:43:54.573 回答
1

你打算如何在没有物理单元的情况下验证你的编码结果?Brother 不提供任何类型的视觉模拟器,因此您最好的选择是购买该设备。这些可以以 75 美元的街头价格买到,并且很可能在您当地的办公用品商店的货架上。http://www.officedepot.com/a/products/506232/Brother-P-Touch-QL-500-PC/

于 2012-06-23T01:45:40.430 回答
0

这是我的工作代码。我认为 c# 示例不正确,您必须将 DocumentClass 更改为 Document。

Actives 代码用于 interop.bpac.dll 注释代码用于 bpac.dll

块引用

公共无效 ETQ_Print(字符串 Lote,字符串 NumSerie){

        try
        {
            // bpac.Document PrnLabel = new bpac.Document ();
            ///  bpac.Document PrnLabel = new bpac.Document();

            bpac.Document doc = new Document();

            // Actualizo los Campos de la Etiqueta.

            // if (PrnLabel.Open(this.txtETQ_Plantilla.Text))
            if (doc.Open (this.txtETQ_Plantilla.Text) != false)
            { // hemos cargado la plantilla corectamente.

                // Editamos los campos necesarios..
                // PrnLabel.GetObject("BarCode").Text = Lote + NumSerie;
                doc.GetObject("BarCode").Text = Lote + NumSerie;
                // PrnLabel.GetObject ("objName").Text = ETQ_txtNumSerie.Text;
                // PrnLabel.StartPrint("", PrintOptionConstants.bpoDefault);
                doc.StartPrint("", PrintOptionConstants.bpoDefault);
                // PrnLabel.PrintOut(1, PrintOptionConstants.bpoDefault);
                doc.PrintOut(1, PrintOptionConstants.bpoDefault);
                // PrnLabel.EndPrint();
                doc.EndPrint();
                // PrnLabel.Close();
                doc.Close();
            }
            else
            {
                MessageBox.Show(this, "Open() Error: " + doc.ErrorCode); //  PrnLabel.ErrorCode);
            }
        }
        catch
        {
            MessageBox.Show(this, "Error de Etiqueta", "Error Etiqueta", MessageBoxButtons.OK, MessageBoxIcon.Error);

        }
    }

块引用

于 2017-05-25T08:40:25.843 回答
0

我有同样的问题。原来我无意中下载了 32 位版本的 SDK。来自http://www.brother.com/product/dev/label/bpac/download/index.htm#full的版本信息

在此处输入图像描述

一旦我删除了 32 位 SDK 并添加了 64 位 SDK,该示例就可以立即使用。这适用于 b-PAK 3.2.001。对我来说,下一步是将示例代码中使用的模板加载到 P-touch 编辑器中,并设置正确的颜色和打印​​尺寸。

于 2017-09-28T00:56:45.677 回答
0

来源:兄弟 youtube 教学视频:https ://www.youtube.com/watch?v=WRssVf8zxQQ和上面的其他优秀答案。他们不太适合我。

在 Visual Studio Community 2017 中,我添加了对 interop.bpac 的引用,然后运行:

        try
        {
            bpac.Document mylabel = new bpac.Document();
            if (mylabel.Open("SensorNodeLabel.lbx"))
            {
                mylabel.GetObject("labelText").Text = "blah blah";


                mylabel.StartPrint("", bpac.PrintOptionConstants.bpoDefault);
                mylabel.PrintOut(1, bpac.PrintOptionConstants.bpoDefault);
                mylabel.EndPrint();
                mylabel.Close();
            }
        }
        catch ...

这在 QL-700 标签打印机上运行良好。

于 2019-01-27T23:32:39.107 回答