【问题标题】:How does the Google Docs PDF viewer work?Google 文档 PDF 查看器如何工作?
【发布时间】:2010-01-26 09:30:57
【问题描述】:

我很想知道 Google Docs PDF 查看器的工作原理?它不是像 scribd.com 这样的闪存;它看起来像纯 HTML。知道他们是怎么做到的吗?

Sample link to view the PDF

【问题讨论】:

  • 有很多......很多......还有很多......钱
  • 在我的帖子底部阅读我答案的“编辑”部分。
  • 正如@BenEverard 所述,PDF 呈现为图像,其中每一页都是单独的图像,图像上没有文本,但它们确实使用半透明的 DIV 突出显示图像页面上的文本块。副本的工作原理是另一个问题。

标签: pdf google-docs


【解决方案1】:

Google 只是提供一张图片(右键单击 -> 另存为),并带有一个覆盖以突出显示文本。

您应该查看this SO question,其他人会更详细地了解。

您还应该查看您的 PDF 链接的来源,看起来 Google 正在传递 PDF 链接以将其转换为图像。

例子:

<script type="text/javascript"> 
        var gviewElement = document.getElementById('gview');
        var config = {

          'api': false,
          'chrome': true,
          'csi': true,
          'ddUrl': "http://www.idfcmf.com/downloads/monthly_fund/2009/IDFC-Premier-Equityfund-jan10.pdf",
          'element': gviewElement,
          'embedded': false,
          'initialQuery': "",
          'oivUrl': "http://docs.google.com/viewer?url\x3dhttp%3A%2F%2Fwww.idfcmf.com%2Fdownloads%2Fmonthly_fund%2F2009%2FIDFC-Premier-Equityfund-jan10.pdf",
          'sdm': 200,
          'userAuthenticated': true
        };

        var gviewApp = _createGView(config);
        gviewApp.setProgress(50);


          window.jstiming.load.name = 'view';

          window.jstiming.load.tick('_dt');

      </script> 

编辑

此外,如果您要使用 Firebug 在 Firefox 中查看 PDF 查看器,您会注意到,当您“突出显示”文本时,它实际上只是启用了 div 的加载,我猜 Google 使用 OCR 扫描文档,检测到text 是并提供了一个坐标矩阵,当您单击并拖动它时,它会引入鼠标指针位置以确定要显示的 div。

【讨论】:

  • 不。它不会将整个东西转换成图像。因为,它允许您选择和复制其中的文本。我不认为我们可以在图像中做到这一点..
  • 不...它正在将其转换为图像...您可以说出来,因为我将其下载为 PNG!我无法解释它如何设法提供覆盖以突出显示/复制文本,但它正在将其转换为图像。你看过我链接到的其他 SO 帖子吗?
  • 如果您想证明它正在将其转换为图像,请查看此链接 --> docs.google.com/viewer?url=http://www.idfcmf.com/downloads/…
  • 兄弟.. 我不否认它渲染了一些图像.. 但总的来说,它的渲染就像一个 html 页面以及图像和文本。我的问题是 PDF 查看器是如何工作的? (准确信息的完整流程)..没有猜测答案..
  • 就我而言,我已经尽我所能回答了您的问题,而无需实际致电 Google 并直接获取信息。你能具体说说你想知道的吗?我已经告诉过你 PDF 本身是如何呈现为图像的,我已经告诉过你文本突出显示是如何工作的?我对你想要的东西感到困惑,我没有解释。除了文本坐标(我很确定)之外,我什么都没猜到,使用 firebug 自己看看。
【解决方案2】:

整个事物都是一个图像。文本突出显示覆盖 - 这很容易弄清楚。但是当您按 ctrl+c 并将其复制到剪贴板时,这部分让我完全难过。因为不可能在 Firefox 中使用 javascript 写入剪贴板,但是图像上的这个 ctrl+c 在 Firefox 中可以正常工作。 http://www.google.com/support/forum/p/Google+Docs/thread?tid=67dcf21ef8579b4c&hl=en&fid=67dcf21ef8579b4c00047e4a2a9fcb12

【讨论】:

  • 我假设他们没有使用 javascript 将文本放入剪贴箱,而是在浏览器中选择文本。而当你按下 Ctrl+C 时,你实际上是在使用浏览器的正常复制功能。
【解决方案3】:

我同意其他一些答案 - PDF 呈现为 PNG,并且很可能文本区域是分层的,可能使用绝对/相对定位。您可以从 PDF 中提取 PDF 信息(当然...)。 PDF 格式是开放的——任何人都可以做到(当然,这可能并不容易)。但是,有一些开源工具(xPDF ...)可以导出 PDF 内容,例如 XML。导出内容可能包含坐标等信息,说明页面文本和图像应显示在何处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多