【发布时间】:2019-03-16 23:51:24
【问题描述】:
我在 C++ 上使用 poppler,并且我有一些包含条形码的 PDF。 我必须使用的大多数 pdf 打印机分别打印 PDF 及其数字,因此我不必处理条形码读取。但是那些用单个字符表示条形码及其编号的那些给我带来了我不知道如何翻译的奇怪字符。
例如,有一个带有以下条形码的文档。 3065894901901000368529198928291201901066
但是如果我复制粘贴它,我会得到这个(我得到与 poppler 的 pdftotext 相同的结果) (NÏça1è:0TãMCçLM
有没有办法将这些奇怪的字符转换回它们应有的数字?
【问题讨论】:
-
条码可能采用不同的字体,您在正常字体中通过剪切和粘贴看到的字符映射到您在页面上以特殊条码字体看到的图形条。也许在pdf文件中它会命名字体。从字体名称中,您也许可以找到从数字到字体代码的翻译,并将此翻译反向。
-
如果条形码是图像,则需要像 tesseract 一样使用 OCR
-
有编程问题吗?这看起来像条码/pdf/字体问题。
-
@MikeWodarczyk 谢谢,我发现字体是 interleaved-2of5。我还设法找到了一个转换表,但它似乎与我的不同。然而,多亏了那篇文章,我明白了我看到的奇怪字符(它们被称为 ITF14 btw)是如何工作的,所以我可以制作自己的转换表(并希望它适用于所有情况)。