首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用谷歌翻译API翻译PDF文件

使用谷歌翻译API翻译PDF文件
EN

Stack Overflow用户
提问于 2015-05-14 04:49:15
回答 2查看 7K关注 0票数 12

我想在我的项目中使用谷歌翻译。我和谷歌完成了所有的手续。我也带了API密钥。有了这个键,我可以很容易地用JavaScript翻译任何单词。但是,如何翻译PDF文件,我们可以在谷歌翻译网站?我发现了这样一件事:

http://translate.google.com/translate?hl=fr&sl=auto&tl=en&u=http://www.example.com/PDF.pdf

但在这里,我不能使用我的钥匙,因此,它需要大量的时间来翻译。所以我想用我的钥匙和翻译一个PDF文件。请帮帮我。我的方法是这样的:

代码语言:javascript
复制
1. One html page I have.
2. One browse button for pdf
3. Upload the file
4. Transalte the pdf with Google API and show in the html page.

我搜索了这个pdf翻译,但没有找到任何东西。请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2015-09-22 13:10:13

TL:使用无头浏览器呈现来自Google PDF翻译服务的PDF。

PDF是一种复杂的格式,可以包含许多文本组件。为了翻译它,我将描述解决方案从简单到更高级。

翻译原始文本

如果你只需要翻译没有视觉输出,你可以提取文本并给予谷歌翻译。

由于您没有提供有关项目的信息(语言、环境、.)我会把你转到这个关于如何提取文本的线程

翻译所有文本

如果你需要从PDF中的所有内容中获取信息,那么这是相当困难的。为了避免头痛(部分),您可以将PDF转换为图像(使用影象工具或类似工具),然后有三个选项:

  • OCR从图像中提取文本,然后将其交给google,再次您正在丢失原始表单。
  • OCR文本,但保存位置(一些库可以这样做,因为您没有指定项目信息,请参阅这些链接:#1#2#3#4)。 然后用google翻译它,并将结果写到图像中。为了获得更好的效果,您需要考虑文本字体、颜色和背景色。很难,但可行。
  • 使用谷歌翻译图像服务翻译图像。不幸的是,这个特性在公共API中是不可用的,所以除非做一些反向工程,否则这是不可能的。

使用Google的PDF翻译服务

您通过使用翻译站点提供的解决方案可以非常容易地自动化。原因是它很长,因为它是一个沉重的过程,你可能不会击败谷歌。

使用无头浏览器,您可以获得您的pdf翻译页面,然后观察到翻译的内容是坐在一个iframe,得到那个iframe,最后打印到PDF。

下面是一个使用SlimerJS的简短示例(应该与幻影兼容)

代码语言:javascript
复制
var page = require("webpage").create();

// here you may want to setup page size and options    

// get the page
page.open('https://translate.google.fr/translate?hl=fr&sl=en&u=http://example.com/pdf-sample.pdf', function(status) {
    if (status !== 'success') {
        console.log('Unable to access network');
    } else {
        // find the iframe with querySelector
        var iframe_src = page.evaluate(function() {
            return document.querySelector('#contentframe').querySelector('iframe').src;
        });

        console.log('Found iframe: ' + iframe_src);

        // render the iframe
        page.open(iframe_src, function(status) {
            // wait a bit for javascript to translate
            // this can be optimized to be triggered in javascript when translation is done
            setTimeout(function() {
                // print the page into PDF
                page.render('/tmp/test.pdf', { format: 'pdf' });

                phantom.exit(0);
            }, 2000);

        });
    }
});

提供此文件:http://www.cbu.edu.zm/downloads/pdf-sample.pdf

它产生了这个结果(用法语翻译):(我发布了一个截图,因为我不能嵌入PDF ;)

票数 7
EN

Stack Overflow用户

发布于 2015-09-29 11:38:01

使用Apache提取pdf文件的文本内容(您应该编写必要的java代码),然后使用您想要使用的任何API来翻译它。但是,正如上面提到的,谷歌翻译是一种付费服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30229437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档