阅读PDF,角色问题

时间:2013-02-17 02:33:14

标签: actionscript-3 flash actionscript bytearray purepdf

我正在尝试使用PurePDF在PDF文件中收集一些信息,但无法让PurePDF读取它。

每当PurePDF尝试读取任何pdf时,它说它无法找到它的标题,我试着调试它并注意到从bytearray读取的字符串将作为日文字符出现!我已经尝试在将其传递给PurePDF之前更改我的pdf的bytearray的endian,但没有改变任何东西。

pdf文件没问题,因为每当我将其作为文本打开时,我都能看到“%PDF-”标题,但由于某种原因,动作脚本出现错误的字符,因此PurePDF根本无法工作。

有什么想法吗?

感谢。


更新:我不是一个bytearray专家,但是我决定通过调试器跟踪代码执行,并发现它使用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();
    }

1 个答案:

答案 0 :(得分:0)

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

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

下面这个链接更好地解释了PDF流:(“/ Length”成为你的bytearray长度,“Filter”告诉你解码类型(charset类型,例如ASCII)等。

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

无论如何,如果您在Hex编辑器中打开PDF,这一切都有意义。如果您需要,请尝试以下一个。现在你可以看到你的溪流位置在哪里,并告诉AS3从那里提取:

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

如果仍然存在问题,请将您的PDF上传到某处并准确说出您要从文档中提取的内容。我将尝试为此提供确切的帮助(没有承诺,只是想帮助)..和平。