19

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

用于查看 PDF 的示例链接

4

3 回答 3

19

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

您应该查看其他人更详细的这个 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 扫描文档,检测文本的位置和提供一个坐标矩阵,作为 div 放置的基础,当您单击并拖动它时,它会引入鼠标指针位置以确定要显示的 div。

于 2010-01-26T09:33:44.750 回答
1

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

于 2010-01-29T09:26:28.263 回答
1

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

于 2010-06-11T08:47:25.580 回答