グーグルが新しいウィンドウでGmailにPDF添付ファイルを表示するときのトラフィックを監視しました。コンテンツは、PDFページごとにPNG画像として提供されます。そして、そのテキストを選択することができます。pdfファイルの特定のページのPNGファイルを生成するためにGoogleはサーバー側で何を使用しますか?pngファイルのテキストの選択はどのように機能しますか?何か案は?
6 に答える
デフォルトでは、添付ファイルはhttps://docs.google.com/gviewを使用して安全に表示されますが、プレーン HTTP 経由でファイルをリクエストできることがわかりました。これにより、 Wiresharkを使用して何が起こっているのかを把握するのが少し簡単になります。
あなたが示したように、PDFがサーバー側でPNGに変換されることはすでに明らかでした(ImageMagickは実際にこの目的のための合理的なソリューションです)、これの明らかな理由は、ファイルを表示しながら正確なレイアウトを保持することですPDF ビューアを必要とせずに。
ただし、トラフィックを調べたところ、/gview?a=gt&docid=&chan=&thid= を呼び出すと、PDF 全体もカスタム XML 形式に変換されることがわかりました (これは、ドキュメントを要求するとすぐに行われます)。Wireshark を使用して XML をコピーできなかったので、Firefox の拡張機能であるLive HTTP Headersに頼りました。ここに抜粋があります:
<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>
テキスト要素のすべての属性 (w と h を除く) が何を表しているのかはまだよくわかりませんが、それらは明らかにテキストの座標であり、おそらく長さです。Google が使用する JavaScript は最小化されているため(または難読化されている可能性がありますが、そうではない可能性があります)、クライアント側の選択機能がどのように機能するかを正確に理解することはそれほど簡単ではありません。しかし、ほとんどの場合、この XML ファイルを使用して、ユーザーが見ているテキストを把握し、それをユーザーのクリップボードにコピーします。
pdf2xmlと呼ばれるオープン ソース (GPL ライセンス) ツールがあり、出力は似ていますがまったく同じではないことに注意してください。ホームページの例は次のとおりです。
<?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>
この情報が何らかの形で役立つことを願っていますが、言及された他のポスターの 1 つと同様に、Google が何をしているのかを確認する唯一の方法は、Google に尋ねることです。Google に公式の IRC チャンネルがないのは残念ですが、Google ドキュメントのサポートに関する質問のフォーラムがあります。
幸運を。
Googleは、社内で開発された非オープンソースのPDFコンバーターアプリを使用しています。したがって、Googleバージョンを入手できないため、他の回答によって投稿されたリンクを調べる方がよいでしょう。ごめん!
あなたがテキストを持っているなら、あなたはそれをあなたが望むものにすることができます、
より具体的には、このリンクをチェックする必要があります:phpを使用してpdfからpngへ
したがって、imageMagickが必要になりますimageMagic
編集:別の興味深いリンク。
編集:私はこれをグーグルで見つけました、それは面白そうです...あなたはグーグルAPIを使うことができます グーグルドキュメントリストデータアピそしてこれはそれについてのブログ投稿ですグーグルAPIはあなたに多くのフォーマットのドキュメントを手に入れさせます
グーグルが何を使用しているのかを確認するためのオフコースには、彼らからの回答が必要ですか?:)
幸運を !
PDF の作成方法を確認するには、PDF を右クリックして [ドキュメント プロパティ] (Adobe Reader 内) に移動します。PDF プロデューサーは「PDF プロデューサー」として表示されます。Google はPrinceとITextの両方を使用していると思います(PDF を作成するための組み合わせではありません)。Google は、最終製品を作成するために、上記のツールキットにいくつかの主要な変更を加えました。
まあ..これは、Googleが使用しているpdf2xmlツールかもしれません。彼らは完全な単語の幅、高さなどを変更しただけで、 p 属性を追加しました...これは、行内の単語の座標を含む属性であることが判明しました。ちょうどそれで遊んで見つけました:) Googleからこのpdf2xmlを使用するつもりです:Pアップロード、変換させてください... xmlを使用して変換も... epub? :P
Lucenceを使用して、これらの大きなpdfファイルにインデックスを付け、関連ページをユーザーに提供することも検討してください。
その他のアイデアについては、 http://www.jguru.com/faq/view.jsp?EID=1074237を参照してください。