我很想知道Google Docs PDF查看器的工作原理吗?它不像scribd.com那样闪光;它看起来像纯HTML。知道他们是怎么做到的吗?
答案 0 :(得分:18)
Google只是提供一张图片(点击右键 - >另存为),并使用叠加层突出显示文字。
您应该查看this SO question,其他人会详细了解。
您还应该浏览PDF链接的来源,看来谷歌正在传递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。
答案 1 :(得分:1)
整个事情是一个形象。文字突出显示叠加 - 很容易理解。但当你按ctrl + c并将其复制到剪贴板时,那部分让我完全难过。因为在firefox中使用javascript写入剪贴板是不可能的,但是这个ctrl + c在图像上运行正常。 http://www.google.com/support/forum/p/Google+Docs/thread?tid=67dcf21ef8579b4c&hl=en&fid=67dcf21ef8579b4c00047e4a2a9fcb12
答案 2 :(得分:1)
我同意其他一些答案 - PDF被渲染为PNG,很可能文本区域是分层的,可能使用绝对/相对定位。您可以从PDF中提取PDF信息(当然......)。 PDF格式是开放的 - 任何人都可以这样做(授予,这可能并不容易)。但是有一些开源工具(xPDF ...)可以导出PDF内容,比如XML。导出可能包括关于页面文本和图像应显示位置的坐标等信息。