【问题标题】:UPS API - printing the returned shipping label GIF dataUPS API - 打印退回的运输标签 GIF 数据
【发布时间】:2018-06-22 10:59:28
【问题描述】:

因此,我正在通过 UPS API“创建运输标签”流程进行工作...我正处于最后阶段,在验证所有内容后,UPS 以 GIF 格式将实际运输标签从他们的示例文档,这是通过 XML 返回的内容(我已经删除了所有其他前面的 XML 位)..

<GraphicImage>FSDJHSDJHJ3487EHNE9U8DY9VHRFV89SDFHFSDJHFSDIDFH
SJKDFSJKDFSJIU9GFIUGJIFDUJG9UKGLDJFDKJDGKJDFKGDJLDFKSJGKDFJDKGFDG9E0ER
IJGE39IWURE9U9ER0UW9R0UR9WEGU9URE9WGUW90U90GRUG90GERUG9REUGWERGJIO
JGIODFGUIOFDUGIOFUIGRUE090U9TERUT90RUT9EU90ERUT9ERU9EUER9TUT9R0UTE90R
U9TERU90RTEU9SDKHGJHGDFU</GraphicImage>
<HTMLImage>SKJJKLHGIGKHGKJHGFJGFJHDFJGHDDJFHFDJHFJHFJKDHJK
FDHJFJDFHDFJHJDFHGJDHGDFSHJKFSDHSDFJHFJSDHJKDFHFJKSHDSKJHGFDJSJDFSKSK
JJKLHGIGKHGKJHGFJGFJHDFJGHDDJFHFDJHFJHFJKDHJKFDHJFJDFHDFJHJDFHGJDHGDF
SHJKFSDHSDFJHFJSDHJKDFHFJKSHDSKJHGFDJSJDFSKHGJKDS</HTMLImage>

..我打算如何处理 GIF 数据或 HTMLIMage 数据?例如,我将 GIF 数据通过管道传输到 gif 文件中 - 但 GIF 文件无法打开 - 我还需要做些什么吗?

【问题讨论】:

    标签: xml gif shipping ups


    【解决方案1】:

    大多数运输 API 的返回标签为 Base 64 编码字符串(JSON 或 XML)。 您需要将内容从 base 64 转换为 bit 数组,然后保存。

    进行 Base64 转换的方式因开发平台而异,但有很多示例。这是我刚刚找到的一个。

    http://processrhetoric.blogspot.com/2013/01/getting-ups-shipping-label-via-their-api.html

    如果你使用谷歌Chrome浏览器,你可以通过构建一个以

    开头的字符串来预览图片
    data:image/gif;base64,
    

    然后添加图片内容(尽管您的示例内容似乎不起作用)。

    data:image/gif;base64,FSDJHSDJHJ3487EHNE9U8DY9VHRFV89SDFHFSDJHFSDIDFH
    SJKDFSJKDFSJIU9GFIUGJIFDUJG9UKGLDJFDKJDGKJDFKGDJLDFKSJGKDFJDKGFDG9E0ER
    IJGE39IWURE9U9ER0UW9R0UR9WEGU9URE9WGUW90U90GRUG90GERUG9REUGWERGJIO
    JGIODFGUIOFDUGIOFUIGRUE090U9TERUT90RUT9EU90ERUT9ERU9EUER9TUT9R0UTE90R
    U9TERU90RTEU9SDKHGJHGDFU
    

    并将结果放到浏览器地址栏,就会出现图片。

    在 JavaScript / VBScript 中,使用 ADODB 将您从 base64 创建的字节以 GIF 格式保存到磁盘。

    var stream = new ActiveXObject("ADODB.Stream");
    try {
        if (objFSO.FileExists(strFileName)) {
            objFSO.DeleteFile(strFileName);
        }
        stream.Type = 2; // text
        stream.Charset = "ISO-8859-1";
        stream.Open();
        stream.WriteText(bytes);
        stream.SaveToFile( strFileName, 2);
    } catch (err){
        return;
    } finally {
        if (stream.State != 0) {
            stream.Close();
        }
    }
    

    【讨论】:

    • 谢谢 ....我找到了一个 base64 解码器,现在可以查看 GIF 文件 ...我在 VBA 中做所有这些所以想知道是否有一种方法可以简单地打开通过访问在浏览器中解码 GIF 数据...
    • 查看 ADO 更新(我只有一个 javascript 示例)。
    • 谢谢威廉...最后我设法对此进行了排序...组合...1,Base64解码,2.图像旋转(出于某种原因,UPS向您发送他们的运输标签它是侧面的)和 3. 裁剪(出于某种原因,UPS 在其下载标签的底部添加了 200 像素的空白区域……这弄乱了比率。我做了一些谷歌搜索并设法在 VBA 中解决/解决所有这些问题。感谢您在我需要的时候提供的意见:-)
    • 很高兴它成功了。顺便说一句,我为投票的答案工作:)
    【解决方案2】:
    For this we need two gems:
    gem "wicked_pdf"
    gem 'wkhtmltopdf-binary'
    
    
    ups_gif_image =  base64 GIF image # This is the 
    base64 graphicimage in the form of GIF that is returned from UPS 
    shipment request API  
    
    ups_base64_gif_image ="data:image/gif;base64,"+ups_gif_image
    pdf_data = WickedPdf.new.pdf_from_string("<img src='"+ups_base64_gif_image+"'/>",{:orientation => 'Landscape'})
    File.open('label.pdf','wb') do |pdf|
      pdf.write pdf_data
      pdf.close
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多