0

Wi-Fi経由でプリンター(TM-T88V)に接続できるエプソンのePOS SDKを使用しています。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

私は解決策を得ました。あなたはすでに解決していません。私がしたことは、画像をドキュメントフォルダーに保存し、ドキュメントフォルダーNSFileManagerから同じものを取得し、追加する前に画像にスペースを追加することでした。申し訳ありません英語.. ファイル マネージャーを介して画像を保存および取得するには、独自のコードを実装する必要があります。

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

//プリンタークラスで、

    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 に答える