2009-04-25 69 views
5

Tôi đã xem lưu lượng truy cập khi google hiển thị tệp đính kèm PDF trong gmail trong cửa sổ mới. Nội dung được phân phối dưới dạng hình ảnh PNG cho mỗi trang PDF. Và văn bản của nó có thể được chọn. Google sử dụng gì ở phía máy chủ để tạo tệp PNG cho một trang cụ thể trong tệp pdf? Cách lựa chọn văn bản trên một tệp png hoạt động như thế nào? Bất kỳ ý tưởng?Ứng dụng nào Google sử dụng để hiển thị tệp đính kèm PDF trong gmail

Trả lời

7

Theo tệp đính kèm mặc định được xem an toàn bằng cách sử dụng https://docs.google.com/gview, tuy nhiên hóa ra bạn được phép yêu cầu tệp qua HTTP thuần túy. Điều này làm cho nó dễ dàng hơn một chút để tìm ra những gì đang xảy ra bằng cách sử dụng Wireshark.

Như bạn đã nói rõ ràng rằng PDF được chuyển đổi ở phía máy chủ thành PNG (ImageMagick thực sự là giải pháp hợp lý cho mục đích này), lý do rõ ràng cho việc này là giữ nguyên bố cục chính xác trong khi vẫn có thể để xem tệp mà không yêu cầu trình xem PDF.

Tuy nhiên, từ cách nhìn vào giao thông tôi phát hiện ra rằng toàn bộ PDF cũng được chuyển đổi sang một định dạng XML tùy chỉnh khi gọi/Gview? A = gt & docid = & chan = & thid = (điều này được thực hiện càng sớm càng bạn yêu cầu tài liệu). Vì tôi không thể sử dụng Wireshark để sao chép XML mà tôi đã sử dụng sang tiện ích mở rộng của Firefox Live HTTP Headers. Dưới đây là một đoạn trích:

<pdf2xml> 
    <meta name="Author" content="Bruce van der Kooij"/> 
    <meta name="Creator" content="Writer"/> 
    <meta name="Producer" content="OpenOffice.org 3.0"/> 
    <meta name="CreationDate" content="20090218171300+01'00'"/> 
    <page t="0" l="0" w="595" h="842"> 
     <text l="188" t="99" w="213" h="27" p="188,213">Programmabureau</text> 
     <text l="85" t="127" w="425" h="27" p="85,117,209,61,277,21,305,124,436,75">Nederland Open in Verbinding (NOiV)</text> 
    </page> 
</pdf2xml> 

Tôi không khá chắc chắn nhưng những gì tất cả các thuộc tính về các yếu tố văn bản đại diện cho (với ngoại lệ của w và h) nhưng chúng rõ ràng là các tọa độ của văn bản và có thể dài . Như the JavaScript Google uses is minimized (hoặc có thể bị ám ảnh, nhưng điều này là không có khả năng) tìm ra chính xác cách thức hoạt động của chức năng lựa chọn phía máy khách không dễ dàng như vậy. Nhưng rất có thể nó sử dụng tệp XML này để tìm ra văn bản mà người dùng đang xem và sau đó sao chép vào khay nhớ tạm của người dùng.

Lưu ý rằng có một công cụ mã nguồn mở (được cấp phép GPL) được gọi là pdf2xml có kết quả tương tự nhưng không hoàn toàn giống nhau.Dưới đây là ví dụ từ trang chủ của họ:

<?xml version="1.0" encoding="utf-8" ?> 
<pdf2xml pages="3"> 
    <title>My Title</title> 
    <page width="780" height="1152"> 
    <font size="10" face="MHCJMH+FuturaT-Bold" color="#FF0000"> 
     <text x="324" y="37" width="132" height="10">Friday, September 27, 2002</text> 
     <img x="324" y="232" width="277" height="340" src="text_pic0001.png"/> 
     <link x="324" y="232" width="277" height="340" dest_page="2" dest_x="141" dest_y="187"/> 
    </font> 
    <font size="12" face="AGaramond-Regular" italic="true" bold="true"> 
     <text x="509" y="68" width="121" height="12">This is a test PDF file</text> 
     <link x="509" y="68" width="121" height="12" href="www.mobipocket.com"/> 
    </font> 
    </page> 
</pdf2xml> 

Mong rằng thông tin này hữu ích, tuy nhiên, cách duy nhất để đảm bảo những gì Google làm là yêu cầu họ. Thật đáng tiếc Google không có kênh IRC chính thức nhưng họ có a forum for Google Docs support questions.

Chúc may mắn.

+0

Tôi đoán t và l đứng đầu và bên trái. Google cũng không cần dữ liệu phông chữ vì phông chữ được hiển thị bên trong PNG. Vì vậy, pdf2xml có lẽ là máy phát, nhưng sau đó XML đã được phân tích cú pháp và một số dữ liệu đã bị xóa. –

1

nếu bạn có văn bản mà bạn có thể làm cho nó những gì bạn muốn, dĩ nhiên,

cụ thể hơn bạn nên kiểm tra liên kết này: pdf to png using php

nên ImageMagick sẽ là cần thiết imageMagic

chỉnh sửa: interesting link khác .

chỉnh sửa: Tôi thấy điều này tại google, có vẻ thú vị ... vì vậy bạn có thể sử dụng google api Google Document List Data Api và đây là một bài đăng trên blog về nó Google API Now Lets You Get Documents in Many Formats

Offcourse để chắc chắn những gì google sử dụng bạn cần một câu trả lời từ họ ? :)

chúc may mắn!

+0

Xin chào, Cảm ơn câu trả lời của bạn. Các liên kết chắc chắn là thú vị. Tôi có các tệp PDF lớn này (~ 50 Mb) làm đầu vào cho quy trình của mình và những nhu cầu này cần được phân phát cho khách hàng trên các kết nối chậm. Tuy nhiên, khách hàng chỉ có thể cần một vài trang để đưa ra quyết định. Do đó, chúng tôi đã suy nghĩ về việc chỉ mang theo một bản chụp của một pdf giống như google. Chúng tôi cần một số loại sản phẩm doanh nghiệp có thể giúp chúng tôi làm điều đó. Tốt java. Điều này không chính xác như thế nhưng hữu ích. Một số khách hàng tiềm năng khác mà tôi có là .. http://www.jpedal.org/, iText Varun – varun

-3

Bạn cũng có thể muốn điều tra sử dụng Lucence để lập chỉ mục các tệp pdf lớn và phục vụ các trang có liên quan cho người dùng của bạn.

Xem http://www.jguru.com/faq/view.jsp?EID=1074237 để có thêm ý tưởng.

2

Google sử dụng ứng dụng chuyển đổi PDF không có nguồn mở được phát triển nội bộ. Vì vậy, bạn nên xem xét các liên kết được đăng bởi các câu trả lời khác vì bạn không thể sử dụng phiên bản Google của mình. Lấy làm tiếc!

0

Để xem pdf được tạo ra bằng cách nào, hãy nhấp chuột phải vào nó và đi đến Thuộc tính Tài liệu (trong trình đọc Adobe). Nhà sản xuất PDF sẽ hiển thị là "Nhà sản xuất PDF". Tôi nghĩ rằng google sử dụng cả hai PrinceIText (không kết hợp để tạo tệp PDF). Google đã tạo ra một số sửa đổi lớn trên các bộ công cụ trên để tạo ra sản phẩm cuối cùng đó.

-2

Vâng .. đây có thể chỉ là công cụ pdf2xml mà Google đang sử dụng. Họ chỉ thay đổi họ đầy đủ từ chiều rộng, chiều cao vv và họ thêm thuộc tính p ... mà hóa ra là thuộc tính có chứa các tọa độ cho các từ bên trong dòng. Chỉ cần chơi với nó và phát hiện ra :) Đi sử dụng pdf2xml này từ google: P Upload, cho phép họ chuyển đổi ... sử dụng xml để chuyển đổi tooo ... epub? : P

+0

Tôi nghĩ bạn nên cố gắng hiểu câu hỏi trước. –

Các vấn đề liên quan