0

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

我正在使用此代码从 url 加载 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。样品见下图

关于如何使其正确打印的任何想法?此外,我发现此使用 AirPrint 打印 UIImage 会导致截断内容,该内容提供了缩放图像的链接,但它不起作用。有任何想法吗?谢谢你。

在此处输入图像描述

4

1 回答 1

0

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

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];
}
于 2013-02-09T14:23:25.030 回答