谷歌用什么应用程序在Gmail中显示PDF附件

时间:2009-04-25 18:30:58

标签: pdf png gmail ocr

当谷歌在新窗口中显示gmail中的PDF附件时,我看到了流量。内容作为每个PDF页面的PNG图像提供。并且可以选择其文本。谷歌在服务器端使用什么来为pdf文件中的特定页面生成PNG文件?如何在png文件上选择文本?有什么想法吗?

6 个答案:

答案 0 :(得分:7)

默认情况下,使用https://docs.google.com/gview安全查看附件,但事实证明您可以通过纯HTTP请求文件。这样可以更容易地使用Wireshark找出正在发生的事情。

正如您所指出的,已经很清楚PDF在服务器端转换为PNG(ImageMagick确实是一个合理的解决方案),显而易见的原因是保留了确切的布局仍然可以在不需要PDF查看器的情况下查看文件。

然而,通过查看流量,我发现在调用/ gview时整个PDF也会转换为自定义XML格式?a = gt& docid =& chan =& thid =(这很快就完成了当你要求文件时)。因为我无法使用Wireshark来复制我使用Firefox扩展Live HTTP Headers的XML。这是一段摘录:

<pdf2xml>
    <meta name="Author" content="Bruce van der Kooij"/>
    <meta name="Creator" content="Writer"/>
    <meta name="Producer" content="OpenOffice.org 3.0"/>
    <meta name="CreationDate" content="20090218171300+01'00'"/>
    <page t="0" l="0" w="595" h="842">
        <text l="188" t="99" w="213" h="27" p="188,213">Programmabureau</text>
        <text l="85" t="127" w="425" h="27" p="85,117,209,61,277,21,305,124,436,75">Nederland Open in Verbinding (NOiV)</text>
    </page>
</pdf2xml>

我还不太确定文本元素的所有属性代表什么(除了w和h),但它们显然是文本的坐标和可能的长度。作为the JavaScript Google uses is minimized(或者可能是混淆的,但这不太可能)确切地弄清楚客户端选择功能如何工作并不那么容易。但很可能它使用这个XML文件来确定用户正在查看的文本,然后将其复制到用户的剪贴板。

请注意,有一个名为pdf2xml的开源(GPL许可)工具,它具有相似但不完全相同的输出。以下是他们主页上的示例:

<?xml version="1.0" encoding="utf-8" ?>
<pdf2xml pages="3">
  <title>My Title</title>
  <page width="780" height="1152">
    <font size="10" face="MHCJMH+FuturaT-Bold" color="#FF0000">
      <text x="324" y="37" width="132" height="10">Friday, September 27, 2002</text>
      <img x="324" y="232" width="277" height="340" src="text_pic0001.png"/>
      <link x="324" y="232" width="277" height="340" dest_page="2" dest_x="141" dest_y="187"/>
    </font>
    <font size="12" face="AGaramond-Regular" italic="true" bold="true">
      <text x="509" y="68" width="121" height="12">This is a test PDF file</text>
      <link x="509" y="68" width="121" height="12" href="www.mobipocket.com"/>
    </font>
  </page>
</pdf2xml>

希望这些信息在任何方面都有用,但是就像其他一个海报所提到的那样,通过询问它们来确定Google所做的事情的唯一方法就是这样。很遗憾Google没有正式的IRC频道,但确实有a forum for Google Docs support questions

祝你好运。

答案 1 :(得分:2)

Google使用内部开发的非开源PDF转换器应用。因此,您最好不要查看其他答案发布的链接,因为您无法获得Google版本。遗憾!

答案 2 :(得分:1)

如果你有文字,你可以把它做成你想要的东西,

更具体一点,您应该查看此链接:pdf to png using php

因此需要使用imageMagick imageMagic

编辑:另一个interesting link

编辑:我在谷歌发现这个,它看起来很有趣......所以你可以使用谷歌API Google Document List Data Api这是关于它的博文Google API Now Lets You Get Documents in Many Formats

当然要确定google使用的是什么,你需要他们的回答? :)

祝你好运!

答案 3 :(得分:0)

要查看创建pdf的内容,请右键单击它并转到文档属性(在Adobe Reader中)。 PDF制作人将显示为“PDF制作人”。我认为谷歌使用PrinceIText(不是组合用于创建PDF)。谷歌已经对上述工具包进行了一些重大修改,以创建最终产品。

答案 4 :(得分:-2)

嗯..这可能就是Google正在使用的pdf2xml工具。他们只改变了它们的全长,宽度,高度等等,并且他们添加了p属性......结果是包含该行内单词坐标的属性。只是玩它并发现:)要使用谷歌的这个pdf2xml:P上传,让他们转换...使用xml转换太... epub? :P

答案 5 :(得分:-3)

您可能还想调查使用Lucence为这些重要的pdf文件编制索引并向用户提供相关的页面。

有关更多提示,请参阅http://www.jguru.com/faq/view.jsp?EID=1074237