Рассмотрим следующий игрушечный пример:
clear
input dob
1248
2396
206
10882
8691
3933
1649
-6043
3179
-6347
end
format %td dob
Если переменная dob
является числовой , как в этом примере, вам также необходимо сначала преобразовать ее в годы:
generate wanted = 2019 - year(dob) - 18
list
+--------------------+
| dob wanted |
|--------------------|
1. | 02jun1963 38 |
2. | 24jul1966 35 |
3. | 25jul1960 41 |
4. | 17oct1989 12 |
5. | 18oct1983 18 |
|--------------------|
6. | 08oct1970 31 |
7. | 07jul1964 37 |
8. | 16jun1943 58 |
9. | 14sep1968 33 |
10. | 16aug1942 59 |
+--------------------+
По умолчанию вложения просматриваются безопасным образом с помощью https://docs.google.com/gview , однако оказывается, что вам разрешено запрашивать файлы по обычному HTTP. Это немного облегчает понимание того, что происходит с помощью Wireshark .
Как вы указали, уже было ясно, что PDF-файл преобразуется на стороне сервера в формат PNG ( ImageMagick действительно является разумным решением для этой цели), очевидной причиной этого является сохранение точного макет, сохраняя возможность просмотра файла без просмотра PDF.
Однако, Посмотрев на трафик, я обнаружил, что весь PDF также конвертируется в пользовательский формат XML при вызове / gview? a = gt & docid = & chan = & thid = (это делается, как только вы запрашиваете документ). Поскольку я не мог использовать 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), но они, очевидно, являются координатами текста и, возможно, длины. Как и , JavaScript, используемый Google, сведен к минимуму (или, возможно, обфусцирован, но это маловероятно), точно выяснить, как работает функция выбора на стороне клиента, не так просто. Но, скорее всего, он использует этот XML-файл, чтобы выяснить, какой текст просматривает пользователь, а затем скопирует его в буфер обмена пользователя.
Обратите внимание, что существует инструмент с открытым исходным кодом (лицензированный по лицензии GPL), который называется pdf2xml который имеет похожий, но не совсем такой же выход. Вот пример с их домашней страницы:
<?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>
Надеюсь, эта информация будет полезна в любом случае, однако, как и в других постерах, упоминается, что единственный способ убедиться в том, что делает Google, это спросить их. Жаль, что у Google нет официального канала IRC, но у них есть форум для вопросов поддержки Документов Google .
Удачи.
<?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>
Надеюсь, эта информация в любом случае полезна, однако, как и в других постерах, упоминается, что единственный способ убедиться в том, что делает Google, это спросить их. Жаль, что у Google нет официального канала IRC, но у них есть форум для вопросов поддержки Документов Google .
Удачи.
<?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>
Надеюсь, эта информация в любом случае полезна, однако, как и в других постерах, упоминается, что единственный способ убедиться в том, что делает Google, это спросить их. Жаль, что у Google нет официального канала IRC, но у них есть форум для вопросов поддержки Документов Google .
Удачи.
Google использует неисследованные источники Приложение PDF конвертер разработано собственными силами. Так что вам лучше просматривать ссылки, опубликованные в других ответах, так как вы не можете заполучить версию Google. Извините!
если у вас есть текст, вы можете сделать его таким, какой хотите, вне контекста,
более конкретно, вы должны проверить эту ссылку: pdf to png используя php
, так что imageMagick будет понадобиться imageMagic
изменить: еще одна интересная ссылка .
изменить: я нашел это в Google, выглядит интересно ... так что вы можете использовать Google API Google Api Data List и это блог о нем Google API теперь позволяет получать документы во многих форматах
Конечно, чтобы убедиться, что Google использует, вам нужен ответ от них? :)
удачи!
Чтобы увидеть, из чего создан файл PDF, щелкните его правой кнопкой мыши и перейдите в «Свойства документа» (в программе Adobe Reader). Производитель PDF будет отображаться как «Производитель PDF». Я думаю, что Google использует оба Prince и IText (не в комбинации для создания PDF-файлов). Google создал несколько основных модификаций вышеупомянутых наборов инструментов для создания этого конечного продукта.
Вы также можете исследовать использование Lucence для индексирования этих больших файлов PDF и предоставления связанных страниц вашим пользователям.
См. http://www.jguru.com/faq. /view.jsp?EID=1074237 для большего количества идей.
Ну ... это может быть просто инструмент pdf2xml, который использует Google. Они изменили только полную ширину слов, высоту и т. Д., И добавили атрибут p ... который оказывается атрибутом, содержащим координаты для слов внутри строки. Просто поигрался с ним и выяснил :) Собираюсь использовать этот pdf2xml из Google: P Загрузите, позвольте им конвертировать ... используйте xml для преобразования tooo ... epub? : P