2009-04-25 6 views
5

ich den Verkehr beobachtete, wenn Google PDF-Anhänge in gmail in einem neuen Fenster angezeigt. Der Inhalt wird als PNG-Bilder für jede PDF-Seite bereitgestellt. Und sein Text kann ausgewählt werden. Was nutzt Google auf der Serverseite, um eine PNG-Datei für eine bestimmte Seite in einer PDF-Datei zu generieren? Wie funktioniert die Auswahl von Text in einer PNG-Datei? Irgendwelche Ideen?Welche Anwendung ist die Verwendung von Google PDF-Anhänge in gmail zeigen

Antwort

7

standardmäßig Anhänge sicher https://docs.google.com/gview mit betrachtet werden, jedoch stellt sich heraus, dürfen Sie Dateien über HTTP Ebene anzufordern. Dies macht es ein wenig einfacher herauszufinden, was passiert mit Wireshark.

Wie Sie bereits angedeutet haben, ist das PDF auf der Serverseite in ein PNG konvertiert (ImageMagick ist in der Tat eine vernünftige Lösung für diesen Zweck), der offensichtliche Grund dafür ist, das genaue Layout zu erhalten, solange es noch möglich ist um die Datei anzuzeigen, ohne einen PDF-Viewer zu benötigen.

jedoch aus an der Ampel der Suche fand ich heraus, dass das gesamte PDF auch auf ein benutzerdefinierten XML-Format konvertiert wird beim Aufruf/gview? A = gt & docid = & chan = & thid = (dies wird so schnell erledigt wie Sie fordern das Dokument an). Da ich Wireshark nicht verwenden konnte, um das XML zu kopieren, griff ich auf die Firefox-Erweiterung Live HTTP Headers zurück. Hier ein Auszug:

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

Ich bin noch nicht ganz sicher, was alle Attribute für das Textelement stehen (mit Ausnahme von w und h), aber sie sind offensichtlich die Koordinaten des Textes und möglicherweise Länge . Als the JavaScript Google uses is minimized (oder möglicherweise verschleiert, aber das ist nicht wahrscheinlich) herauszufinden, genau, wie die clientseitige Auswahlfunktion funktioniert, ist nicht ganz so einfach. Aber höchstwahrscheinlich verwendet es diese XML-Datei, um herauszufinden, welchen Text der Benutzer gerade betrachtet, und kopiert diesen dann in die Zwischenablage des Benutzers.

Beachten Sie, dass es eine Open-Source-Tool (GPL) pdf2xml genannt, die ähnlich, aber nicht ganz die gleiche Leistung.Hier ist das Beispiel von ihrer Homepage:

<?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> 

hoffe, diese Informationen in irgendeiner Weise nützlich ist, aber wie einer der anderen Plakate die einzige Möglichkeit erwähnt sicher zu sein, was Google tut, ist von ihnen zu fragen. Es ist eine Schande, dass Google keinen offiziellen IRC-Kanal hat, aber sie haben a forum for Google Docs support questions.

Viel Glück.

+0

Ich denke, t und l stehen für oben und links. Google benötigt auch keine Schriftdaten, da die Schrift in PNG gerendert wird. Also ist pdf2xml wahrscheinlich der Generator, aber das XML wurde danach geparst und einige Daten wurden entfernt. –

1

wenn Sie den Text haben, können Sie es machen, was Sie offcourse wollen,

spezifischere Sie diesen Link sollten überprüfen: pdf to png using php

so wird ImageMagick imageMagic

bearbeiten benötigt werden: eine andere interesting link .

edit: ich fand diese bei Google, sieht es interessant ... so könnte man die api google verwenden Google Document List Data Api und dies ist ein Blogpost darüber Google API Now Lets You Get Documents in Many Formats

Offcourse sicher zu sein, was Google verwendet, um Ihnen eine Antwort benötigen von ihnen ? :)

viel Glück!

+0

Hallo, Vielen Dank für Ihre Antwort. Die Links sind definitiv interessant. Ich habe diese großen PDFs (~ 50 MB) als Eingabe für meinen Prozess und diese müssen Clients auf langsamen Verbindungen geliefert werden. Die Kunden benötigen jedoch möglicherweise nur wenige Seiten, um die Entscheidung zu treffen. Daher dachten wir in Bezug auf das Tragen nur eine Momentaufnahme einer PDF-Datei wie Google. Wir brauchen eine Art von Enterprise-Produkt, das uns dabei helfen könnte. Vornehmlich Java. Das ist nicht genau so, aber hilfreich. Einige weitere Leads, die ich habe, sind .. http://www.jpedal.org/, iText Varun – varun

2

Google verwendet ein Nicht-Open-Source-PDF-Konverter-App in-house entwickelt. Sie sollten also besser auf die Links anderer Antworten schauen, da Sie die Google-Version nicht bekommen können. Es tut uns leid!

0

Um zu sehen, mit was eine PDF erstellt wurde, klicken Sie mit der rechten Maustaste darauf und gehen Sie zu den Dokumenteigenschaften (im Adobe Reader). Der PDF-Produzent wird als "PDF-Produzent" angezeigt. Ich denke, Google verwendet sowohl Prince als auch IText (nicht in Kombination zum Erstellen von PDFs). Google hat einige wichtige Änderungen an den oben genannten Toolkits vorgenommen, um dieses Endprodukt zu erstellen.

-2

Nun .. das könnte nur das pdf2xml-Tool sein, das Google verwendet. Sie änderten nur die Breite der Wörter, die Höhe usw. und fügten das p-Attribut hinzu, das sich als das Attribut herausstellte, das die Koordinaten für die Wörter in der Zeile enthielt. Habe einfach damit gespielt und es herausgefunden :) Ich werde dieses pdf2xml von google verwenden: P Upload, lass sie konvertieren ... benutze xml um tooo ... epub zu transformieren? : P

+0

Ich denke, du solltest versuchen, die Frage zuerst zu verstehen. –