pdf - 谷歌使用什么应用程序在 gmail 中显示 PDF 附件

标签 pdf png gmail ocr

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

最佳答案

默认情况下,使用 https://docs.google.com/gview 安全地查看附件,但事实证明您可以通过纯 HTTP 请求文件。这使得使用 Wireshark 更容易弄清楚发生了什么。 .

正如您所指出的,PDF 在服务器端被转换为 PNG(ImageMagick 确实是一个合理的解决方案),这样做的明显原因是保留精确的布局,同时仍然能够查看该文件不需要 PDF 查看器。

但是,通过查看流量,我发现在调用/gview?a=gt&docid=&chan=&thid= 时,整个 PDF 也会转换为自定义 XML 格式(这在您请求文档后立即完成)。由于我无法使用 Wireshark 复制 XML,因此我求助于 Firefox 扩展 Live HTTP Headers .这是摘录:

<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>

希望这些信息在任何方面都有用,但是就像其他海报中提到的那样,确定谷歌所做的唯一方法就是询问他们。很遗憾谷歌没有官方 IRC channel ,但他们有 a forum for Google Docs support questions .

祝你好运。

关于pdf - 谷歌使用什么应用程序在 gmail 中显示 PDF 附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789470/

相关文章:

django - 如何在 django 中使用 pdf.js

pdf - 保存 pdf 的修改内容

image - FFmpeg 在视频之前显示图像多秒,无需重新编码

png - 为什么较小的 PNG 图像在通过 GraphicsMagic 调整大小后比原始图像占用更多空间

javascript - 当您写电子邮件时 Gmail 关闭控制

security - 将 PHPmailer 设为 Gmail 的 "more secure app"

jquery - 使嵌入式 PDF 在 iPad 中可滚动

php - 我正在尝试在 Laravel 中创建的 PDF 中指定字体

compression - 找不到 png 文件大小背后的逻辑

google-chrome - 使用 Chrome 身份验证访问 Chrome 扩展中的 gmail api