Delphi调用BarTender8.01打印条码标签
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi调用BarTender8.01打印条码标签相关的知识,希望对你有一定的参考价值。
Delphi调用BarTender8.01打印条码标签,代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleServer, BarTender_TLB;
type
TForm1 = class(TForm)
btApp1: TBtApplication;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
Private declarations
public
Public declarations
end;
var
Form1: TForm1;
implementation
$R *.dfm
procedure TForm1.Button1Click(Sender: TObject);
begin
with btApp1.Formats.Open('E:\My Documents\test.btw',True,'') do //打开标签文件
begin
SetNamedSubStringValue('code','1234567890'); //设置值
SetNamedSubStringValue('text','Hello BarTender!');
PrintOut(False, False); //打印
Close(btDoNotSaveChanges); //关闭不保存
end;
btApp1.Quit(btDoNotSaveChanges); //退出
end;
end.
运行出现错误:类型未授权使用。
是不是bartender要注册版才行呃?
那我用7.75版本的破解版是不是可以进行2次开发?有没有Delphi的完整例子?
Java实现调用Bartender控制条码打印机
官方提供的主要是C#支持。
基于java调用bartender二次开发官方给了一份1998年的J#代码,,,完全用不了,,,百度谷歌搜索万能的网友的答案,发现也没有可参考的。。
最后想到了之前用到了一次利用JNA调用C++dll文件。那是不是可以通过JNA调用C++,C++调用C#。。三种语言一起调试,过程中各种自闭。
1.首先创建C#类库项目:
封装了bartender需要用到的Api。(此处大坑就是类对象由于第一次没有写成单例,C++中进行托管的时候每次重新创建对象,导致调试的时候每次类里的对象都重置。。)
最后就是生成Dll文件供C++使用。
2.创建C++Win32项目
通过C++封装对外访问的接口,此处设置了项目公共语言运行时的支持。最后生成dll给javaJNA映射。
3.创建java接口类
创建java接口以及继承JNA里的Library,,,然后就把C++里的方法映射到此接口大功告成。。
4.各种坑
C++对应C#中的类型转换,,
java对应C++中的类型转换,,,
中文传递,,除了代码中设置jna的编码,,,bartender中使用的模板也要设置编码,,它的默认如下(调试这里的时候一直以为是代码中的原因醉了)。。
需要更改为:
最后就可以愉快的打印了。。。。
5.暂时封装的API接口如下
- 初始化打印机引擎
- 打开模板文件
- 获取此模板具名数据源个数
- 获取某个具名数据源的名称
- 获取某个具名数据源的值
- 修改某个具名数据源的值
- 是否支持打印拷贝
- 设置打印拷贝数量
- 是否支持序列化拷贝
- 设置序列化拷贝数量
- 设置指定位置打印(比如一行三列,1代表最左边,以此类推)
以上基本上能够满足开发需求
使用方法欢迎进群下载交流(927465926)
以上是关于Delphi调用BarTender8.01打印条码标签的主要内容,如果未能解决你的问题,请参考以下文章