2013-06-09 4 views
0

Я нахожусь на ubuntu.Обнаружение положения водяного знака в pdf

У меня есть файл pdf со страницами, разделенными на сетку. Каждый блок сетки содержит имя/возраст/доб/фото кандидата. в некоторых записях водяной знак «дисквалифицирован»

Мне нужно очистить его pdf, дисквалифицированные кандидаты в отдельном списке. Используя pyPdf, я смог получить отдельные записи, но также включает в себя кандидатов с водяными знаками.

Как обнаружить водяной знак? Если я смогу получить координаты водяного знака, как мне его сопоставить с кандидатом?

Я открыт для других решений, чем питон pyPdf

+1

Скорее всего, решение будет зависеть от самой структуры ваших PDF-файлов. Не могли бы вы предоставить образец? – mkl

+0

Вот ссылка на PDF-файл образец https://docs.google.com/file/d/0BzbpFYSySNBZNnJIUXk0VFdweFE/edit?usp=sharing – sulabh

+0

Также с помощью pdftops на убунт я получил файл пса, как https://docs.google ,ком/файл/d/0BzbpFYSySNBZYmVKN25uU1JxTGs/редактировать? УСП = обмен – sulabh

ответ

1

(На самом деле это не ответ, а лишь анализ биту для комментария.)

Я не знаю pyPdf (или python PDF classes), но вот как создается водяной знак для ввода образца; основанный на этом, любой, кто знает pyPDF достаточно хорошо, может легче советовать.

Раундап

В зависимости от того, как pyPDF (или другие классы питона PDF) позволяет получить доступ к содержимому страницы, есть два основных основных подхода:

  1. Если класс возвращает информацию о содержимое (текст и изображение) в своем порядке в потоке содержимого страницы: изображение xobject водяного знака передается прямо перед данными записи. Таким образом, отмечена любая запись, предшествующая рисунку изображения xobject.

  2. Если в противном случае информация не указана в порядке, указанном в потоке содержимого страницы, необходимо использовать сравнение координат, которое само по себе довольно прямолинейно. В этом случае может быть интересно, что изображения вставляются с матрицей преобразования [0,1 0 0 0,1 0 0] в действие, в то время как текст рисуется с матрицей преобразования идентичности.

ПОДРОБНО.Подробнее

Это запись # 200; другая водяными запись строится аналогично:

dataset 200 with DELETED watermark

водяных знаков производится с помощью XObject изображения. Существует только один XObject изображения, определенный для страницы, которая используется как водяные знаками записей:

4 0 obj 
<</Type/Page/MediaBox [0 0 595 841] 
/Rotate 0/Parent 3 0 R 
/Resources<</ProcSet[/PDF /ImageC /ImageI /Text] 
    /ColorSpace 18 0 R 
    /ExtGState 19 0 R 
    /XObject 20 0 R 
    /Font 21 0 R 
    >> 
/Contents 5 0 R 
>> 
endobj 
20 0 obj 
<</R17 
17 0 R>> 
endobj 
17 0 obj 
<</Subtype/Image 
/ColorSpace 16 0 R 
/Width 128 
/Height 88 
/BitsPerComponent 8 
/Filter/FlateDecode/Length 463>>stream 
[...] 
endstream 
endobj 

В потоке контента это XObject /R17 вставляется непосредственно перед данными записи сам обращается:

q 0.1 0 0 0.1 0 0 cm 
[...] 
q 1045 0 0 495 462.5 6510.5 cm 
/R17 Do 
Q 
q 
10 0 0 10 0 0 cm BT 
0.000487366 Tc 
/R10 8 Tf 
1 0 0 1 86 650.75 Tm 
(Sex : Male)Tj 
0.000304794 Tc 
-64 0 Td 
(Age : 43)Tj 
-0.000140686 Tc 
-1 11.05 Td 
(House No :)Tj 
-0.00002085 Tc 
1 31.95 Td 
(Name :)Tj 
0.00008575 Tc 
/R12 7.15 Tf 
25.5 17.8 Td 
(200)Tj 
ET 
Q 
1547.5 6475 485 535.5 re 
S 
q 
10 0 0 10 0 0 cm BT 
-0.000403137 Tc 
/R14 8 Tf 
1 0 0 1 145.1 708.5 Tm 
(XVX0001081)Tj 
0.000421651 Tc 
/R14 7.05 Tf 
-90.35 -14.95 Td 
(Ramesh Kumar)Tj 
0.000373332 Tc 
/R10 7.05 Tf 
-33 -12.75 Td 
(Father's)Tj 
0.000193787 Tc 
7.3 TL 
(Name)' 
0.00037774 Tc 
/R14 7.05 Tf 
40.25 1.8 Td 
(Ram Singh)Tj 
0 Tc 
2.5 -11.85 Td 
(37)Tj 
0.00137196 Tc 
/R12 7.15 Tf 
-5.25 13.35 Td 
(:)Tj 
Смежные вопросы