2015-05-14 15 views
9

Tôi muốn sử dụng Google Dịch trong dự án của mình. Tôi đã hoàn thành tất cả các thủ tục với Google. Tôi cũng có khóa API. Với khóa này tôi có thể dễ dàng dịch bất kỳ từ nào bằng JavaScript. Nhưng làm cách nào để dịch tệp PDF như chúng tôi có thể thực hiện trong trang web Google Dịch? Tôi tìm thấy một điều như thế này:Dịch tệp PDF bằng Google Translate API

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

Nhưng ở đây tôi không thể sử dụng phím của tôi, kết quả là phải mất rất nhiều thời gian để dịch. Vì vậy, tôi muốn sử dụng Khóa của mình và dịch một tệp PDF. Hãy giúp tôi ra. Cách tiếp cận của tôi là như sau:

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. 

Tôi đã tìm kiếm nó để dịch pdf này nhưng không tìm thấy gì cả. Hãy giúp tôi ra.

Trả lời

4

TL: DR: Sử dụng trình duyệt không đầu để hiển thị PDF từ dịch vụ dịch PDF của Google.

PDF là định dạng phức tạp và có thể bao gồm nhiều thành phần là văn bản. Để dịch nó tôi sẽ mô tả giải pháp từ dễ đến một nâng cao hơn.

Dịch văn bản thô

Nếu bạn chỉ cần bản dịch mà không có đầu ra hình ảnh, bạn có thể trích xuất văn bản và đưa nó cho Google Translate.

Vì bạn không cung cấp thông tin về dự án của bạn (ngôn ngữ, môi trường, ...) Tôi sẽ chuyển hướng bạn đến này thread on how to extract text

Dịch toàn bộ văn bản

Nếu bạn cần phải nhận được văn bản từ tất cả mọi thứ trong bạn PDF, điều đó khá là khó. Để tránh đau đầu (một phần), bạn có thể chuyển đổi PDF sang hình ảnh (sử dụng imagemagick công cụ hoặc tương tự) và sau đó bạn có ba lựa chọn:

  • OCR văn bản từ hình ảnh, sau đó đưa nó cho google, một lần nữa bạn mất hình thức ban đầu.
  • OCR văn bản, nhưng lưu vị trí (một số thư viện có thể làm điều đó, một lần nữa vì bạn không chỉ định thông tin dự án của mình, xem các liên kết này: #1, #2, #3, #4).

    Sau đó dịch nó bằng google api và ghi kết quả vào hình ảnh. Để có kết quả tuyệt vời, bạn cần tính đến màu chữ, màu và màu nền. Khá khó, nhưng khả thi.

  • Dịch hình ảnh bằng cách sử dụng google translate image service. Rất tiếc, tính năng này không có sẵn trong API công khai, do đó, trừ khi thực hiện một số kỹ thuật đảo ngược, điều này là không thể.

Dịch sử dụng dịch vụ PDF dịch của Google

Các giải pháp mà bạn cung cấp bằng cách sử dụng các trang web dịch có thể được tự động khá dễ dàng. Lý do là do quá trình này là quá trình nặng và có thể bạn sẽ không đánh bại Google.

Sử dụng trình duyệt không có đầu, bạn có thể tải trang dịch bằng pdf của mình, sau đó quan sát rằng nội dung đã dịch đang nằm trong iframe, nhận iframe đó và cuối cùng in sang PDF.

Dưới đây là một ví dụ ngắn sử dụng SlimerJS (nên tương thích cho Phantomjs)

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

     }); 
    } 
}); 

Giving tập tin này: http://www.cbu.edu.zm/downloads/pdf-sample.pdf
Nó tạo ra kết quả này (được dịch bằng tiếng Pháp): (tôi đã đăng một ảnh chụp màn hình kể từ khi tôi không thể nhúng PDF;)) Pdf result

+0

Điều này có vẻ thú vị 'Dịch sử dụng dịch vụ dịch PDF của Google' nhưng kích thước tệp của tôi trong khoảng 1Mb google cho biết giới hạn vượt quá: ( Ngoài ra tôi cũng có tài liệu word và ppt .. – Adeel

+0

một vấn đề nhỏ ... Bạn có thể chia nhỏ pdf của bạn thành một phần nhỏ hơn với [Imagemagick] (http://www.imagemagick.org/script/index.php) 'convert x.pdf x-% 03d.pdf' – Cyrbil

0

Sử dụng Apache Tika để trích xuất nội dung văn bản của tệp pdf (bạn nên viết mã java cần thiết), sau đó sử dụng bất kỳ API nào bạn muốn sử dụng để dịch. Nhưng, như nó đã được đề cập ở trên Google Translate là một dịch vụ trả tiền.