使用ePOS SDK打印UIImage

时间:2012-07-20 11:02:31

标签: objective-c printing epson

我正在使用爱普生的ePOS SDK,它允许通过wifi连接到打印机(TM-T88V)。 sdk(http://pos.epson.com/mobilesdks/index.htm

的链接

我正在使用此代码从网址加载UIImage。

NSData* data = [[NSData alloc] initWithContentsOfUrl:_url];
UIImage* image = [UIImage imageWithData:data];

然后打印图像(使用ePOS)注意:我将跳过连接部分,因为它不包含在我的问题中。

EposBuilder* builder = [EposBuilder alloc]  initWithPrinterModel:@"TM-T88V" lang:EPOS_OC_MODEL_ANK];

EposPrint* printer = [[EposPrint alloc] init];

int retVal = EPOS_OC_SUCCESS;
unsigned long status = 0;

retVal = [builder addImage:image X:0 Y:0 Width:image.size.width Height:image.size.Height Color: EPOS_OC_COLOR_1];

retVal = [printer sendData:builder Timeout:10000 Status:&status];

现在我的问题是打印结果有点小,看图像的大小是271x368px。请参阅下面的图片了解样本

有关如何正确打印的任何想法?此外,我发现这个Printing UIImage using AirPrint causes cut-off content给出了缩放图像的链接,但它不起作用。有任何想法吗?谢谢。

enter image description here

1 个答案:

答案 0 :(得分:0)

我得到了解决方案,不要我已经解决了它,我做的事情是,通过NSFileManager将图像保存在Documents文件夹中并从文档文件夹中获取相同内容并添加空格添加前的图片,对不起我的英文..你需要实现自己的代码来保存&通过文件管理器检索图像。

NSData *dataFromUrl=[[NSData alloc] initWithContentsOfURL:url];
    UIImage *image1 = [UIImage imageWithData:dataFromUrl];
    if(image1)
    {
        [Filemanager saveReceiptLogoImage:image1];
    }

// IN打印机类,

    UIImage *image1 = [Filemanager receiptLogo];
                if(image1)
                {
  result = [builder addText:@"    "];
   UIImage *resizedImage = [image1 resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:CGSizeMake(512, 350) interpolationQuality:kCGInterpolationHigh];
                    result = [builder addImage:resizedImage X:0 Y:0 Width:MIN(512, resizedImage.size.width) Height:resizedImage.size.height Color:EPOS_OC_COLOR_1];
}