2013-02-17 101 views
3

我想使用PurePDF来收集PDF文件中的一些信息,但无法管理让PurePDF读取它。阅读PDF,字符问题

只要PurePDF尝试读取任何pdf,它说它找不到它的头,我试着调试它,并注意到从bytearray读取的字符串是日语字符!在将它传递给PurePDF之前,我试图更改我的pdf的bytearray的末尾,但没有改变任何内容。

pdf文件是可以的,因为我可以看到“%PDF-”标题,只要我将其作为文本打开,但由于某种原因,actionscript出现错误的charcode,因此PurePDF根本无法工作。

任何想法?

谢谢。


更新:我不是一个字节组的专家,但我决定到人,并按照执行代码通过调试,并发现了其使用的readInt()来获得人物,我只是重写了它readByte(),现在它正在阅读PDF!我仍然要看看这些功能是否会起作用......更低级的编程人员能解释我可能发生了什么吗?我不认为这个项目是在SVN

这是我一直在使用的代码坏了,我觉得这是很简单的:

private function loadPdf():void 
    { 
     var loader:URLLoader=new URLLoader(); 
     loader.dataFormat=URLLoaderDataFormat.BINARY; 
     loader.addEventListener(Event.COMPLETE, onLoadComplete); 
     loader.load(new URLRequest(PDF_FILE)); 
    } 

protected function onLoadComplete(event:Event):void 
    { 
     var data:ByteArray = URLLoader(event.target).data as ByteArray; 
     pdfReader = new PdfReader(data); 
     pdfReader.readPdf(); 
    } 
+0

不是我会知道答案,如果你这样做,但我觉得不得不评论你应该显示你使用的代码。它会阻止人们给你明显的答案(这不一定是问题),如果它是明显的东西,你很可能迅速得到它:) – 2013-02-17 02:48:11

+0

我已经更新我的状态并添加了我使用的代码,谢谢为你的时间。 – rsantos 2013-02-17 04:55:44

回答

0

我还没有和PurePDF之前的工作,但我有使用bytearray从文件中提取信息。你想从这个pdf中得到什么?你想提取文本吗?你也可以上传一个链接到PDF?如果我们在看同样的事情,会更容易。

关于日文文本...当您阅读PDF中的一个字节数组时,不要期望轻松地找到人类可读的文本,因为大部分数据都用于设置文件结构等。实际文本& PDF中的图片是放在名为Streams的标签内。所以通常你会找到一串文字&将它解压到你的bytearray中。要正确显示文本,请使用PDF数据中提到的解码器类型(UTF-8,UTF-16等)。

下面这个链接解释了有关PDF流好转:(“/长度”将成为您的ByteArray长度和“过滤器”告诉你解码类型(字符集类型如ASCII)等)

http://blog.didierstevens.com/2008/05/19/pdf-stream-objects/

不管怎么说如果您在十六进制编辑器中打开PDF,所有这些都是有意义的。如果您需要,请尝试下面的一个。现在,您可以看到您的视频流位置,并告诉AS3从那里提取:

http://www.hhdsoftware.com/free-hex-editor

如果仍然有问题,地方上传PDF,说你想从文件中提取什么。我会尝试给予确切的帮助(没有承诺,只是想帮助)。和平。

+0

感谢您花时间回答。 经过一段时间,我发现PurePDF pdf阅读功能没有完全实现,这可能是我得到“日文字符”和其他错误的原因。 它是我尝试过的Java iText库的一个端口,它具有更好的数据提取功能,但是我需要阅读的PDF格式非常不规则(表格和列),因此提取的数据最终崩溃。 我现在将PDF保存为.txt文件并为其写入解析器,因为数据以相当复杂的方式显示。 再次感谢。 – rsantos 2013-02-19 21:57:32

+2

只是为了添加评论,也许有人会发现有用的,我一直在尝试这些最后几个小时,使PurePDF的工作,并没有办法...阅读功能被打破。尝试从非常简单的pdf到复杂的,所有相同的错误。我甚至遵循了google代码页的建议(关于更改readByte()的readInt()),但出现了其他错误。我的建议,不要浪费你的时间。 – Artemix 2014-10-06 18:54:52