如何通过解码获取PDF417登机牌QR码详细信息?

7
我正在使用https://github.com/PDF417/pdf417-ios这个GitHub库来扫描QR码,我得到了以下的响应。例如,我扫描了两张票,下面是两个不同的响应:

  1. M1SOLLE/JOSUHUA EQHSLJX ATLMEMDL 0254 003Y28C 10C3JIJI7O4M28C,
  2. M1DEY/CHIRANJIB MR EPAELYA CCUBOM9W 0628 225Y018B0029 100.

我该如何获取以下信息:

1. 航班号, 2. 座位号, 3. 出发日期 4. 出发地和目的地。

在iOS中是否有可用于直接解析的库?

谢谢您的帮助。


你可能想要查看这个:https://github.com/invliD/BoardingPassKit。我没有使用过,所以无法为其背书,但它看起来很有前途。 - Mike Taverne
不,我已经下载了,但是没有足够的信息来实现这个GitHub。 - Pramod Reddy
2个回答

5

有关格式的解释,请参见IATA条形码标准第28页。我不知道是否存在解析此内容的现有库,但可以在GitHub上搜索。鉴于该格式,自行解析应该不难。


谢谢你,我用你的解决方案解决了那个问题。 - Pramod Reddy
链接已过期。 - Diogo123

4

我可以帮助解密这个字符串。

M1SOLLE/JOSUHUA EQHSLJX ATLMEMDL 0254 003Y28C 10C3JIJI7O4M28C

这个8字符的字符串 "ATLMEMDL" 中包含了起点、终点和航空公司信息。在这个例子中,这是 Delta Airlines 的从 Atlanta 到 Memphis 的航班。前三个字母是起点机场代码,接下来的三个是终点机场代码,最后两个是航空公司代码。

航空公司代码 可以在这里找到。 机场代码 可以在这里找到。

下一个四位数是航班号,"0254",即第254班航班。

下一块以一个3位数字序列开始,表示日期(1月3日),票务等级(“Y”)和座位(“28C”)。

同样地,第二个例子的解码如下:

M1DEY/CHIRANJIB MR EPAELYA CCUBOM9W 0628 225Y018B0029 100

  • 起点:(CCU)Netaji Subhash Chandra Bose 国际机场
  • 终点:(BOM)Chatrapati Shivaji 国际机场
  • 航空公司:(9W)Jet Airways(印度)
  • 日期:(225)8月13日
  • 航班号:628
  • 座位:18B

我不知道有没有一个开源库可以解析这个字符串。


谢谢您的帮助,但是如果我扫描了八张票,得到了不同的格式,那么在解码之前如何知道响应呢?如果每张票都有一个格式,我可以做到,但是我扫描了八张票,得到了不同的格式,我该如何编写代码来处理所有这些情况?我需要获取航班号、座位号和旅行日期。选择起点和终点没有问题,因为我们每次都会得到8个字符。 - Pramod Reddy
您可能需要基于@mikeTaverne提到的文档设置一个基于令牌的解析器,本答案只是为了帮助您解密字符串。 - picciano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接