Obserwowałem ruch, gdy Google wyświetla załączniki PDF w Gmailu w nowym oknie. Treść jest wyświetlana jako obrazy PNG dla każdej strony PDF. I można wybrać jego tekst. Co Google używa po stronie serwera do wygenerowania pliku PNG dla konkretnej strony w pliku PDF? Jak działa wybór tekstu na pliku png? Jakieś pomysły?Jakiej aplikacji używa Google do wyświetlania załączników PDF w Gmailu
Odpowiedz
Domyślnie załączniki są wyświetlane bezpiecznie za pomocą https://docs.google.com/gview, jednak okazuje się, że możesz żądać plików za pośrednictwem zwykłego HTTP. Dzięki temu łatwiej jest zorientować się, co się dzieje za pomocą Wireshark.
Jak wskazałeś, było już jasne, że plik PDF jest konwertowany po stronie serwera na PNG (ImageMagick jest rzeczywiście rozsądnym rozwiązaniem do tego celu), oczywistym powodem jest zachowanie dokładnego układu przy jednoczesnym zachowaniu możliwości aby wyświetlić plik bez konieczności przeglądarki plików PDF.
Jednak patrząc na ruch I okazało się, że cała PDF jest również przekształcić w niestandardowym formacie XML podczas wywoływania/GView? A = gt & docId = & chan = & thid = (odbywa się to tak szybko, jak zażądasz dokumentu). Ponieważ nie mogłem użyć Wiresharka do skopiowania pliku XML, który odwołałem do rozszerzenia przeglądarki Firefox Live HTTP Headers. Oto fragment:
<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>
Nie jestem pewien, ale to, co wszystkie atrybuty w elemencie tekstowym oznaczają (z wyjątkiem wag oraz h), ale oni oczywiście współrzędne tekstu i ewentualnie długości . Jako the JavaScript Google uses is minimized (lub prawdopodobnie przestarzałe, ale nie jest to prawdopodobne) dokładne ustalenie, jak działa funkcja wyboru po stronie klienta, nie jest takie proste. Najprawdopodobniej używa tego pliku XML, aby dowiedzieć się, jakiego tekstu szuka użytkownik, a następnie kopiuje go do schowka użytkownika.
Należy zauważyć, że istnieje narzędzie open source (na licencji GPL) o nazwie pdf2xml, które ma podobne, ale niezupełnie takie samo wyjście.Oto przykład z ich głównej:
<?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>
Nadzieja ta informacja jest w żaden sposób użyteczne, jednak jak jeden z pozostałych plakatów wspomniano, że jedynym sposobem, aby upewnić się, co Google robi to poprzez zadawanie im. Szkoda, że Google nie ma oficjalnego kanału IRC, ale ma on a forum for Google Docs support questions.
Powodzenia.
jeśli masz tekst można zrobić to, co chcesz offcourse,
dokładniej powinieneś sprawdzić ten link: pdf to png using php
więc ImageMagick będą potrzebne imageMagic
EDIT: inny interesting link .
edit: Znalazłem to w google, to wygląda interesująco ... więc można użyć google api Google Document List Data Api a to blogpost o tym Google API Now Lets You Get Documents in Many Formats
Offcourse mieć pewność co Google wykorzystuje trzeba odpowiedź od nich ? :)
powodzenia!
Witam, dzięki za odpowiedź. Linki są zdecydowanie interesujące. Mam duże pliki PDF (~ 50 Mb) jako dane wejściowe do mojego procesu i te muszą być dostarczane klientom na wolnych połączeniach. Jednak klienci mogą potrzebować tylko kilku stron, aby podjąć decyzję. W związku z tym myśleliśmy w kategoriach przenoszenia tylko migawki pliku pdf, tak jak Google. Potrzebujemy jakiegoś produktu dla przedsiębiorstw, który mógłby nam w tym pomóc. Prevrowably java. To nie jest dokładnie takie, ale pomocne. Jeszcze więcej potencjalnych klientów mam .. http://www.jpedal.org/, iText Varun – varun
Możesz również zbadać użycie Lucence, aby zindeksować te duże pliki pdf i wyświetlać powiązane strony swoim użytkownikom.
Aby uzyskać więcej pomysłów, zobacz http://www.jguru.com/faq/view.jsp?EID=1074237.
Google korzysta z opracowanej przez nas aplikacji do konwersji plików PDF bez użycia kodu źródłowego. Lepiej więc zajrzyj do linków umieszczonych przez inne odpowiedzi, ponieważ nie możesz dostać się do wersji Google. Przepraszam!
Aby zobaczyć, z czego utworzono plik pdf, kliknij go prawym przyciskiem myszy i przejdź do Właściwości dokumentu (w czytniku Adobe). Producent PDF pojawi się jako "Producent PDF". Myślę, że Google używa zarówno Prince i IText (nie w połączeniu do tworzenia plików PDF). Google utworzył kilka głównych modyfikacji powyższych zestawów narzę dzi, aby utworzyć ten produkt koń cowy.
Cóż .. to może być tylko narzędzie pdf2xml, którego używa Google. Zmienili tylko szerokość pełnych słów, wysokość itd. I dodali atrybut p ..., który okazuje się być atrybutem zawierającym współrzędne słów wewnątrz linii. Po prostu bawiłem się tym i dowiedziałem się :) Będziemy korzystać z tego pdf2xml z google: P Upload, niech konwertują ... użyj xml aby przekształcić tooo ... epub? : P
Myślę, że powinieneś najpierw spróbować zrozumieć to pytanie. –
- 1. Czy jest jakaś sztuczka do wyświetlania obrazów svg w Gmailu?
- 2. Jakiej wersji JavaScriptu używa Titanium?
- 3. Jakiej klasy USB używa port szeregowy COM?
- 4. Jakiej funkcji/algorytmu mieszania używa Perl?
- 5. Jakiej wersji protokołu SSL/TLS używa System.Web.Services.Protocols.SoapHttpClientProtocol?
- 6. Jakiej metody szyfrowania używa metoda .NET FormsAuthentication.Encrypt()?
- 7. Jakiej biblioteki gui używa edytor tekstu sublime?
- 8. Jakiej daty używa RFC na Twitterze?
- 9. Uzyskiwanie dostępu do wiadomości e-mail w Gmailu za pomocą silnika aplikacji Google
- 10. PDFsharp, błąd wyświetlania JPG w pliku PDF
- 11. Konwersja mapy google do pdf w php
- 12. Problemy wyświetlania PDF w iFrame na Mobile Safari
- 13. Gdzie Google używa C#
- 14. Sprawdzanie, czy plik jest w użyciu i do jakiej aplikacji?
- 15. Jakiej biblioteki graficznej używa GitHub na stronie Wykresy?
- 16. Link do poszczególnych wiadomości w Gmailu
- 17. Split Pdf na strony do wyświetlania na UIPageViewController
- 18. Używanie pdf.js do wyświetlania pdf z nieprzetworzonych danych
- 19. Jaki silnik renderujący używa cfdocument do konwersji HTML-> PDF?
- 20. Google App Engine Konwerter PDF
- 21. Jak uzyskać obrazy pyplot do wyświetlania w aplikacji konsoli?
- 22. Prosta metoda delegowania aplikacji do wyświetlania kontrolera UIAlertController (w Swift)
- 23. Problemy z nagłówka() podczas wyświetlania pliku PDF w IE8
- 24. Google Chrome przeglądarka PDF API?
- 25. Wiele załączników w języku C#
- 26. Błąd wyświetlania nowej aplikacji Railsy
- 27. Dodawanie wielu załączników w PHPMailer
- 28. Narzędzie do przesyłania załączników online CRM 2011 do obsługi CI
- 29. Jakiej biblioteki użyć do komety w Django?
- 30. Osadzanie aplikacji do Hangoutów Google+ w aplikacji internetowej
Zgaduję, że t i stoję na górze i na lewo. Google również nie potrzebuje danych czcionki, ponieważ czcionka jest renderowana w PNG. Tak więc pdf2xml jest prawdopodobnie generatorem, ale XML został następnie przeanalizowany, a niektóre dane usunięte. –