├── src └── PDF_Extractor │ ├── maps.txt │ ├── und │ ├── version │ ├── root │ ├── 135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0 │ │ └── info │ ├── 63dbfc08-d0ae-4f27-b9c0-f771e60e5261 │ ├── versions │ ├── copyinfo │ └── 09f344a3-3c9f-4efb-936c-f96032b9634b │ ├── renames.txt │ ├── Form │ └── Форма │ │ ├── module.bsl │ │ └── form │ └── ObjectModule.bsl ├── PDF_Extractor.epf └── README.md /src/PDF_Extractor/maps.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/PDF_Extractor/und/version: -------------------------------------------------------------------------------- 1 | { 2 | {216,0} 3 | } -------------------------------------------------------------------------------- /src/PDF_Extractor/und/root: -------------------------------------------------------------------------------- 1 | {2,09f344a3-3c9f-4efb-936c-f96032b9634b,} -------------------------------------------------------------------------------- /src/PDF_Extractor/und/135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0/info: -------------------------------------------------------------------------------- 1 | {3,1,0,"",0} -------------------------------------------------------------------------------- /PDF_Extractor.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/salexdv/pdfextractor_1c/HEAD/PDF_Extractor.epf -------------------------------------------------------------------------------- /src/PDF_Extractor/und/63dbfc08-d0ae-4f27-b9c0-f771e60e5261: -------------------------------------------------------------------------------- 1 | {1, 2 | {1, 3 | {0, 4 | {9, 5 | {0, 6 | {0,0,63dbfc08-d0ae-4f27-b9c0-f771e60e5261},"Форма", 7 | {1,"ru","Форма"},""},0,0}, 8 | {0} 9 | } 10 | },0} -------------------------------------------------------------------------------- /src/PDF_Extractor/renames.txt: -------------------------------------------------------------------------------- 1 | 09f344a3-3c9f-4efb-936c-f96032b9634b-->und\09f344a3-3c9f-4efb-936c-f96032b9634b 2 | 135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0\info-->und\135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0\info 3 | 135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0\text-->ObjectModule.bsl 4 | 63dbfc08-d0ae-4f27-b9c0-f771e60e5261-->und\63dbfc08-d0ae-4f27-b9c0-f771e60e5261 5 | 63dbfc08-d0ae-4f27-b9c0-f771e60e5261.0-->Form\Форма 6 | copyinfo-->und\copyinfo 7 | root-->und\root 8 | version-->und\version 9 | versions-->und\versions 10 | -------------------------------------------------------------------------------- /src/PDF_Extractor/und/versions: -------------------------------------------------------------------------------- 1 | {1,9,"",0be21534-9f7e-480b-a784-c6619be2b607,"versions",d4af15d8-ea3b-48c8-9e69-3be7de74f83c,"63dbfc08-d0ae-4f27-b9c0-f771e60e5261",2e730660-4b2c-4e03-bbec-7ba371a235d6,"135a11f1-c6d8-4201-bb9c-64b1e8d469a9.0",88f521aa-c500-435c-a879-61113c47369c,"root",1c394835-6bd4-48bc-801e-05eb3d73ac12,"version",21053380-da2b-4935-b84a-438d4c28e8e0,"09f344a3-3c9f-4efb-936c-f96032b9634b",e1e1b5ea-bebd-4570-9ed7-a603a31e9ea3,"63dbfc08-d0ae-4f27-b9c0-f771e60e5261.0",581b8b0a-b8fc-4cd1-95c4-cbadd9d2caf0,"copyinfo",7cb10a23-44a5-429d-b173-8bf053a649b7} -------------------------------------------------------------------------------- /src/PDF_Extractor/und/copyinfo: -------------------------------------------------------------------------------- 1 | {4, 2 | {3, 3 | {1315855e-50d7-48ba-8d1e-7e4fc2ccb72a,1315855e-50d7-48ba-8d1e-7e4fc2ccb72a,1, 4 | {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,"КаталогPoppler"} 5 | }, 6 | {135a11f1-c6d8-4201-bb9c-64b1e8d469a9,135a11f1-c6d8-4201-bb9c-64b1e8d469a9,1, 7 | {c3831ec8-d8d5-4f93-8a22-f9bfae07327f,"PDF_Extractor"} 8 | }, 9 | {63dbfc08-d0ae-4f27-b9c0-f771e60e5261,63dbfc08-d0ae-4f27-b9c0-f771e60e5261,1, 10 | {d5b0e5ed-256d-401c-9c36-f630cafd8a62,"Форма"} 11 | } 12 | }, 13 | {1, 14 | {64e74960-5e33-4ba0-a41f-e96dd72433a6,135a11f1-c6d8-4201-bb9c-64b1e8d469a9,0} 15 | }, 16 | {1, 17 | { 18 | {0,1315855e-50d7-48ba-8d1e-7e4fc2ccb72a},64e74960-5e33-4ba0-a41f-e96dd72433a6, 19 | {-1} 20 | } 21 | }, 22 | {0,0}, 23 | {0} 24 | } -------------------------------------------------------------------------------- /src/PDF_Extractor/und/09f344a3-3c9f-4efb-936c-f96032b9634b: -------------------------------------------------------------------------------- 1 | {1, 2 | {09f344a3-3c9f-4efb-936c-f96032b9634b},1, 3 | {c3831ec8-d8d5-4f93-8a22-f9bfae07327f, 4 | {1, 5 | {4,64e74960-5e33-4ba0-a41f-e96dd72433a6,d26e970c-f655-4b11-bec4-82e56d54d6e6, 6 | {0, 7 | {0, 8 | {0,0,135a11f1-c6d8-4201-bb9c-64b1e8d469a9},"PDF_Extractor", 9 | {1,"ru","PDF Extractor"},"ver. 20200529"} 10 | },63dbfc08-d0ae-4f27-b9c0-f771e60e5261,"",00000000-0000-0000-0000-000000000000},4, 11 | {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, 12 | {3daea016-69b7-4ed4-9453-127911372fe6,0}, 13 | {d5b0e5ed-256d-401c-9c36-f630cafd8a62,1,63dbfc08-d0ae-4f27-b9c0-f771e60e5261}, 14 | {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,3, 15 | { 16 | {0, 17 | {25, 18 | {2, 19 | {0, 20 | {0,0,1315855e-50d7-48ba-8d1e-7e4fc2ccb72a},"КаталогPoppler", 21 | {1,"ru","Каталог poppler"},""}, 22 | {"Pattern", 23 | {"S"} 24 | } 25 | },0, 26 | {0}, 27 | {0},0,"",0, 28 | {"U"}, 29 | {"U"},0,00000000-0000-0000-0000-000000000000,2,0, 30 | {5004,0}, 31 | {3,0,0}, 32 | {0,0},0, 33 | {0}, 34 | {"S",""},0} 35 | },0}, 36 | { 37 | {0, 38 | {25, 39 | {2, 40 | {0, 41 | {0,0,908d2583-06b5-4bfd-a879-d1a1f4474453},"ОписаниеОшибки", 42 | {1,"ru","Описание ошибки"},""}, 43 | {"Pattern", 44 | {"S"} 45 | } 46 | },0, 47 | {0}, 48 | {0},0,"",0, 49 | {"U"}, 50 | {"U"},0,00000000-0000-0000-0000-000000000000,2,0, 51 | {5004,0}, 52 | {3,0,0}, 53 | {0,0},0, 54 | {0}, 55 | {"S",""},0} 56 | },0}, 57 | { 58 | {0, 59 | {25, 60 | {2, 61 | {0, 62 | {0,0,ee312d58-0d83-4feb-8385-673e9d598bf3},"ПоследняяКоманда", 63 | {1,"ru","Последняя команда"},""}, 64 | {"Pattern", 65 | {"S"} 66 | } 67 | },0, 68 | {0}, 69 | {0},0,"",0, 70 | {"U"}, 71 | {"U"},0,00000000-0000-0000-0000-000000000000,2,0, 72 | {5004,0}, 73 | {3,0,0}, 74 | {0,0},0, 75 | {0}, 76 | {"S",""},0} 77 | },0} 78 | } 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PDFExtractor_1C 2 | «Класс» - обёртка для упрощения использования возможностей Poppler из 1С. Позволяет просто извлекать информацию из PDF-файлов в виде изображений и текста. 3 | 4 | Мой велосипед для извлечения информации из PDF. 5 | 6 | Изначально было необходимо находить и сохранять содержание книги в виде картинки для сайта из PDF-файлов, предоставляемых издательством, но применений можно найти массу. 7 | 8 | По сути представляет из себя обёртку для более удобного использования библиотеки [Poppler](https://ru.wikipedia.org/wiki/Poppler), поэтому последний должен быть установлен на компьютере. Poppler можно прописать в PATH, либо указывать путь к библиотеке непосредственно в обработке. 9 | 10 | ## Возможности 11 | * Извлечение страниц файла в виде изображений (настраивается качество, номера страниц, цветность, форма) 12 | * Извлечение страниц файла в виде текста 13 | * Извлечение отдельных изображения, содержащихся в PDF-документе 14 | * Разбиение (разделение) одного файла на несколько 15 | * Объединение нескольких файлов в один 16 | 17 | ## Примеры использования: 18 | #### 1. Сохраняем каждую страницу файла, как отдельное изображение 19 | ```bsl 20 | PDF_Extractor = Обработки.PDF_Extractor.Создать(); // Если встроили обработку в конфигурацию 21 | PDF_Extractor.КаталогPoppler = ""; // Можно не указывать, если poppler прописан в PATH 22 | Изображения = PDF_Extractor.ФайлВИзображения("D:\my_file.pdf"); 23 | 24 | Для Каждого Изображение ИЗ Изображения Цикл 25 | Картинка = Новый Картинка(Изображение.ДвоичныеДанные); 26 | // Дальнейшая работа с изображением 27 | КонецЦикла; 28 | ``` 29 | 30 | #### 2. Извлечение текста 31 | ```bsl 32 | PDF_Extractor = Обработки.PDF_Extractor.Создать(); 33 | Страницы = PDF_Extractor.ФайлВТекст("D:\my_file.pdf"); 34 | 35 | Для Каждого Страница ИЗ Страницы Цикл 36 | Если 0 < Найти(Страница.Текст, "что-то") Тогда 37 | // Обработка текста, поиск и т.п. 38 | КонецЕсли; 39 | КонецЦикла; 40 | ``` 41 | 42 | #### 3. Извлечение встроенных картинок 43 | ```bsl 44 | PDF_Extractor = Обработки.PDF_Extractor.Создать(); 45 | Изображения = PDF_Extractor.ИзображенияИзФайла("D:\my_file.pdf"); 46 | 47 | Для Каждого Изображение ИЗ Изображения Цикл 48 | НомерСтраницы = Изображение.НомерСтраницы; // Возможно, ищем картинку 49 | НомерКартинки = Изображение.НомерИзображения; // на конкретной странице 50 | Расширение = Изображение.Расширение; 51 | Картинка = Новый Картинка(Изображение.ДвоичныеДанные); 52 | // Дальнейшая работа с изображением 53 | КонецЦикла; 54 | ``` 55 | 56 | #### 4. Разбиваем один файл на несколько 57 | ```bsl 58 | PDF_Extractor = Обработки.PDF_Extractor.Создать(); 59 | Файлы = PDF_Extractor.РазбитьФайл("D:\my_file.pdf", "D:\Каталог"); // Каталог можно не указывать 60 | 61 | Для Каждого Файл ИЗ Файлы Цикл 62 | Сообщить("Создан файл: " + Файл.ПолноеИмя); 63 | КонецЦикла; 64 | ``` 65 | 66 | #### 5. Склеиваем несколько файлов в один 67 | ```bsl 68 | ФайлыДляОбъединения = Новый Массив(); 69 | ФайлыДляОбъединения.Добавить("D:\small_file_1.pdf"); 70 | ФайлыДляОбъединения.Добавить("D:\small_file_2.pdf"); 71 | ФайлыДляОбъединения.Добавить("D:\small_file_3.pdf"); 72 | 73 | PDF_Extractor = Обработки.PDF_Extractor.Создать(); 74 | Файл = PDF_Extractor.ОбъединитьНесколькоФайлов(ФайлыДляОбъединения, "D:\big_file.pdf"); 75 | ОтправитьФайл("mail@example.com", Файл); // Или любая другая обработка полученного файла 76 | ``` 77 | 78 | #### 6. Получение служебной информации о файле 79 | ```bsl 80 | Сообщить(PDF_Extractor.СтрокаИнформацииОФайле("D:\my_file.pdf")); 81 | // или так 82 | Информация = PDF_Extractor.ИнформацияОФайле("D:\my_file.pdf")); 83 | Для Каждого Поле ИЗ Информация Цикл 84 | Сообщить(Поле.Ключ + " - " + Поле.Значение); 85 | КонецЦикла; 86 | ``` 87 | 88 | ## Особенности 89 | 90 | Так как это всё-таки обёртка над библиотекой, то есть некоторая неиформативность в сообщениях об ошибках. Наверно, можно сделать вывод ошибок более понятным, но я, если честно, не очень старался в этой части. 91 | 92 | Все методы в случае ошибки возвращают Неопределено. Если это произошло, вызываем метод ПоследняяОшибка() и получаем примерно следующее: 93 | 94 | ```bsl 95 | Сообщить(ПоследняяОшибка()); 96 | 97 | // Не удалось сохранить страницу файла 98 | // pdftoppm "D:\383251.pdf" -r 200 -f 12 -l 12 -jpeg > "C:\Windows\Temp\v8_2F17_be.jpeg" 99 | ``` 100 | 101 | Используя команду, на которой вывалилась ошибка можно определить, что пошло не так. 102 | 103 | ### Тестировалось в следующих условиях: 104 | * ОС Windows 10 x64, релизы платформы 8.2.19.116 и 8.3.16.1148 105 | * ОС Ubuntu 18.04 x64, релиз платформы 8.3.15.1565 -------------------------------------------------------------------------------- /src/PDF_Extractor/Form/Форма/module.bsl: -------------------------------------------------------------------------------- 1 | 2 | Процедура КаталогPopplerНачалоВыбора(Элемент, СтандартнаяОбработка) 3 | 4 | СтандартнаяОбработка = Ложь; 5 | 6 | Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); 7 | Диалог.Каталог = КаталогPoppler; 8 | 9 | Если Диалог.Выбрать() Тогда 10 | КаталогPoppler = Диалог.Каталог; 11 | КонецЕсли; 12 | 13 | КонецПроцедуры 14 | 15 | Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка) 16 | 17 | СтандартнаяОбработка = Ложь; 18 | 19 | Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 20 | Диалог.Фильтр = "Файлы PDF|*.pdf"; 21 | Диалог.ПолноеИмяФайла = ИмяФайла; 22 | 23 | Если Диалог.Выбрать() Тогда 24 | ИмяФайла = Диалог.ПолноеИмяФайла; 25 | КонецЕсли; 26 | 27 | КонецПроцедуры 28 | 29 | Процедура ПриЗакрытии() 30 | 31 | СохранитьЗначение("PDF_Extractor_КаталогPoppler" , КаталогPoppler); 32 | СохранитьЗначение("PDF_Extractor_ИмяФайла" , ИмяФайла); 33 | СохранитьЗначение("PDF_Extractor_ПерваяСтраница" , ПерваяСтраница); 34 | СохранитьЗначение("PDF_Extractor_ПоследняяСтраница" , ПоследняяСтраница); 35 | СохранитьЗначение("PDF_Extractor_ЧБ" , ЧБ); 36 | СохранитьЗначение("PDF_Extractor_Формат" , Формат); 37 | СохранитьЗначение("PDF_Extractor_Качество" , Качество); 38 | 39 | КонецПроцедуры 40 | 41 | Процедура ПриОткрытии() 42 | 43 | КаталогPoppler = ВосстановитьЗначение("PDF_Extractor_КаталогPoppler"); 44 | ИмяФайла = ВосстановитьЗначение("PDF_Extractor_ИмяФайла"); 45 | 46 | ПерваяСтраница = ВосстановитьЗначение("PDF_Extractor_ПерваяСтраница"); 47 | ПоследняяСтраница = ВосстановитьЗначение("PDF_Extractor_ПоследняяСтраница"); 48 | ЧБ = ВосстановитьЗначение("PDF_Extractor_ЧБ"); 49 | Формат = ВосстановитьЗначение("PDF_Extractor_Формат"); 50 | Качество = ВосстановитьЗначение("PDF_Extractor_Качество"); 51 | 52 | Если НЕ ЗначениеЗаполнено(Формат) Тогда 53 | Формат = "jpeg"; 54 | КонецЕсли; 55 | 56 | Если НЕ ЗначениеЗаполнено(Качество) Тогда 57 | Качество = 200; 58 | КонецЕсли; 59 | 60 | КонецПроцедуры 61 | 62 | Процедура СтраницыКакИзображенияНажатие(Элемент) 63 | 64 | Если ЗначениеЗаполнено(ИмяФайла) Тогда 65 | 66 | Состояние("Извлечение страниц..."); 67 | 68 | Изображения = ФайлВИзображения(ИмяФайла, Качество, ПерваяСтраница, ПоследняяСтраница, Формат, ЧБ); 69 | 70 | Состояние("Вывод результата..."); 71 | 72 | Если Изображения <> Неопределено Тогда 73 | 74 | Счетчик = 0; 75 | КоличествоСтолбцов = 5; 76 | 77 | Если ТипЗнч(ДобавленныеЭлементы) = Тип("Массив") Тогда 78 | 79 | Для Каждого Элемент ИЗ ДобавленныеЭлементы Цикл 80 | ЭлементыФормы.Удалить(Элемент); 81 | КонецЦикла; 82 | 83 | ДобавленныеЭлементы.Очистить(); 84 | 85 | Иначе 86 | 87 | ДобавленныеЭлементы = Новый Массив(); 88 | 89 | КонецЕсли; 90 | 91 | Для Каждого Изображение ИЗ Изображения Цикл 92 | 93 | Если НЕ Изображение.Ошибка Тогда 94 | 95 | ПокаКартинки = ЭлементыФормы.Добавить(Тип("ПолеКартинки"), "Картинка_" + Счетчик, , ЭлементыФормы.ПанельРезультатов); 96 | ПокаКартинки.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная); 97 | ПокаКартинки.Лево = 100 * (Счетчик % КоличествоСтолбцов); 98 | ПокаКартинки.Верх = Цел((Счетчик / КоличествоСтолбцов)) * 100; 99 | ПокаКартинки.Высота = 100; 100 | ПокаКартинки.Ширина = 100; 101 | ПокаКартинки.РазмерКартинки = РазмерКартинки.Пропорционально; 102 | ПокаКартинки.Гиперссылка = Истина; 103 | ПокаКартинки.РазрешитьНачалоПеретаскивания = Ложь; 104 | ПокаКартинки.ЦветРамки = WebЦвета.Черный; 105 | ПокаКартинки.Подсказка = "Страница №" + Изображение.НомерСтраницы; 106 | ПокаКартинки.Картинка = Новый Картинка(Изображение.ДвоичныеДанные); 107 | 108 | ДобавленныеЭлементы.Добавить(ПокаКартинки); 109 | 110 | Счетчик = Счетчик + 1; 111 | 112 | КонецЕсли; 113 | 114 | КонецЦикла; 115 | 116 | Иначе 117 | 118 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 119 | 120 | КонецЕсли; 121 | 122 | Иначе 123 | 124 | Предупреждение("Не выбран файл!"); 125 | 126 | КонецЕсли; 127 | 128 | КонецПроцедуры 129 | 130 | Процедура ИзвлечьИзображенияНажатие(Элемент) 131 | 132 | Если ЗначениеЗаполнено(ИмяФайла) Тогда 133 | 134 | Состояние("Извлечение изображений..."); 135 | 136 | Результаты = ИзображенияИзФайла(ИмяФайла, ПерваяСтраница, ПоследняяСтраница); 137 | 138 | Состояние("Вывод результата..."); 139 | 140 | Если Результаты <> Неопределено Тогда 141 | 142 | Счетчик = 0; 143 | КоличествоСтолбцов = 5; 144 | 145 | Если ТипЗнч(ДобавленныеЭлементы) = Тип("Массив") Тогда 146 | 147 | Для Каждого Элемент ИЗ ДобавленныеЭлементы Цикл 148 | ЭлементыФормы.Удалить(Элемент); 149 | КонецЦикла; 150 | 151 | ДобавленныеЭлементы.Очистить(); 152 | 153 | Иначе 154 | 155 | ДобавленныеЭлементы = Новый Массив(); 156 | 157 | КонецЕсли; 158 | 159 | Для Каждого Результат ИЗ Результаты Цикл 160 | 161 | ПокаКартинки = ЭлементыФормы.Добавить(Тип("ПолеКартинки"), "Картинка_" + Счетчик, , ЭлементыФормы.ПанельРезультатов); 162 | ПокаКартинки.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная); 163 | ПокаКартинки.Лево = 100 * (Счетчик % КоличествоСтолбцов); 164 | ПокаКартинки.Верх = Цел((Счетчик / КоличествоСтолбцов)) * 100; 165 | ПокаКартинки.Высота = 100; 166 | ПокаКартинки.Ширина = 100; 167 | ПокаКартинки.РазмерКартинки = РазмерКартинки.Пропорционально; 168 | ПокаКартинки.Гиперссылка = Истина; 169 | ПокаКартинки.РазрешитьНачалоПеретаскивания = Ложь; 170 | ПокаКартинки.ЦветРамки = WebЦвета.Черный; 171 | ПокаКартинки.Подсказка = "Страница №" + Результат.НомерСтраницы + ", изображение №" + Результат.НомерИзображения + ", формат " + Результат.Расширение; 172 | ПокаКартинки.Картинка = Новый Картинка(Результат.ДвоичныеДанные); 173 | 174 | ДобавленныеЭлементы.Добавить(ПокаКартинки); 175 | 176 | Счетчик = Счетчик + 1; 177 | 178 | КонецЦикла; 179 | 180 | Иначе 181 | 182 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 183 | 184 | КонецЕсли; 185 | 186 | Иначе 187 | 188 | Предупреждение("Не выбран файл!"); 189 | 190 | КонецЕсли; 191 | 192 | КонецПроцедуры 193 | 194 | Процедура ИзвлечьКакТекстНажатие(Элемент) 195 | 196 | Если ЗначениеЗаполнено(ИмяФайла) Тогда 197 | 198 | Страницы = ФайлВТекст(ИмяФайла, ПерваяСтраница, ПоследняяСтраница); 199 | 200 | Если Страницы <> Неопределено Тогда 201 | 202 | Файл = Новый ТекстовыйДокумент(); 203 | 204 | Для Каждого Страница ИЗ Страницы Цикл 205 | 206 | Если НЕ Страница.Ошибка Тогда 207 | Файл.ДобавитьСтроку("СТРАНИЦА №" + Страница.НомерСтраницы); 208 | Файл.ДобавитьСтроку(Страница.Текст); 209 | Файл.ДобавитьСтроку(Символы.ПС + "///////////////////////////////////////////////////////////" + Символы.ПС); 210 | КонецЕсли; 211 | 212 | КонецЦикла; 213 | 214 | Файл.Показать("Текст из файла " + ИмяФайла); 215 | 216 | Иначе 217 | 218 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 219 | 220 | КонецЕсли; 221 | 222 | Иначе 223 | 224 | Предупреждение("Не выбран файл!"); 225 | 226 | КонецЕсли; 227 | 228 | КонецПроцедуры 229 | 230 | Процедура ИнформацияОФайлеНажатие(Элемент) 231 | 232 | Если ЗначениеЗаполнено(ИмяФайла) Тогда 233 | 234 | Информация = СтрокаИнформацииОФайле(ИмяФайла); 235 | 236 | Если Информация <> Неопределено Тогда 237 | Сообщить(Информация, СтатусСообщения.Информация); 238 | Иначе 239 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 240 | КонецЕсли; 241 | 242 | Иначе 243 | 244 | Предупреждение("Не выбран файл!"); 245 | 246 | КонецЕсли; 247 | 248 | КонецПроцедуры 249 | 250 | Процедура ОсновныеДействияФормыРазбитьФайл(Кнопка) 251 | 252 | СтандартнаяОбработка = Ложь; 253 | 254 | Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 255 | Диалог.Фильтр = "Файлы PDF|*.pdf"; 256 | Диалог.Заголовок = "Выберите файл для разбиения"; 257 | Диалог.ПолноеИмяФайла = ИмяФайла; 258 | 259 | Если Диалог.Выбрать() Тогда 260 | 261 | Файл = Диалог.ПолноеИмяФайла; 262 | 263 | Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); 264 | Диалог.Заголовок = "Выберите каталог для сохранения результата"; 265 | 266 | Если Диалог.Выбрать() Тогда 267 | 268 | Файлы = РазбитьФайл(Файл, Диалог.Каталог); 269 | 270 | Если Файлы <> Неопределено Тогда 271 | 272 | Для Каждого Файл ИЗ Файлы Цикл 273 | Сообщить("Создан файл: " + Файл.ПолноеИмя, СтатусСообщения.Информация); 274 | КонецЦикла; 275 | 276 | Иначе 277 | 278 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 279 | 280 | КонецЕсли; 281 | 282 | КонецЕсли; 283 | 284 | КонецЕсли; 285 | 286 | КонецПроцедуры 287 | 288 | Процедура ОсновныеДействияФормыОбъединитьФайлы(Кнопка) 289 | 290 | СтандартнаяОбработка = Ложь; 291 | 292 | Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); 293 | Диалог.Фильтр = "Файлы PDF|*.pdf"; 294 | Диалог.Заголовок = "Выберите файлы для объединения"; 295 | Диалог.МножественныйВыбор = Истина; 296 | 297 | Если Диалог.Выбрать() Тогда 298 | 299 | Файлы = Диалог.ВыбранныеФайлы; 300 | 301 | Диалог.МножественныйВыбор = Ложь; 302 | Диалог.Заголовок = "Выберите файл для сохранения результата"; 303 | 304 | Если Диалог.Выбрать() Тогда 305 | 306 | Файл = ОбъединитьНесколькоФайлов(Файлы, Диалог.ПолноеИмяФайла); 307 | 308 | Если Файл <> Неопределено Тогда 309 | Сообщить("Создан файл: " + Файл, СтатусСообщения.Информация); 310 | Иначе 311 | Сообщить(ПоследняяОшибка(), СтатусСообщения.Внимание); 312 | КонецЕсли; 313 | 314 | КонецЕсли; 315 | 316 | КонецЕсли; 317 | 318 | КонецПроцедуры 319 | -------------------------------------------------------------------------------- /src/PDF_Extractor/ObjectModule.bsl: -------------------------------------------------------------------------------- 1 | 2 | // Запускает команду на выполнение 3 | // 4 | Процедура ЗапуститьКоманду(Команда) 5 | 6 | ПоследняяКоманда = Команда; 7 | 8 | #Если Клиент Тогда 9 | 10 | Если ЭтоLinux() Тогда 11 | КомандаСистемы(Команда); 12 | Иначе 13 | Попытка 14 | Shell = Новый COMОбъект("WScript.Shell"); 15 | Shell.Run("cmd /c " + СтрЗаменить(Команда, "\", "\\"), 0, Истина); 16 | Исключение 17 | КомандаСистемы(Команда); 18 | КонецПопытки; 19 | КонецЕсли; 20 | 21 | #КонецЕсли 22 | 23 | КонецПроцедуры 24 | 25 | // Возвращает информацию о последней ошибке 26 | // 27 | Функция ПоследняяОшибка() Экспорт 28 | 29 | Возврат ОписаниеОшибки + Символы.ПС + ПоследняяКоманда; 30 | 31 | КонецФункции 32 | 33 | // Объединяет два массива в один 34 | // 35 | // Параметры: 36 | // Приемник (Массив) - Массив приемник 37 | // Источник (Массив) - Массив источник 38 | // 39 | // Возвращаемое значение: 40 | // Массив - Результат объединения 41 | // 42 | Процедура ОбъединитьМассивы(Приемник, Источник) 43 | 44 | Для Каждого Значение ИЗ Источник Цикл 45 | Приемник.Добавить(Значение); 46 | КонецЦикла; 47 | Источник = Неопределено; 48 | 49 | КонецПроцедуры 50 | 51 | // Определяет, относится текущая ОС к linux 52 | // 53 | // Возвращаемое значение: 54 | // Булево 55 | // 56 | Функция ЭтоLinux() 57 | 58 | СистемнаяИнформация = Новый СистемнаяИнформация(); 59 | 60 | Возврат (0 < Найти(Строка(СистемнаяИнформация.ТипПлатформы), "Linux")); 61 | 62 | КонецФункции 63 | 64 | // Возвращает разделитель пути в зависимости от ОС 65 | // 66 | Функция РазделительПути() 67 | 68 | СистемнаяИнформация = Новый СистемнаяИнформация(); 69 | Возврат ?(ЭтоLinux(), "/", "\"); 70 | 71 | КонецФункции 72 | 73 | // Возвращает путь к каталогу Poppler, если он задан 74 | // 75 | Функция ПолучитьКаталогPopler() 76 | 77 | Каталог = КаталогPoppler; 78 | 79 | Если ЗначениеЗаполнено(Каталог) Тогда 80 | 81 | СистемнаяИнформация = Новый СистемнаяИнформация(); 82 | 83 | Разделитель = РазделительПути(); 84 | 85 | Если Прав(Каталог, 1) <> Разделитель Тогда 86 | Каталог = Каталог + Разделитель; 87 | КонецЕсли; 88 | 89 | КонецЕсли; 90 | 91 | Возврат Каталог; 92 | 93 | КонецФункции 94 | 95 | // Сохраняет текст ошибки и возвращает Неопределено 96 | // 97 | // Параметры: 98 | // ТекстОшибки (Строка) - Текст возникшей ошибки 99 | // 100 | // Возвращаемое значение: 101 | // Неопределено 102 | // 103 | Функция Ошибка(ТекстОшибки) 104 | 105 | ОписаниеОшибки = ТекстОшибки; 106 | Возврат Неопределено; 107 | 108 | КонецФункции 109 | 110 | // Возвращает информацию о PDF-файле в виде соотвествия Параметр-Значение 111 | // 112 | // Параметры: 113 | // ПутьКФайлу (Строка) - Файл, информацию о котором необходимо получить 114 | // 115 | // Возвращаемое значение: 116 | // Соответствие - Сооответствие, где ключ - имя параметра 117 | // Неопределено - в случае ошибки 118 | // 119 | Функция ИнформацияОФайле(ПутьКФайлу) Экспорт 120 | 121 | ФайлНаДиске = Новый Файл(ПутьКФайлу); 122 | 123 | Если ФайлНаДиске.Существует() Тогда 124 | 125 | Вывод = ПолучитьИмяВременногоФайла("txt"); 126 | 127 | Обработчик = ПолучитьКаталогPopler() + "pdfinfo"; 128 | Команда = Обработчик + " """ + ПутьКФайлу + """ > """ + Вывод + """"; 129 | 130 | ЗапуститьКоманду(Команда); 131 | 132 | ФайлНаДиске = Новый Файл(Вывод); 133 | 134 | Если ФайлНаДиске.Существует() Тогда 135 | 136 | Информация = Новый Соответствие(); 137 | 138 | Файл = Новый ЧтениеТекста(Вывод); 139 | 140 | Стр = Файл.ПрочитатьСтроку(); 141 | 142 | Пока Стр <> Неопределено Цикл 143 | 144 | Подстроки = СтрЗаменить(Стр, ":", Символы.ПС); 145 | Параметр = СокрЛП(СтрПолучитьСтроку(Подстроки, 1)); 146 | Значение = СокрЛП(СтрПолучитьСтроку(Подстроки, 2)); 147 | 148 | Информация.Вставить(Параметр, Значение); 149 | 150 | Стр = Файл.ПрочитатьСтроку(); 151 | 152 | КонецЦикла; 153 | 154 | Файл.Закрыть(); 155 | 156 | УдалитьФайлы(Вывод); 157 | 158 | Возврат Информация; 159 | 160 | Иначе 161 | 162 | Возврат Ошибка("Не удалось получить информацию о файле"); 163 | 164 | КонецЕсли; 165 | 166 | Иначе 167 | 168 | Возврат Ошибка("Файл """ + ПутьКФайлу+ """ отсутствует"); 169 | 170 | КонецЕсли; 171 | 172 | КонецФункции 173 | 174 | // Возвращает информацию о PDF-файле в виде строки 175 | // 176 | // Параметры: 177 | // ПутьКФайлу (Строка) - Файл, информацию о котором необходимо получить 178 | // 179 | // Возвращаемое значение: 180 | // Строка - Строка, содержащая всю информацию о файле 181 | // Неопределено - в случае ошибки 182 | // 183 | Функция СтрокаИнформацииОФайле(ПутьКФайлу) Экспорт 184 | 185 | Информация = ИнформацияОФайле(ПутьКФайлу); 186 | 187 | Если Информация <> Неопределено Тогда 188 | 189 | Строка = ""; 190 | 191 | Для Каждого Обход ИЗ Информация Цикл 192 | 193 | Если ЗначениеЗаполнено(Строка) Тогда 194 | Строка = Строка + Символы.ПС; 195 | КонецЕсли; 196 | 197 | Строка = Строка + Обход.Ключ + ": " + Обход.Значение; 198 | 199 | КонецЦикла; 200 | 201 | Возврат Строка; 202 | 203 | Иначе 204 | 205 | Возврат Неопределено; 206 | 207 | КонецЕсли; 208 | 209 | КонецФункции 210 | 211 | // Возвращает информацию о количестве страниц PDF-файла. 212 | // 213 | // Параметры: 214 | // ПутьКФайлу (Строка) - Файл, количество страниц которого требуется получить 215 | // 216 | // Возвращаемое значение: 217 | // Число - число страниц файла 218 | // 219 | Функция ПолучитьКоличествоСтраниц(ПутьКФайлу) Экспорт 220 | 221 | Информация = ИнформацияОФайле(ПутьКФайлу); 222 | 223 | Если Информация <> Неопределено Тогда 224 | 225 | Попытка 226 | Возврат Число(Информация.Получить("Pages")); 227 | Исключение 228 | Возврат Ошибка("В информации о файле нет данных о количестве страниц"); 229 | КонецПопытки; 230 | 231 | Иначе 232 | 233 | Возврат Ошибка("Указаны некорректные номера страниц"); 234 | 235 | КонецЕсли; 236 | 237 | КонецФункции 238 | 239 | // Возвращает массив изображений страниц PDF-файла. 240 | // 241 | // Параметры: 242 | // ПутьКФайлу (Строка) - Файл, из котого требуется получить страницы в виде изображений 243 | // DPI (Число) - Качество изображений в DPI (по умолчанию 200 DPI). 244 | // ПерваяСтраница (Число) - Номер первой извлекаемой страницы 245 | // ПоследняяСтраница (Число) - Номер последней извлекаемой страницы 246 | // Формат (Строка) - формат изображения (по умолчанию jpeg) 247 | // Возможные значения: 248 | // - "jpeg" 249 | // - "png" 250 | // - "tiff" 251 | // ЧерноБелый (Булево) - получение изображений в черно-белом формате (оттенки серого) 252 | // 253 | // Возвращаемое значение: 254 | // Массив[Структура(НомерСтраницы, ДвоичныеДанные, Размер, Ошибка)] - массив с изображениями, 255 | // где 256 | // НомерСтраницы (Число) - номер страницы, изображение которой получено 257 | // ДвоичныеДанные (ДвоичныеДанные) - данные изображения 258 | // Размер (Число) - размер изображения в байтах 259 | // Ошибка (Булево) - признак того, что при получении этой страницы произошла ошибка 260 | // Неопределено - в случае ошибки 261 | // 262 | Функция ФайлВИзображения(ПутьКФайлу, DPI = 200, ПерваяСтраница = 0, ПоследняяСтраница = 0, Формат = "jpeg", ЧерноБелый = Ложь) Экспорт 263 | 264 | ФайлНаДиске = Новый Файл(ПутьКФайлу); 265 | 266 | Если ФайлНаДиске.Существует() Тогда 267 | 268 | Если ПерваяСтраница = 0 Тогда 269 | ПерваяСтраница = 1; 270 | КонецЕсли; 271 | 272 | Если ПоследняяСтраница = 0 Тогда 273 | ПоследняяСтраница = ПолучитьКоличествоСтраниц(ПутьКФайлу); 274 | КонецЕсли; 275 | 276 | Если ПоследняяСтраница = Неопределено Тогда 277 | Возврат Неопределено; 278 | КонецЕсли; 279 | 280 | Если ПоследняяСтраница < ПерваяСтраница ИЛИ ПерваяСтраница <= 0 Тогда 281 | Возврат Ошибка("Указаны некорректные номера страниц"); 282 | КонецЕсли; 283 | 284 | Обработчик = ПолучитьКаталогPopler() + "pdftoppm"; 285 | 286 | Изображения = Новый Массив(); 287 | ЕстьДанные = Ложь; 288 | 289 | Для НомерСтраницы = ПерваяСтраница По ПоследняяСтраница Цикл 290 | 291 | Параметры = " """ + ПутьКФайлу + """ -r " + Формат(DPI, "ЧГ=0"); 292 | Параметры = Параметры + " -f " + Формат(НомерСтраницы, "ЧГ=0"); 293 | Параметры = Параметры + " -l " + Формат(НомерСтраницы, "ЧГ=0"); 294 | Параметры = Параметры + " -" + Формат; 295 | 296 | Если ЧерноБелый Тогда 297 | Параметры = Параметры + " -gray"; 298 | КонецЕсли; 299 | 300 | Вывод = ПолучитьИмяВременногоФайла(Формат); 301 | 302 | Параметры = Параметры + " > """ + Вывод + """"; 303 | 304 | Команда = Обработчик + Параметры; 305 | 306 | ЗапуститьКоманду(Команда); 307 | 308 | ФайлНаДиске = Новый Файл(Вывод); 309 | 310 | Если ФайлНаДиске.Существует() И 0 < ФайлНаДиске.Размер() Тогда 311 | Изображения.Добавить(Новый Структура("НомерСтраницы, ДвоичныеДанные, Размер, Ошибка", НомерСтраницы, Новый ДвоичныеДанные(Вывод), ФайлНаДиске.Размер(), Ложь)); 312 | ЕстьДанные = Истина; 313 | Иначе 314 | Изображения.Добавить(Новый Структура("НомерСтраницы, ДвоичныеДанные, Размер, Ошибка", НомерСтраницы, Неопределено, 0, Истина)); 315 | Ошибка("Не удалось сохранить страницу файла"); 316 | КонецЕсли; 317 | 318 | УдалитьФайлы(Вывод); 319 | 320 | КонецЦикла; 321 | 322 | Если ЕстьДанные Тогда 323 | Возврат Изображения; 324 | Иначе 325 | Возврат Неопределено; 326 | КонецЕсли; 327 | 328 | Иначе 329 | 330 | Возврат Ошибка("Файл """ + ПутьКФайлу+ """ отсутствует"); 331 | 332 | КонецЕсли; 333 | 334 | КонецФункции 335 | 336 | // Возвращает массив c текстом каждой страницы PDF-файла 337 | // 338 | // Параметры: 339 | // ПутьКФайлу (Строка) - Файл, из котого требуется получить текст 340 | // ПерваяСтраница (Число) - Номер первой извлекаемой страницы 341 | // ПоследняяСтраница (Число) - Номер последней извлекаемой страницы 342 | // 343 | // Возвращаемое значение: 344 | // Массив[Структура(НомерСтраницы, Текст, Ошибка)] - массив с текстом каждой странице, 345 | // где 346 | // НомерСтраницы (Число) - номер страницы, с которой получен текст 347 | // Текст (Строка) - сам текст 348 | // Ошибка (Булево) - признак того, что при получении этой страницы произошла ошибка 349 | // Неопределено - в случае ошибки 350 | // 351 | Функция ФайлВТекст(ПутьКФайлу, ПерваяСтраница = 0, ПоследняяСтраница = 0) Экспорт 352 | 353 | ФайлНаДиске = Новый Файл(ПутьКФайлу); 354 | 355 | Если ФайлНаДиске.Существует() Тогда 356 | 357 | Если ПерваяСтраница = 0 Тогда 358 | ПерваяСтраница = 1; 359 | КонецЕсли; 360 | 361 | Если ПоследняяСтраница = 0 Тогда 362 | ПоследняяСтраница = ПолучитьКоличествоСтраниц(ПутьКФайлу); 363 | КонецЕсли; 364 | 365 | Если ПоследняяСтраница = Неопределено Тогда 366 | Возврат Неопределено; 367 | КонецЕсли; 368 | 369 | Если ПоследняяСтраница < ПерваяСтраница ИЛИ ПерваяСтраница <= 0 Тогда 370 | Возврат Ошибка("Указаны некорректные номера страниц"); 371 | КонецЕсли; 372 | 373 | Обработчик = ПолучитьКаталогPopler() + "pdftotext"; 374 | 375 | Страницы = Новый Массив(); 376 | ЕстьДанные = Ложь; 377 | 378 | Для НомерСтраницы = ПерваяСтраница По ПоследняяСтраница Цикл 379 | 380 | Параметры = " """ + ПутьКФайлу + """";; 381 | Параметры = Параметры + " -f " + Формат(НомерСтраницы, "ЧГ=0"); 382 | Параметры = Параметры + " -l " + Формат(НомерСтраницы, "ЧГ=0"); 383 | 384 | Вывод = ПолучитьИмяВременногоФайла("txt"); 385 | 386 | Параметры = Параметры + " """ + Вывод + """"; 387 | 388 | Команда = Обработчик + Параметры; 389 | 390 | ЗапуститьКоманду(Команда); 391 | 392 | ФайлНаДиске = Новый Файл(Вывод); 393 | 394 | Если ФайлНаДиске.Существует() И 0 < ФайлНаДиске.Размер() Тогда 395 | Файл = Новый ТекстовыйДокумент(); 396 | Файл.Прочитать(Вывод, КодировкаТекста.UTF8); 397 | Страницы.Добавить(Новый Структура("НомерСтраницы, Текст, Ошибка", НомерСтраницы, Файл.ПолучитьТекст(), Ложь)); 398 | ЕстьДанные = Истина; 399 | Иначе 400 | Страницы.Добавить(Новый Структура("НомерСтраницы, Текст, Ошибка", НомерСтраницы, "", Истина)); 401 | Ошибка("Не удалось прочитать страницу файла"); 402 | КонецЕсли; 403 | 404 | УдалитьФайлы(Вывод); 405 | 406 | КонецЦикла; 407 | 408 | Если ЕстьДанные Тогда 409 | Возврат Страницы; 410 | Иначе 411 | Возврат Неопределено; 412 | КонецЕсли; 413 | 414 | Иначе 415 | 416 | Возврат Ошибка("Файл """ + ПутьКФайлу+ """ отсутствует"); 417 | 418 | КонецЕсли; 419 | 420 | КонецФункции 421 | 422 | // Возвращает массив изображений, которые содержаться в PDF-файле. 423 | // 424 | // Параметры: 425 | // ПутьКФайлу (Строка) - Файл, из котого требуется получить страницы в виде изображений 426 | // ПерваяСтраница (Число) - Номер первой извлекаемой страницы 427 | // ПоследняяСтраница (Число) - Номер последней извлекаемой страницы 428 | // 429 | // Возвращаемое значение: 430 | // Массив[Структура(НомерСтраницы, НомерИзображения, Расширение, Размер, ДвоичныеДанные)] - массив изображений, 431 | // где 432 | // НомерСтраницы (Число) - номер страницы, на которой находилось изображение 433 | // НомерИзображения (Число) - порядковый номер изображения на странице 434 | // ДвоичныеДанные (ДвоичныеДанные) - данные изображения 435 | // Расширение (Строка) - расширение файла изображения 436 | // Размер (Число) - размер изображения в байтах 437 | // Неопределено - в случае ошибки 438 | // 439 | Функция ИзображенияИзФайла(ПутьКФайлу, ПерваяСтраница = 0, ПоследняяСтраница = 0) Экспорт 440 | 441 | ФайлНаДиске = Новый Файл(ПутьКФайлу); 442 | 443 | Если ФайлНаДиске.Существует() Тогда 444 | 445 | Если ПерваяСтраница = 0 Тогда 446 | ПерваяСтраница = 1; 447 | КонецЕсли; 448 | 449 | Если ПоследняяСтраница = 0 Тогда 450 | ПоследняяСтраница = ПолучитьКоличествоСтраниц(ПутьКФайлу); 451 | КонецЕсли; 452 | 453 | Если ПоследняяСтраница = Неопределено Тогда 454 | Возврат Неопределено; 455 | КонецЕсли; 456 | 457 | Если ПоследняяСтраница < ПерваяСтраница ИЛИ ПерваяСтраница <= 0 Тогда 458 | Возврат Ошибка("Указаны некорректные номера страниц"); 459 | КонецЕсли; 460 | 461 | ВремКаталог = КаталогВременныхФайлов() + "popler_tmp_img\"; 462 | СоздатьКаталог(ВремКаталог); 463 | 464 | Обработчик = ПолучитьКаталогPopler() + "pdfimages"; 465 | 466 | Параметры = " """ + ПутьКФайлу + """ -all -p"; 467 | Параметры = Параметры + " -f " + Формат(ПерваяСтраница, "ЧГ=0"); 468 | Параметры = Параметры + " -l " + Формат(ПоследняяСтраница, "ЧГ=0"); 469 | Параметры = Параметры + " " + ВремКаталог; 470 | 471 | Изображения = Новый Массив(); 472 | 473 | Команда = Обработчик + Параметры; 474 | 475 | ЗапуститьКоманду(Команда); 476 | 477 | Файлы = НайтиФайлы(ВремКаталог, "*.jpg"); 478 | ОбъединитьМассивы(Файлы, НайтиФайлы(ВремКаталог, "*.png")); 479 | ОбъединитьМассивы(Файлы, НайтиФайлы(ВремКаталог, "*.tif")); 480 | 481 | Для Каждого Файл ИЗ Файлы Цикл 482 | 483 | Если 0 < Файл.Размер() Тогда 484 | 485 | Подстроки = СтрЗаменить(Файл.ИмяБезРасширения, "-", Символы.ПС); 486 | 487 | НомерСтраницы = СтрПолучитьСтроку(Подстроки, 2); 488 | НомерИзображения = СтрПолучитьСтроку(Подстроки, 3); 489 | 490 | Изображения.Добавить(Новый Структура("НомерСтраницы, НомерИзображения, Расширение, Размер, ДвоичныеДанные", НомерСтраницы, НомерИзображения, Файл.Расширение, Файл.Размер(), Новый ДвоичныеДанные(Файл.ПолноеИмя))); 491 | 492 | УдалитьФайлы(Файл.ПолноеИмя); 493 | 494 | КонецЕсли; 495 | 496 | КонецЦикла; 497 | 498 | УдалитьФайлы(ВремКаталог); 499 | 500 | Возврат Изображения; 501 | 502 | Иначе 503 | 504 | Возврат Ошибка("Файл """ + ПутьКФайлу+ """ отсутствует"); 505 | 506 | КонецЕсли; 507 | 508 | КонецФункции 509 | 510 | // Разбивает PDF-файл на отдельные файлы 511 | // 512 | // Параметры: 513 | // ПутьКФайлу (Строка) - Файл, который требуется разбить 514 | // Каталог (Строка) - Каталог, в котором необходимо создать отдельные файлы 515 | // В случает отсутствия каталог создается. Если каталог не указан, 516 | // файлы сохраняются в каталоге временных файлов 517 | // ПерваяСтраница (Число) - Номер первой извлекаемой страницы 518 | // ПоследняяСтраница (Число) - Номер последней извлекаемой страницы 519 | // 520 | // Возвращаемое значение: 521 | // Массив[Файл] - Массив полученных файлов 522 | // Неопределено - в случае ошибки 523 | // 524 | Функция РазбитьФайл(ПутьКФайлу, Каталог = Неопределено, ПерваяСтраница = 0, ПоследняяСтраница = 0) Экспорт 525 | 526 | ФайлНаДиске = Новый Файл(ПутьКФайлу); 527 | 528 | Если ФайлНаДиске.Существует() Тогда 529 | 530 | Если ПерваяСтраница = 0 Тогда 531 | ПерваяСтраница = 1; 532 | КонецЕсли; 533 | 534 | Если ПоследняяСтраница = 0 Тогда 535 | ПоследняяСтраница = ПолучитьКоличествоСтраниц(ПутьКФайлу); 536 | КонецЕсли; 537 | 538 | Если ПоследняяСтраница = Неопределено Тогда 539 | Возврат Неопределено; 540 | КонецЕсли; 541 | 542 | Если ПоследняяСтраница < ПерваяСтраница ИЛИ ПерваяСтраница <= 0 Тогда 543 | Возврат Ошибка("Указаны некорректные номера страниц"); 544 | КонецЕсли; 545 | 546 | КаталогРезультата = Каталог; 547 | 548 | Если ЗначениеЗаполнено(КаталогРезультата) Тогда 549 | Попытка 550 | СоздатьКаталог(КаталогРезультата); 551 | Исключение 552 | Возврат Ошибка("Не удалось создать каталог """ + КаталогРезультата + """ для сохранения файлов"); 553 | КонецПопытки; 554 | Иначе 555 | КаталогРезультата = КаталогВременныхФайлов(); 556 | КонецЕсли; 557 | 558 | Разделитель = РазделительПути(); 559 | 560 | Если Прав(КаталогРезультата, 1) <> Разделитель Тогда 561 | КаталогРезультата = КаталогРезультата + Разделитель; 562 | КонецЕсли; 563 | 564 | Обработчик = ПолучитьКаталогPopler() + "pdfseparate"; 565 | 566 | Параметры = " """ + ПутьКФайлу + """"; 567 | Параметры = Параметры + " -f " + Формат(ПерваяСтраница, "ЧГ=0"); 568 | Параметры = Параметры + " -l " + Формат(ПоследняяСтраница, "ЧГ=0"); 569 | Параметры = Параметры + " " + КаталогРезультата + ФайлНаДиске.ИмяБезРасширения + "_%d.pdf"; 570 | 571 | Файлы = Новый Массив(); 572 | 573 | Команда = Обработчик + Параметры; 574 | 575 | ЗапуститьКоманду(Команда); 576 | 577 | Возврат НайтиФайлы(КаталогРезультата, ФайлНаДиске.ИмяБезРасширения + "_*.pdf"); 578 | 579 | Иначе 580 | 581 | Возврат Ошибка("Файл """ + ПутьКФайлу+ """ отсутствует"); 582 | 583 | КонецЕсли; 584 | 585 | КонецФункции 586 | 587 | // Разбивает PDF-файл на отдельные файлы 588 | // 589 | // Параметры: 590 | // МассивФайлов (Массив[Строка]) - Массив файлов, которые необходимо объединить в один 591 | // ВыходнойФайл (Строка) - Файл, в который необходимо сохранить результат. 592 | // Если файл не указан, то объединенный файл создается в каталоге временных файлов. 593 | // 594 | // Возвращаемое значение: 595 | // Строка - имя созданного файла в случае успешного объединения 596 | // Неопределено - в случае ошибки 597 | // 598 | Функция ОбъединитьНесколькоФайлов(МассивФайлов, ВыходнойФайл = Неопределено) Экспорт 599 | 600 | Если ТипЗнч(МассивФайлов) = Тип("Массив") И 0 < МассивФайлов.Количество() Тогда 601 | 602 | РезультирующийФайл = ВыходнойФайл; 603 | 604 | Если НЕ ЗначениеЗаполнено(РезультирующийФайл) Тогда 605 | РезультирующийФайл = ПолучитьИмяВременногоФайла("pdf"); 606 | КонецЕсли; 607 | 608 | Обработчик = ПолучитьКаталогPopler() + "pdfunite"; 609 | 610 | Параметры = " "; 611 | 612 | Для Каждого ИмяФайла ИЗ МассивФайлов Цикл 613 | Параметры = Параметры + """" + ИмяФайла + """ "; 614 | КонецЦикла; 615 | 616 | Команда = Обработчик + Параметры + РезультирующийФайл; 617 | 618 | ЗапуститьКоманду(Команда); 619 | 620 | ФайлНаДиске = Новый Файл(РезультирующийФайл); 621 | 622 | Если ФайлНаДиске.Существует() Тогда 623 | Возврат РезультирующийФайл; 624 | Иначе 625 | Возврат Ошибка("Не удалось объединить файлы"); 626 | КонецЕсли; 627 | 628 | Иначе 629 | 630 | Возврат Ошибка("Не указаны файлы для объединения или некорректное значение параметра"); 631 | 632 | КонецЕсли; 633 | 634 | КонецФункции 635 | 636 | -------------------------------------------------------------------------------- /src/PDF_Extractor/Form/Форма/form: -------------------------------------------------------------------------------- 1 | {27, 2 | {16, 3 | { 4 | {1,1, 5 | {"ru","PDF Extractor"} 6 | },27,4294967295}, 7 | {09ccdc77-ea1a-4a6d-ab1c-3435eada2433, 8 | {1, 9 | { 10 | {10,1, 11 | {3,4, 12 | {0} 13 | }, 14 | {3,4, 15 | {0} 16 | }, 17 | {6,3,0,1},0, 18 | {3,3, 19 | {-22} 20 | }, 21 | {3,4, 22 | {0} 23 | }, 24 | {3,4, 25 | {0} 26 | }, 27 | {3,3, 28 | {-7} 29 | }, 30 | {3,3, 31 | {-21} 32 | }, 33 | {3,0, 34 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 35 | {1,0} 36 | },21,0,3, 37 | {0,3,1}, 38 | {0,9,1}, 39 | {0,10,1},1, 40 | {0,3,2},5, 41 | {0,3,3}, 42 | {0,6,3}, 43 | {0,8,3}, 44 | {0,9,3}, 45 | {0,10,3},0,0, 46 | {3,1, 47 | {3,0, 48 | {0},"",-1,-1,1,0} 49 | },0,1, 50 | {1,1, 51 | {3, 52 | {1,1, 53 | {"ru","Страница1"} 54 | }, 55 | {3,0, 56 | {3,0, 57 | {0},"",-1,-1,1,0} 58 | },-1,1,1,"Страница1",1} 59 | },1,1,0,4, 60 | {2,8,1,1,1,0,0,0,0}, 61 | {2,7,0,1,2,0,0,0,0}, 62 | {2,509,1,1,3,0,0,8,0}, 63 | {2,421,0,1,4,0,0,33,0},0,8,5,64,0}, 64 | {0} 65 | }, 66 | {21, 67 | {e69bf21d-97b2-4f37-86db-675aea9ec2cb,3, 68 | {2, 69 | { 70 | {10,1, 71 | {3,4, 72 | {0} 73 | }, 74 | {3,4, 75 | {0} 76 | }, 77 | {6,3,0,1},0, 78 | {3,3, 79 | {-22} 80 | }, 81 | {3,4, 82 | {0} 83 | }, 84 | {3,4, 85 | {0} 86 | }, 87 | {3,4, 88 | {0} 89 | }, 90 | {3,3, 91 | {-21} 92 | }, 93 | {3,0, 94 | {0},7,1,0,00000000-0000-0000-0000-000000000000}, 95 | {1,0} 96 | },8,2,0,2,0,1, 97 | {5,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,14,1,5, 98 | {6,ca5a7a00-55e6-486f-8cc7-b420c756c238,1,e1692cc2-605b-4535-84dd-28440238746c, 99 | {3,"ОсновныеДействияФормыРазбитьФайл", 100 | {1,"ОсновныеДействияФормыРазбитьФайл", 101 | {1,1, 102 | {"ru","Разбить файл"} 103 | }, 104 | {1,1, 105 | {"ru","Разбить файл"} 106 | }, 107 | {1,1, 108 | {"ru","Разбить файл"} 109 | }, 110 | {3,0, 111 | {0},"",-1,-1,1,0}, 112 | {0,0,0} 113 | } 114 | },0}, 115 | {6,3e44837f-ada1-4852-918b-7f8a5ab48cfc,1,fbe38877-b914-4fd5-8540-07dde06ba2e1, 116 | {6,2,00000000-0000-0000-0000-000000000000,142, 117 | {1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0}, 118 | {6,d4be58d6-8b83-45e4-97cf-da067d1627e7,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, 119 | {1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0}, 120 | {6,58a0b966-98e8-4e14-a326-76ff1d756560,1,e1692cc2-605b-4535-84dd-28440238746c, 121 | {3,"ОсновныеДействияФормыОбъединитьФайлы", 122 | {1,"ОсновныеДействияФормыОбъединитьФайлы", 123 | {1,1, 124 | {"ru","Объединить файлы"} 125 | }, 126 | {1,1, 127 | {"ru","Объединить файлы"} 128 | }, 129 | {1,1, 130 | {"ru","Объединить файлы"} 131 | }, 132 | {3,0, 133 | {0},"",-1,-1,1,0}, 134 | {0,0,0} 135 | } 136 | },0}, 137 | {6,d72cf75e-7b57-4ff1-a98b-39b27d40997e,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, 138 | {1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, 139 | {5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,5,58a0b966-98e8-4e14-a326-76ff1d756560, 140 | {8,"ОбъединитьФайлы",0,1, 141 | {1,1, 142 | {"#","Объединить файлы"} 143 | },0,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,13,1e2,0,0,1,0,0,0,0},d72cf75e-7b57-4ff1-a98b-39b27d40997e, 144 | {8,"Разделитель",0,1, 145 | {1,1, 146 | {"ru","Действие"} 147 | },0,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,12,1e2,2,0,1,0,0,0,0},ca5a7a00-55e6-486f-8cc7-b420c756c238, 148 | {8,"РазбитьФайл",0,1, 149 | {1,1, 150 | {"#","Разбить файл"} 151 | },0,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,11,1e2,0,0,1,0,0,0,0},d4be58d6-8b83-45e4-97cf-da067d1627e7, 152 | {8,"Разделитель1",0,1, 153 | {1,1, 154 | {"ru","Действие"} 155 | },0,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,14,1e2,2,0,1,0,0,0,0},3e44837f-ada1-4852-918b-7f8a5ab48cfc, 156 | {8,"ОсновныеДействияФормыЗакрыть",0,1, 157 | {1,1, 158 | {"ru","Закрыть"} 159 | },1,ce218a65-0b84-42d9-ab6f-ee8bbfd7a221,3,1e2,0,3,1,0,1,0,0}, 160 | {-1,0, 161 | {0} 162 | } 163 | } 164 | },b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0} 165 | }, 166 | {8,0,429,517,454,1, 167 | {0, 168 | {2,3,1,-25}, 169 | {2,-1,6,0} 170 | }, 171 | {0, 172 | {2,0,1,0}, 173 | {2,-1,6,0} 174 | }, 175 | {0, 176 | {2,0,2,0}, 177 | {2,-1,6,0} 178 | }, 179 | {0, 180 | {2,0,3,0}, 181 | {2,-1,6,0} 182 | }, 183 | {0, 184 | {2,-1,6,0}, 185 | {2,-1,6,0} 186 | }, 187 | {0, 188 | {2,-1,6,0}, 189 | {2,-1,6,0} 190 | },1, 191 | {0,3,1},1, 192 | {0,3,0},0,0,0,0,0,0,21,1,1}, 193 | {14,"ОсновныеДействияФормы",0,0,0,0}, 194 | {0} 195 | }, 196 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4, 197 | {3, 198 | { 199 | {10,1, 200 | {3,4, 201 | {0} 202 | }, 203 | {3,4, 204 | {0} 205 | }, 206 | {6,3,0,1},0, 207 | {3,3, 208 | {-22} 209 | }, 210 | {3,4, 211 | {0} 212 | }, 213 | {3,4, 214 | {0} 215 | }, 216 | {3,3, 217 | {-7} 218 | }, 219 | {3,3, 220 | {-21} 221 | }, 222 | {3,0, 223 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 224 | {1,0} 225 | },7, 226 | {1,1, 227 | {"ru","Каталог poppler (bin):"} 228 | },0,1,0,0,0, 229 | {0,0,0},0, 230 | {1,0},1, 231 | {3,0, 232 | {3,0, 233 | {0},"",-1,-1,1,0} 234 | },4}, 235 | {0} 236 | }, 237 | {8,14,52,122,71,1, 238 | {0, 239 | {2,6,0,19}, 240 | {2,-1,6,0} 241 | }, 242 | {0, 243 | {2,4,0,19}, 244 | {2,-1,6,0} 245 | }, 246 | {0, 247 | {2,6,2,6}, 248 | {2,-1,6,0} 249 | }, 250 | {0, 251 | {2,4,2,108}, 252 | {2,-1,6,0} 253 | }, 254 | {0, 255 | {2,-1,6,0}, 256 | {2,-1,6,0} 257 | }, 258 | {0, 259 | {2,-1,6,0}, 260 | {2,-1,6,0} 261 | },1, 262 | {0,4,1},0,1, 263 | {0,4,3},0,0,0,0,1,5,0,0}, 264 | {14,"НадписьКаталогPoppler",4294967295,0,0,0}, 265 | {0} 266 | }, 267 | {381ed624-9217-4e63-85db-c4c3cb87daae,5, 268 | {9, 269 | {"Pattern", 270 | {"S"} 271 | }, 272 | { 273 | { 274 | {10,1, 275 | {3,4, 276 | {0} 277 | }, 278 | {3,4, 279 | {0} 280 | }, 281 | {6,3,0,1},0, 282 | {3,3, 283 | {-22} 284 | }, 285 | {3,4, 286 | {0} 287 | }, 288 | {3,4, 289 | {0} 290 | }, 291 | {3,3, 292 | {-7} 293 | }, 294 | {3,3, 295 | {-21} 296 | }, 297 | {3,1, 298 | {-18},0,0,0}, 299 | {1,1, 300 | {"ru","Каталог poppler"} 301 | } 302 | },21,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0, 303 | {"U"}, 304 | {"U"},"",0,1,0,0,0,0, 305 | {3,0, 306 | {0},"",-1,-1,1,0}, 307 | {3,0, 308 | {0},"",-1,-1,1,0},0,0,0, 309 | {0,0,0}, 310 | {1,0},0,0,0,0} 311 | }, 312 | {1, 313 | {9a7643d2-19e9-45e2-8893-280bc9195a97, 314 | {4, 315 | {"U"}, 316 | {"U"},0,"",0,0} 317 | } 318 | }, 319 | {1, 320 | {2,e1692cc2-605b-4535-84dd-28440238746c, 321 | {3,"КаталогPopplerНачалоВыбора", 322 | {1,"КаталогPopplerНачалоВыбора", 323 | {1,1, 324 | {"ru","Каталог poppler начало выбора"} 325 | }, 326 | {1,1, 327 | {"ru","Каталог poppler начало выбора"} 328 | }, 329 | {1,1, 330 | {"ru","Каталог poppler начало выбора"} 331 | }, 332 | {3,0, 333 | {0},"",-1,-1,1,0}, 334 | {0,0,0} 335 | } 336 | } 337 | } 338 | },0,1,0, 339 | {1,0},0}, 340 | {8,128,52,340,71,1, 341 | {0, 342 | {2,6,0,19}, 343 | {2,-1,6,0} 344 | }, 345 | {0, 346 | {2,5,0,19}, 347 | {2,-1,6,0} 348 | }, 349 | {0, 350 | {2,6,2,120}, 351 | {2,-1,6,0} 352 | }, 353 | {0, 354 | {2,6,3,-10}, 355 | {2,-1,6,0} 356 | }, 357 | {0, 358 | {2,-1,6,0}, 359 | {2,-1,6,0} 360 | }, 361 | {0, 362 | {2,-1,6,0}, 363 | {2,-1,6,0} 364 | },1, 365 | {0,5,1},0,0,0,0,0,0,2,6,0,0}, 366 | {14,"КаталогPoppler",4294967295,0,0,0}, 367 | {0} 368 | }, 369 | {90db814a-c75f-4b54-bc96-df62e554d67d,6, 370 | {0, 371 | { 372 | {10,1, 373 | {3,4, 374 | {0} 375 | }, 376 | {3,4, 377 | {0} 378 | }, 379 | {6,3,4,700,1},0, 380 | {3,3, 381 | {-22} 382 | }, 383 | {3,4, 384 | {0} 385 | }, 386 | {3,4, 387 | {0} 388 | }, 389 | {3,3, 390 | {-7} 391 | }, 392 | {3,3, 393 | {-21} 394 | }, 395 | {3,0, 396 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 397 | {1,0} 398 | },8, 399 | {1,1, 400 | {"ru","Необязательные параметры"} 401 | }, 402 | {3,0, 403 | {0},6,1,0,cf48d3ca-5bd4-45b9-bb8f-a0922a8335f2},0} 404 | }, 405 | {8,8,33,350,151,1, 406 | {0, 407 | {2,-1,6,0}, 408 | {2,-1,6,0} 409 | }, 410 | {0, 411 | {2,6,0,118}, 412 | {2,-1,6,0} 413 | }, 414 | {0, 415 | {2,-1,6,0}, 416 | {2,-1,6,0} 417 | }, 418 | {0, 419 | {2,0,3,-167}, 420 | {2,-1,6,0} 421 | }, 422 | {0, 423 | {2,-1,6,0}, 424 | {2,-1,6,0} 425 | }, 426 | {0, 427 | {2,-1,6,0}, 428 | {2,-1,6,0} 429 | },12, 430 | {0,4,0}, 431 | {0,5,0}, 432 | {0,6,1}, 433 | {0,11,0}, 434 | {0,12,0}, 435 | {0,13,0}, 436 | {0,14,0}, 437 | {0,15,0}, 438 | {0,19,0}, 439 | {0,20,0}, 440 | {0,21,0}, 441 | {0,22,0},0,11, 442 | {0,19,2}, 443 | {0,21,2}, 444 | {0,4,2}, 445 | {0,5,2}, 446 | {0,11,2}, 447 | {0,12,2}, 448 | {0,13,2}, 449 | {0,14,2}, 450 | {0,15,2}, 451 | {0,20,2}, 452 | {0,22,2},5, 453 | {0,5,3}, 454 | {0,24,2}, 455 | {0,25,2}, 456 | {0,26,2}, 457 | {0,27,2},0,0,0,3,3,0,0}, 458 | {14,"РамкаГруппыНеобязательныеПараметры",4294967295,0,0,0}, 459 | {0} 460 | }, 461 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,7, 462 | {3, 463 | { 464 | {10,1, 465 | {3,4, 466 | {0} 467 | }, 468 | {3,4, 469 | {0} 470 | }, 471 | {6,3,0,1},0, 472 | {3,3, 473 | {-22} 474 | }, 475 | {3,4, 476 | {0} 477 | }, 478 | {3,4, 479 | {0} 480 | }, 481 | {3,3, 482 | {-7} 483 | }, 484 | {3,3, 485 | {-21} 486 | }, 487 | {3,0, 488 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 489 | {1,0} 490 | },7, 491 | {1,1, 492 | {"ru","Имя файла:"} 493 | },0,1,0,0,0, 494 | {0,0,0},0, 495 | {1,0},1, 496 | {3,0, 497 | {3,0, 498 | {0},"",-1,-1,1,0} 499 | },4}, 500 | {0} 501 | }, 502 | {8,8,7,69,26,1, 503 | {0, 504 | {2,-1,6,0}, 505 | {2,-1,6,0} 506 | }, 507 | {0, 508 | {2,7,0,19}, 509 | {2,-1,6,0} 510 | }, 511 | {0, 512 | {2,-1,6,0}, 513 | {2,-1,6,0} 514 | }, 515 | {0, 516 | {2,7,2,61}, 517 | {2,-1,6,0} 518 | }, 519 | {0, 520 | {2,-1,6,0}, 521 | {2,-1,6,0} 522 | }, 523 | {0, 524 | {2,-1,6,0}, 525 | {2,-1,6,0} 526 | },1, 527 | {0,7,1},0,1, 528 | {0,7,3},0,0,0,0,4,1,0,0}, 529 | {14,"НадписьИмяФайла",4294967295,0,0,0}, 530 | {0} 531 | }, 532 | {381ed624-9217-4e63-85db-c4c3cb87daae,8, 533 | {9, 534 | {"Pattern", 535 | {"S"} 536 | }, 537 | { 538 | { 539 | {10,1, 540 | {3,4, 541 | {0} 542 | }, 543 | {3,4, 544 | {0} 545 | }, 546 | {6,3,0,1},0, 547 | {3,3, 548 | {-22} 549 | }, 550 | {3,4, 551 | {0} 552 | }, 553 | {3,4, 554 | {0} 555 | }, 556 | {3,3, 557 | {-7} 558 | }, 559 | {3,3, 560 | {-21} 561 | }, 562 | {3,1, 563 | {-18},0,0,0}, 564 | {1,0} 565 | },21,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0, 566 | {"U"}, 567 | {"U"},"",0,1,0,0,0,0, 568 | {3,0, 569 | {0},"",-1,-1,1,0}, 570 | {3,0, 571 | {0},"",-1,-1,1,0},0,0,0, 572 | {0,0,0}, 573 | {1,0},1,0,0,0} 574 | }, 575 | {1, 576 | {9a7643d2-19e9-45e2-8893-280bc9195a97, 577 | {4, 578 | {"U"}, 579 | {"U"},0,"",0,0} 580 | } 581 | }, 582 | {1, 583 | {2,e1692cc2-605b-4535-84dd-28440238746c, 584 | {3,"ИмяФайлаНачалоВыбора", 585 | {1,"ИмяФайлаНачалоВыбора", 586 | {1,1, 587 | {"ru","Имя файла начало выбора"} 588 | }, 589 | {1,1, 590 | {"ru","Имя файла начало выбора"} 591 | }, 592 | {1,1, 593 | {"ru","Имя файла начало выбора"} 594 | }, 595 | {3,0, 596 | {0},"",-1,-1,1,0}, 597 | {0,0,0} 598 | } 599 | } 600 | } 601 | },0,1,0, 602 | {1,0},0}, 603 | {8,74,7,350,26,1, 604 | {0, 605 | {2,-1,6,0}, 606 | {2,-1,6,0} 607 | }, 608 | {0, 609 | {2,8,0,19}, 610 | {2,-1,6,0} 611 | }, 612 | {0, 613 | {2,-1,6,0}, 614 | {2,-1,6,0} 615 | }, 616 | {0, 617 | {2,0,3,-167}, 618 | {2,-1,6,0} 619 | }, 620 | {0, 621 | {2,-1,6,0}, 622 | {2,-1,6,0} 623 | }, 624 | {0, 625 | {2,-1,6,0}, 626 | {2,-1,6,0} 627 | },1, 628 | {0,8,1},0,0,0,0,0,0,5,2,0,0}, 629 | {14,"ИмяФайла",4294967295,0,0,0}, 630 | {0} 631 | }, 632 | {09ccdc77-ea1a-4a6d-ab1c-3435eada2433,9, 633 | {1, 634 | { 635 | {10,1, 636 | {3,4, 637 | {0} 638 | }, 639 | {3,4, 640 | {0} 641 | }, 642 | {6,3,0,1},0, 643 | {3,3, 644 | {-22} 645 | }, 646 | {3,4, 647 | {0} 648 | }, 649 | {3,4, 650 | {0} 651 | }, 652 | {3,3, 653 | {-7} 654 | }, 655 | {3,3, 656 | {-21} 657 | }, 658 | {3,0, 659 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 660 | {1,0} 661 | },21,0,0,0,0,0,0, 662 | {3,1, 663 | {3,0, 664 | {0},"",-1,-1,1,0} 665 | },0,1, 666 | {1,1, 667 | {3, 668 | {1,1, 669 | {"ru","Страница1"} 670 | }, 671 | {3,0, 672 | {3,0, 673 | {0},"",-1,-1,1,0} 674 | },-1,1,1,"Страница1",1} 675 | },1,1,0,4, 676 | {2,6,1,1,1,0,0,0,0}, 677 | {2,6,0,1,2,0,0,0,0}, 678 | {2,492,1,1,3,0,0,6,0}, 679 | {2,243,0,1,4,0,0,6,0},0,4294967295,5,64,0}, 680 | {0} 681 | }, 682 | {8,8,170,506,419,1, 683 | {0, 684 | {2,-1,6,0}, 685 | {2,-1,6,0} 686 | }, 687 | {0, 688 | {2,0,1,-35}, 689 | {2,-1,6,0} 690 | }, 691 | {0, 692 | {2,-1,6,0}, 693 | {2,-1,6,0} 694 | }, 695 | {0, 696 | {2,0,3,-11}, 697 | {2,-1,6,0} 698 | }, 699 | {0, 700 | {2,-1,6,0}, 701 | {2,-1,6,0} 702 | }, 703 | {0, 704 | {2,-1,6,0}, 705 | {2,-1,6,0} 706 | },0,0,0,0,0,0,0,6,20,0,0}, 707 | {14,"ПанельРезультатов",4294967295,0,0,0}, 708 | {0} 709 | }, 710 | {90db814a-c75f-4b54-bc96-df62e554d67d,10, 711 | {0, 712 | { 713 | {10,1, 714 | {3,4, 715 | {0} 716 | }, 717 | {3,4, 718 | {0} 719 | }, 720 | {6,3,4,700,1},0, 721 | {3,3, 722 | {-22} 723 | }, 724 | {3,4, 725 | {0} 726 | }, 727 | {3,4, 728 | {0} 729 | }, 730 | {3,3, 731 | {-7} 732 | }, 733 | {3,3, 734 | {-21} 735 | }, 736 | {3,0, 737 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 738 | {1,0} 739 | },8, 740 | {1,1, 741 | {"ru","Результат"} 742 | }, 743 | {3,0, 744 | {0},6,1,0,cf48d3ca-5bd4-45b9-bb8f-a0922a8335f2},0} 745 | }, 746 | {8,8,161,509,421,1, 747 | {0, 748 | {2,-1,6,0}, 749 | {2,-1,6,0} 750 | }, 751 | {0, 752 | {2,0,1,-33}, 753 | {2,-1,6,0} 754 | }, 755 | {0, 756 | {2,-1,6,0}, 757 | {2,-1,6,0} 758 | }, 759 | {0, 760 | {2,0,3,-8}, 761 | {2,-1,6,0} 762 | }, 763 | {0, 764 | {2,-1,6,0}, 765 | {2,-1,6,0} 766 | }, 767 | {0, 768 | {2,-1,6,0}, 769 | {2,-1,6,0} 770 | },0,0,0,0,0,0,0,7,19,1,1}, 771 | {14,"РамкаГруппыРезультаты",4294967295,0,0,0}, 772 | {0} 773 | }, 774 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,11, 775 | {3, 776 | { 777 | {10,1, 778 | {3,4, 779 | {0} 780 | }, 781 | {3,4, 782 | {0} 783 | }, 784 | {6,3,0,1},0, 785 | {3,3, 786 | {-22} 787 | }, 788 | {3,4, 789 | {0} 790 | }, 791 | {3,4, 792 | {0} 793 | }, 794 | {3,3, 795 | {-7} 796 | }, 797 | {3,3, 798 | {-21} 799 | }, 800 | {3,0, 801 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 802 | {1,0} 803 | },7, 804 | {1,1, 805 | {"ru","Извлечь страницы с:"} 806 | },0,1,0,0,0, 807 | {0,0,0},0, 808 | {1,0},1, 809 | {3,0, 810 | {3,0, 811 | {0},"",-1,-1,1,0} 812 | },4}, 813 | {0} 814 | }, 815 | {8,14,76,122,95,1, 816 | {0, 817 | {2,6,0,43}, 818 | {2,-1,6,0} 819 | }, 820 | {0, 821 | {2,11,0,19}, 822 | {2,-1,6,0} 823 | }, 824 | {0, 825 | {2,6,2,6}, 826 | {2,-1,6,0} 827 | }, 828 | {0, 829 | {2,11,2,108}, 830 | {2,-1,6,0} 831 | }, 832 | {0, 833 | {2,-1,6,0}, 834 | {2,-1,6,0} 835 | }, 836 | {0, 837 | {2,-1,6,0}, 838 | {2,-1,6,0} 839 | },1, 840 | {0,11,1},0,1, 841 | {0,11,3},0,0,0,0,8,8,0,0}, 842 | {14,"НадписьПерваяСтраница",4294967295,0,0,0}, 843 | {0} 844 | }, 845 | {381ed624-9217-4e63-85db-c4c3cb87daae,12, 846 | {9, 847 | {"Pattern", 848 | {"N",3,0,1} 849 | }, 850 | { 851 | { 852 | {10,1, 853 | {3,4, 854 | {0} 855 | }, 856 | {3,4, 857 | {0} 858 | }, 859 | {6,3,0,1},0, 860 | {3,3, 861 | {-22} 862 | }, 863 | {3,4, 864 | {0} 865 | }, 866 | {3,4, 867 | {0} 868 | }, 869 | {3,3, 870 | {-7} 871 | }, 872 | {3,3, 873 | {-21} 874 | }, 875 | {3,1, 876 | {-18},0,0,0}, 877 | {1,0} 878 | },21,0,0,0,0,0,0,0,1,0,1,0,0,3,0,1,4,0, 879 | {"U"}, 880 | {"U"},"",0,1,0,0,0,0, 881 | {3,0, 882 | {0},"",-1,-1,1,0}, 883 | {3,0, 884 | {0},"",-1,-1,1,0},0,0,0, 885 | {0,0,0}, 886 | {1,0},0,0,0,0} 887 | }, 888 | {1, 889 | {9a7643d2-19e9-45e2-8893-280bc9195a97, 890 | {4, 891 | {"U"}, 892 | {"U"},0,"",0,0} 893 | } 894 | }, 895 | {0},0,1,0, 896 | {1,0},0}, 897 | {8,128,76,179,95,1, 898 | {0, 899 | {2,6,0,43}, 900 | {2,-1,6,0} 901 | }, 902 | {0, 903 | {2,12,0,19}, 904 | {2,-1,6,0} 905 | }, 906 | {0, 907 | {2,6,2,120}, 908 | {2,-1,6,0} 909 | }, 910 | {0, 911 | {2,12,2,51}, 912 | {2,-1,6,0} 913 | }, 914 | {0, 915 | {2,-1,6,0}, 916 | {2,-1,6,0} 917 | }, 918 | {0, 919 | {2,-1,6,0}, 920 | {2,-1,6,0} 921 | },1, 922 | {0,12,1},0,1, 923 | {0,12,3},0,0,0,0,9,9,0,0}, 924 | {14,"ПерваяСтраница",4294967295,0,0,0}, 925 | {0} 926 | }, 927 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,13, 928 | {3, 929 | { 930 | {10,1, 931 | {3,4, 932 | {0} 933 | }, 934 | {3,4, 935 | {0} 936 | }, 937 | {6,3,0,1},0, 938 | {3,3, 939 | {-22} 940 | }, 941 | {3,4, 942 | {0} 943 | }, 944 | {3,4, 945 | {0} 946 | }, 947 | {3,3, 948 | {-7} 949 | }, 950 | {3,3, 951 | {-21} 952 | }, 953 | {3,0, 954 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 955 | {1,0} 956 | },7, 957 | {1,1, 958 | {"ru","по"} 959 | },0,1,0,0,0, 960 | {0,0,0},0, 961 | {1,0},1, 962 | {3,0, 963 | {3,0, 964 | {0},"",-1,-1,1,0} 965 | },4}, 966 | {0} 967 | }, 968 | {8,186,76,200,95,1, 969 | {0, 970 | {2,6,0,43}, 971 | {2,-1,6,0} 972 | }, 973 | {0, 974 | {2,13,0,19}, 975 | {2,-1,6,0} 976 | }, 977 | {0, 978 | {2,6,2,178}, 979 | {2,-1,6,0} 980 | }, 981 | {0, 982 | {2,13,2,14}, 983 | {2,-1,6,0} 984 | }, 985 | {0, 986 | {2,-1,6,0}, 987 | {2,-1,6,0} 988 | }, 989 | {0, 990 | {2,-1,6,0}, 991 | {2,-1,6,0} 992 | },1, 993 | {0,13,1},0,1, 994 | {0,13,3},0,0,0,0,10,10,0,0}, 995 | {14,"НадписьПоследняяСтраница",4294967295,0,0,0}, 996 | {0} 997 | }, 998 | {381ed624-9217-4e63-85db-c4c3cb87daae,14, 999 | {9, 1000 | {"Pattern", 1001 | {"N",3,0,1} 1002 | }, 1003 | { 1004 | { 1005 | {10,1, 1006 | {3,4, 1007 | {0} 1008 | }, 1009 | {3,4, 1010 | {0} 1011 | }, 1012 | {6,3,0,1},0, 1013 | {3,3, 1014 | {-22} 1015 | }, 1016 | {3,4, 1017 | {0} 1018 | }, 1019 | {3,4, 1020 | {0} 1021 | }, 1022 | {3,3, 1023 | {-7} 1024 | }, 1025 | {3,3, 1026 | {-21} 1027 | }, 1028 | {3,1, 1029 | {-18},0,0,0}, 1030 | {1,0} 1031 | },21,0,0,0,0,0,0,0,1,0,1,0,0,3,0,1,4,0, 1032 | {"U"}, 1033 | {"U"},"",0,1,0,0,0,0, 1034 | {3,0, 1035 | {0},"",-1,-1,1,0}, 1036 | {3,0, 1037 | {0},"",-1,-1,1,0},0,0,0, 1038 | {0,0,0}, 1039 | {1,0},0,0,0,0} 1040 | }, 1041 | {1, 1042 | {9a7643d2-19e9-45e2-8893-280bc9195a97, 1043 | {4, 1044 | {"U"}, 1045 | {"U"},0,"",0,0} 1046 | } 1047 | }, 1048 | {0},0,1,0, 1049 | {1,0},0}, 1050 | {8,205,76,250,95,1, 1051 | {0, 1052 | {2,6,0,43}, 1053 | {2,-1,6,0} 1054 | }, 1055 | {0, 1056 | {2,14,0,19}, 1057 | {2,-1,6,0} 1058 | }, 1059 | {0, 1060 | {2,6,2,197}, 1061 | {2,-1,6,0} 1062 | }, 1063 | {0, 1064 | {2,14,2,45}, 1065 | {2,-1,6,0} 1066 | }, 1067 | {0, 1068 | {2,-1,6,0}, 1069 | {2,-1,6,0} 1070 | }, 1071 | {0, 1072 | {2,-1,6,0}, 1073 | {2,-1,6,0} 1074 | },1, 1075 | {0,14,1},0,1, 1076 | {0,14,3},0,0,0,0,11,11,0,0}, 1077 | {14,"ПоследняяСтраница",4294967295,0,0,0}, 1078 | {0} 1079 | }, 1080 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,15, 1081 | {3, 1082 | { 1083 | {10,1, 1084 | {3,4, 1085 | {0} 1086 | }, 1087 | {3,4, 1088 | {0} 1089 | }, 1090 | {6,3,0,1},0, 1091 | {3,3, 1092 | {-22} 1093 | }, 1094 | {3,4, 1095 | {0} 1096 | }, 1097 | {3,4, 1098 | {0} 1099 | }, 1100 | {3,3, 1101 | {-7} 1102 | }, 1103 | {3,3, 1104 | {-21} 1105 | }, 1106 | {3,0, 1107 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1108 | {1,0} 1109 | },7, 1110 | {1,1, 1111 | {"ru","Качество (DPI):"} 1112 | },0,1,0,0,0, 1113 | {0,0,0},0, 1114 | {1,0},1, 1115 | {3,0, 1116 | {3,0, 1117 | {0},"",-1,-1,1,0} 1118 | },4}, 1119 | {0} 1120 | }, 1121 | {8,14,100,122,119,1, 1122 | {0, 1123 | {2,6,0,67}, 1124 | {2,-1,6,0} 1125 | }, 1126 | {0, 1127 | {2,15,0,19}, 1128 | {2,-1,6,0} 1129 | }, 1130 | {0, 1131 | {2,6,2,6}, 1132 | {2,-1,6,0} 1133 | }, 1134 | {0, 1135 | {2,15,2,108}, 1136 | {2,-1,6,0} 1137 | }, 1138 | {0, 1139 | {2,-1,6,0}, 1140 | {2,-1,6,0} 1141 | }, 1142 | {0, 1143 | {2,-1,6,0}, 1144 | {2,-1,6,0} 1145 | },1, 1146 | {0,15,1},0,1, 1147 | {0,15,3},0,0,0,0,12,14,0,0}, 1148 | {14,"НадписьКачество",4294967295,0,0,0}, 1149 | {0} 1150 | }, 1151 | {64483e7f-3833-48e2-8c75-2c31aac49f6e,19, 1152 | {2, 1153 | { 1154 | {10,1, 1155 | {3,4, 1156 | {0} 1157 | }, 1158 | {3,4, 1159 | {0} 1160 | }, 1161 | {6,3,0,1},0, 1162 | {3,3, 1163 | {-22} 1164 | }, 1165 | {3,4, 1166 | {0} 1167 | }, 1168 | {3,4, 1169 | {0} 1170 | }, 1171 | {3,3, 1172 | {-7} 1173 | }, 1174 | {3,3, 1175 | {-21} 1176 | }, 1177 | {3,1, 1178 | {-18},0,0,0}, 1179 | {1,1, 1180 | {"ru","Используется только при извлечении страниц в виде изображений."} 1181 | } 1182 | },21,0,0,1,0,1,0,0,0,0,1,1,0,255,0,0,4,0, 1183 | {"U"}, 1184 | {"U"},"",0,1,1,1, 1185 | {8, 1186 | {2, 1187 | {0,"Value", 1188 | {"Pattern"},"Значение",10}, 1189 | {1,"Presentation", 1190 | {"Pattern", 1191 | {"#",87024738-fc2a-4436-ada1-df79d395c424} 1192 | },"Представление",10} 1193 | }, 1194 | {2,2,0,0,1,1, 1195 | {1,7, 1196 | {2,2,2, 1197 | {"N",100}, 1198 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1199 | {0} 1200 | },0}, 1201 | {2,3,2, 1202 | {"N",150}, 1203 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1204 | {0} 1205 | },0}, 1206 | {2,4,2, 1207 | {"N",200}, 1208 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1209 | {0} 1210 | },0}, 1211 | {2,5,2, 1212 | {"N",300}, 1213 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1214 | {0} 1215 | },0}, 1216 | {2,6,2, 1217 | {"N",400}, 1218 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1219 | {0} 1220 | },0}, 1221 | {2,7,2, 1222 | {"N",500}, 1223 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1224 | {0} 1225 | },0}, 1226 | {2,8,2, 1227 | {"N",600}, 1228 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1229 | {0} 1230 | },0} 1231 | },-1,8} 1232 | },0,0, 1233 | {3,0, 1234 | {0},"",-1,-1,1,0}, 1235 | {3,0, 1236 | {0},"",-1,-1,1,0},0,0,0, 1237 | {0,0,0}, 1238 | {1,0},0,0,0,0}, 1239 | {0} 1240 | }, 1241 | {8,128,100,250,119,1, 1242 | {0, 1243 | {2,6,0,67}, 1244 | {2,-1,6,0} 1245 | }, 1246 | {0, 1247 | {2,19,0,19}, 1248 | {2,-1,6,0} 1249 | }, 1250 | {0, 1251 | {2,6,2,120}, 1252 | {2,-1,6,0} 1253 | }, 1254 | {0, 1255 | {2,-1,6,0}, 1256 | {2,-1,6,0} 1257 | }, 1258 | {0, 1259 | {2,-1,6,0}, 1260 | {2,-1,6,0} 1261 | }, 1262 | {0, 1263 | {2,-1,6,0}, 1264 | {2,-1,6,0} 1265 | },1, 1266 | {0,19,1},0,0,0,0,0,0,13,15,1,0}, 1267 | {14,"Качество",4294967295,0,0,0}, 1268 | {0} 1269 | }, 1270 | {0fc7e20d-f241-460c-bdf4-5ad88e5474a5,20, 1271 | {3, 1272 | { 1273 | {10,1, 1274 | {3,4, 1275 | {0} 1276 | }, 1277 | {3,4, 1278 | {0} 1279 | }, 1280 | {6,3,0,1},0, 1281 | {3,3, 1282 | {-22} 1283 | }, 1284 | {3,4, 1285 | {0} 1286 | }, 1287 | {3,4, 1288 | {0} 1289 | }, 1290 | {3,3, 1291 | {-7} 1292 | }, 1293 | {3,3, 1294 | {-21} 1295 | }, 1296 | {3,0, 1297 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1298 | {1,0} 1299 | },7, 1300 | {1,1, 1301 | {"ru","Формат:"} 1302 | },0,1,0,0,0, 1303 | {0,0,0},0, 1304 | {1,0},1, 1305 | {3,0, 1306 | {3,0, 1307 | {0},"",-1,-1,1,0} 1308 | },4}, 1309 | {0} 1310 | }, 1311 | {8,14,124,60,143,1, 1312 | {0, 1313 | {2,6,0,91}, 1314 | {2,-1,6,0} 1315 | }, 1316 | {0, 1317 | {2,20,0,19}, 1318 | {2,-1,6,0} 1319 | }, 1320 | {0, 1321 | {2,6,2,6}, 1322 | {2,-1,6,0} 1323 | }, 1324 | {0, 1325 | {2,20,2,46}, 1326 | {2,-1,6,0} 1327 | }, 1328 | {0, 1329 | {2,-1,6,0}, 1330 | {2,-1,6,0} 1331 | }, 1332 | {0, 1333 | {2,-1,6,0}, 1334 | {2,-1,6,0} 1335 | },1, 1336 | {0,20,1},0,1, 1337 | {0,20,3},0,0,0,0,14,16,0,0}, 1338 | {14,"Надпись1",4294967295,0,0,0}, 1339 | {0} 1340 | }, 1341 | {64483e7f-3833-48e2-8c75-2c31aac49f6e,21, 1342 | {2, 1343 | { 1344 | {10,1, 1345 | {3,4, 1346 | {0} 1347 | }, 1348 | {3,4, 1349 | {0} 1350 | }, 1351 | {6,3,0,1},0, 1352 | {3,3, 1353 | {-22} 1354 | }, 1355 | {3,4, 1356 | {0} 1357 | }, 1358 | {3,4, 1359 | {0} 1360 | }, 1361 | {3,3, 1362 | {-7} 1363 | }, 1364 | {3,3, 1365 | {-21} 1366 | }, 1367 | {3,1, 1368 | {-18},0,0,0}, 1369 | {1,1, 1370 | {"ru","Используется только при извлечении страниц в виде изображений."} 1371 | } 1372 | },21,0,0,1,0,1,0,0,0,0,1,1,0,255,0,0,4,0, 1373 | {"U"}, 1374 | {"U"},"",0,1,1,1, 1375 | {8, 1376 | {2, 1377 | {0,"Value", 1378 | {"Pattern"},"Значение",10}, 1379 | {1,"Presentation", 1380 | {"Pattern", 1381 | {"#",87024738-fc2a-4436-ada1-df79d395c424} 1382 | },"Представление",10} 1383 | }, 1384 | {2,2,0,0,1,1, 1385 | {1,3, 1386 | {2,0,2, 1387 | {"S","jpeg"}, 1388 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1389 | {1,"ru","jpeg"} 1390 | },0}, 1391 | {2,1,2, 1392 | {"S","png"}, 1393 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1394 | {1,"ru","png"} 1395 | },0}, 1396 | {2,2,2, 1397 | {"S","tiff"}, 1398 | {"#",87024738-fc2a-4436-ada1-df79d395c424, 1399 | {1,"ru","tiff"} 1400 | },0} 1401 | },-1,2} 1402 | },0,0, 1403 | {3,0, 1404 | {0},"",-1,-1,1,0}, 1405 | {3,0, 1406 | {0},"",-1,-1,1,0},0,0,0, 1407 | {0,0,0}, 1408 | {1,0},0,0,0,0}, 1409 | {0} 1410 | }, 1411 | {8,128,124,220,143,1, 1412 | {0, 1413 | {2,6,0,91}, 1414 | {2,-1,6,0} 1415 | }, 1416 | {0, 1417 | {2,21,0,19}, 1418 | {2,-1,6,0} 1419 | }, 1420 | {0, 1421 | {2,6,2,120}, 1422 | {2,-1,6,0} 1423 | }, 1424 | {0, 1425 | {2,-1,6,0}, 1426 | {2,-1,6,0} 1427 | }, 1428 | {0, 1429 | {2,-1,6,0}, 1430 | {2,-1,6,0} 1431 | }, 1432 | {0, 1433 | {2,-1,6,0}, 1434 | {2,-1,6,0} 1435 | },1, 1436 | {0,21,1},0,0,0,0,0,0,15,17,1,0}, 1437 | {14,"Формат",4294967295,0,0,0}, 1438 | {0} 1439 | }, 1440 | {35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,22, 1441 | {1, 1442 | { 1443 | { 1444 | {10,1, 1445 | {3,4, 1446 | {0} 1447 | }, 1448 | {3,4, 1449 | {0} 1450 | }, 1451 | {6,3,0,1},0, 1452 | {3,3, 1453 | {-22} 1454 | }, 1455 | {3,4, 1456 | {0} 1457 | }, 1458 | {3,4, 1459 | {0} 1460 | }, 1461 | {3,3, 1462 | {-7} 1463 | }, 1464 | {3,3, 1465 | {-21} 1466 | }, 1467 | {3,0, 1468 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1469 | {1,1, 1470 | {"ru","Черно-белый режим (оттенки серого). Используется только при извлечении страниц в виде изображений."} 1471 | } 1472 | },4, 1473 | {1,1, 1474 | {"ru","Ч/Б"} 1475 | },1,0,1},1,0,0}, 1476 | {0} 1477 | }, 1478 | {8,256,76,297,95,1, 1479 | {0, 1480 | {2,6,0,43}, 1481 | {2,-1,6,0} 1482 | }, 1483 | {0, 1484 | {2,22,0,19}, 1485 | {2,-1,6,0} 1486 | }, 1487 | {0, 1488 | {2,6,2,248}, 1489 | {2,-1,6,0} 1490 | }, 1491 | {0, 1492 | {2,22,2,41}, 1493 | {2,-1,6,0} 1494 | }, 1495 | {0, 1496 | {2,-1,6,0}, 1497 | {2,-1,6,0} 1498 | }, 1499 | {0, 1500 | {2,-1,6,0}, 1501 | {2,-1,6,0} 1502 | },1, 1503 | {0,22,1},0,1, 1504 | {0,22,3},0,0,0,0,16,12,0,0}, 1505 | {14,"ЧБ",4294967295,0,0,0}, 1506 | {0} 1507 | }, 1508 | {6ff79819-710e-4145-97cd-1618da79e3e2,24, 1509 | {1, 1510 | { 1511 | {10,1, 1512 | {3,4, 1513 | {0} 1514 | }, 1515 | {3,4, 1516 | {0} 1517 | }, 1518 | {6,3,0,1},1, 1519 | {3,3, 1520 | {-22} 1521 | }, 1522 | {3,4, 1523 | {0} 1524 | }, 1525 | {3,4, 1526 | {0} 1527 | }, 1528 | {3,3, 1529 | {-7} 1530 | }, 1531 | {3,3, 1532 | {-21} 1533 | }, 1534 | {3,0, 1535 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1536 | {1,0} 1537 | },10, 1538 | {1,1, 1539 | {"ru","Информация о файле"} 1540 | },1,1,0,0,0, 1541 | {3,0, 1542 | {0},"",-1,-1,1,0}, 1543 | {0,0,0},0,0}, 1544 | {1, 1545 | {0,e1692cc2-605b-4535-84dd-28440238746c, 1546 | {3,"ИнформацияОФайлеНажатие", 1547 | {1,"ИнформацияОФайлеНажатие", 1548 | {1,1, 1549 | {"ru","Информация о файле нажатие"} 1550 | }, 1551 | {1,1, 1552 | {"ru","Информация о файле нажатие"} 1553 | }, 1554 | {1,1, 1555 | {"ru","Информация о файле нажатие"} 1556 | }, 1557 | {3,0, 1558 | {0},"",-1,-1,1,0}, 1559 | {0,0,0} 1560 | } 1561 | } 1562 | } 1563 | } 1564 | }, 1565 | {8,354,128,509,151,1, 1566 | {0, 1567 | {2,-1,6,0}, 1568 | {2,-1,6,0} 1569 | }, 1570 | {0, 1571 | {2,24,0,23}, 1572 | {2,-1,6,0} 1573 | }, 1574 | {0, 1575 | {2,6,3,4}, 1576 | {2,-1,6,0} 1577 | }, 1578 | {0, 1579 | {2,24,2,155}, 1580 | {2,-1,6,0} 1581 | }, 1582 | {0, 1583 | {2,-1,6,0}, 1584 | {2,-1,6,0} 1585 | }, 1586 | {0, 1587 | {2,-1,6,0}, 1588 | {2,-1,6,0} 1589 | },1, 1590 | {0,24,1},0,1, 1591 | {0,24,3},0,0,0,0,17,18,0,0}, 1592 | {14,"ИнформацияОФайле",4294967295,0,0,0}, 1593 | {0} 1594 | }, 1595 | {6ff79819-710e-4145-97cd-1618da79e3e2,25, 1596 | {1, 1597 | { 1598 | {10,1, 1599 | {3,4, 1600 | {0} 1601 | }, 1602 | {3,4, 1603 | {0} 1604 | }, 1605 | {6,3,0,1},1, 1606 | {3,3, 1607 | {-22} 1608 | }, 1609 | {3,4, 1610 | {0} 1611 | }, 1612 | {3,4, 1613 | {0} 1614 | }, 1615 | {3,3, 1616 | {-7} 1617 | }, 1618 | {3,3, 1619 | {-21} 1620 | }, 1621 | {3,0, 1622 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1623 | {1,0} 1624 | },10, 1625 | {1,1, 1626 | {"ru","Страницы, как текст"} 1627 | },1,1,0,0,0, 1628 | {3,0, 1629 | {0},"",-1,-1,1,0}, 1630 | {0,0,0},0,0}, 1631 | {1, 1632 | {0,e1692cc2-605b-4535-84dd-28440238746c, 1633 | {3,"ИзвлечьКакТекстНажатие", 1634 | {1,"ИзвлечьКакТекстНажатие", 1635 | {1,1, 1636 | {"ru","Извлечь как текст нажатие"} 1637 | }, 1638 | {1,1, 1639 | {"ru","Извлечь как текст нажатие"} 1640 | }, 1641 | {1,1, 1642 | {"ru","Извлечь как текст нажатие"} 1643 | }, 1644 | {3,0, 1645 | {0},"",-1,-1,1,0}, 1646 | {0,0,0} 1647 | } 1648 | } 1649 | } 1650 | } 1651 | }, 1652 | {8,354,98,509,121,1, 1653 | {0, 1654 | {2,-1,6,0}, 1655 | {2,-1,6,0} 1656 | }, 1657 | {0, 1658 | {2,25,0,23}, 1659 | {2,-1,6,0} 1660 | }, 1661 | {0, 1662 | {2,6,3,4}, 1663 | {2,-1,6,0} 1664 | }, 1665 | {0, 1666 | {2,25,2,155}, 1667 | {2,-1,6,0} 1668 | }, 1669 | {0, 1670 | {2,-1,6,0}, 1671 | {2,-1,6,0} 1672 | }, 1673 | {0, 1674 | {2,-1,6,0}, 1675 | {2,-1,6,0} 1676 | },1, 1677 | {0,25,1},0,1, 1678 | {0,25,3},0,0,0,0,18,13,0,0}, 1679 | {14,"ИзвлечьКакТекст",4294967295,0,0,0}, 1680 | {0} 1681 | }, 1682 | {6ff79819-710e-4145-97cd-1618da79e3e2,26, 1683 | {1, 1684 | { 1685 | {10,1, 1686 | {3,4, 1687 | {0} 1688 | }, 1689 | {3,4, 1690 | {0} 1691 | }, 1692 | {6,3,0,1},1, 1693 | {3,3, 1694 | {-22} 1695 | }, 1696 | {3,4, 1697 | {0} 1698 | }, 1699 | {3,4, 1700 | {0} 1701 | }, 1702 | {3,3, 1703 | {-7} 1704 | }, 1705 | {3,3, 1706 | {-21} 1707 | }, 1708 | {3,0, 1709 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1710 | {1,0} 1711 | },10, 1712 | {1,1, 1713 | {"ru","Извлечь изображения"} 1714 | },1,1,0,0,0, 1715 | {3,0, 1716 | {0},"",-1,-1,1,0}, 1717 | {0,0,0},0,0}, 1718 | {1, 1719 | {0,e1692cc2-605b-4535-84dd-28440238746c, 1720 | {3,"ИзвлечьИзображенияНажатие", 1721 | {1,"ИзвлечьИзображенияНажатие", 1722 | {1,1, 1723 | {"ru","Извлечь изображения нажатие"} 1724 | }, 1725 | {1,1, 1726 | {"ru","Извлечь изображения нажатие"} 1727 | }, 1728 | {1,1, 1729 | {"ru","Извлечь изображения нажатие"} 1730 | }, 1731 | {3,0, 1732 | {0},"",-1,-1,1,0}, 1733 | {0,0,0} 1734 | } 1735 | } 1736 | } 1737 | } 1738 | }, 1739 | {8,354,69,509,92,1, 1740 | {0, 1741 | {2,-1,6,0}, 1742 | {2,-1,6,0} 1743 | }, 1744 | {0, 1745 | {2,26,0,23}, 1746 | {2,-1,6,0} 1747 | }, 1748 | {0, 1749 | {2,6,3,4}, 1750 | {2,-1,6,0} 1751 | }, 1752 | {0, 1753 | {2,26,2,155}, 1754 | {2,-1,6,0} 1755 | }, 1756 | {0, 1757 | {2,-1,6,0}, 1758 | {2,-1,6,0} 1759 | }, 1760 | {0, 1761 | {2,-1,6,0}, 1762 | {2,-1,6,0} 1763 | },1, 1764 | {0,26,1},0,1, 1765 | {0,26,3},0,0,0,0,19,7,0,0}, 1766 | {14,"ИзвлечьИзображения",4294967295,0,0,0}, 1767 | {0} 1768 | }, 1769 | {6ff79819-710e-4145-97cd-1618da79e3e2,27, 1770 | {1, 1771 | { 1772 | {10,1, 1773 | {3,4, 1774 | {0} 1775 | }, 1776 | {3,4, 1777 | {0} 1778 | }, 1779 | {6,3,0,1},1, 1780 | {3,3, 1781 | {-22} 1782 | }, 1783 | {3,4, 1784 | {0} 1785 | }, 1786 | {3,4, 1787 | {0} 1788 | }, 1789 | {3,3, 1790 | {-7} 1791 | }, 1792 | {3,3, 1793 | {-21} 1794 | }, 1795 | {3,0, 1796 | {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, 1797 | {1,0} 1798 | },10, 1799 | {1,1, 1800 | {"ru","Страницы, как изображения"} 1801 | },1,1,0,0,0, 1802 | {3,0, 1803 | {0},"",-1,-1,1,0}, 1804 | {0,0,0},0,0}, 1805 | {1, 1806 | {0,e1692cc2-605b-4535-84dd-28440238746c, 1807 | {3,"СтраницыКакИзображенияНажатие", 1808 | {1,"СтраницыКакИзображенияНажатие", 1809 | {1,1, 1810 | {"ru","Страницы как изображения нажатие"} 1811 | }, 1812 | {1,1, 1813 | {"ru","Страницы как изображения нажатие"} 1814 | }, 1815 | {1,1, 1816 | {"ru","Страницы как изображения нажатие"} 1817 | }, 1818 | {3,0, 1819 | {0},"",-1,-1,1,0}, 1820 | {0,0,0} 1821 | } 1822 | } 1823 | } 1824 | } 1825 | }, 1826 | {8,354,39,509,62,1, 1827 | {0, 1828 | {2,-1,6,0}, 1829 | {2,-1,6,0} 1830 | }, 1831 | {0, 1832 | {2,27,0,23}, 1833 | {2,-1,6,0} 1834 | }, 1835 | {0, 1836 | {2,6,3,4}, 1837 | {2,-1,6,0} 1838 | }, 1839 | {0, 1840 | {2,27,2,155}, 1841 | {2,-1,6,0} 1842 | }, 1843 | {0, 1844 | {2,-1,6,0}, 1845 | {2,-1,6,0} 1846 | }, 1847 | {0, 1848 | {2,-1,6,0}, 1849 | {2,-1,6,0} 1850 | },1, 1851 | {0,27,1},0,1, 1852 | {0,27,3},0,0,0,0,20,4,0,0}, 1853 | {14,"СтраницыКакИзображения",4294967295,0,0,0}, 1854 | {0} 1855 | } 1856 | } 1857 | },517,454,1,0,1,4,4,61}, 1858 | { 1859 | {1},12, 1860 | {8, 1861 | { 1862 | {1},0,0,1,"ОбработкаОбъект", 1863 | {"Pattern", 1864 | {"#",64e74960-5e33-4ba0-a41f-e96dd72433a6} 1865 | } 1866 | }, 1867 | { 1868 | {3},1,0,1,"ИмяФайла", 1869 | {"Pattern", 1870 | {"S"} 1871 | } 1872 | }, 1873 | { 1874 | {4},0,0,1,"ДобавленныеЭлементы", 1875 | {"Pattern"} 1876 | }, 1877 | { 1878 | {5},1,0,1,"ПерваяСтраница", 1879 | {"Pattern", 1880 | {"N",3,0,1} 1881 | } 1882 | }, 1883 | { 1884 | {6},1,0,1,"ПоследняяСтраница", 1885 | {"Pattern", 1886 | {"N",3,0,1} 1887 | } 1888 | }, 1889 | { 1890 | {9},1,0,1,"Качество", 1891 | {"Pattern"} 1892 | }, 1893 | { 1894 | {10},1,0,1,"Формат", 1895 | {"Pattern"} 1896 | }, 1897 | { 1898 | {11},1,0,1,"ЧБ", 1899 | {"Pattern", 1900 | {"B"} 1901 | } 1902 | } 1903 | }, 1904 | {7, 1905 | {5, 1906 | {2, 1907 | {1}, 1908 | {0,1315855e-50d7-48ba-8d1e-7e4fc2ccb72a} 1909 | } 1910 | }, 1911 | {8, 1912 | {1, 1913 | {3} 1914 | } 1915 | }, 1916 | {12, 1917 | {1, 1918 | {5} 1919 | } 1920 | }, 1921 | {14, 1922 | {1, 1923 | {6} 1924 | } 1925 | }, 1926 | {19, 1927 | {1, 1928 | {9} 1929 | } 1930 | }, 1931 | {21, 1932 | {1, 1933 | {10} 1934 | } 1935 | }, 1936 | {22, 1937 | {1, 1938 | {11} 1939 | } 1940 | } 1941 | } 1942 | }, 1943 | {59d6c227-97d3-46f6-84a0-584c5a2807e1,1, 1944 | {2,0, 1945 | {0,0}, 1946 | {0},1} 1947 | }, 1948 | {2, 1949 | {70001,e1692cc2-605b-4535-84dd-28440238746c, 1950 | {3,"ПриОткрытии", 1951 | {1,"ПриОткрытии", 1952 | {1,1, 1953 | {"ru","При открытии"} 1954 | }, 1955 | {1,1, 1956 | {"ru","При открытии"} 1957 | }, 1958 | {1,1, 1959 | {"ru","При открытии"} 1960 | }, 1961 | {3,0, 1962 | {0},"",-1,-1,1,0}, 1963 | {0,0,0} 1964 | } 1965 | } 1966 | }, 1967 | {70003,e1692cc2-605b-4535-84dd-28440238746c, 1968 | {3,"ПриЗакрытии", 1969 | {1,"ПриЗакрытии", 1970 | {1,1, 1971 | {"ru","При закрытии"} 1972 | }, 1973 | {1,1, 1974 | {"ru","При закрытии"} 1975 | }, 1976 | {1,1, 1977 | {"ru","При закрытии"} 1978 | }, 1979 | {3,0, 1980 | {0},"",-1,-1,1,0}, 1981 | {0,0,0} 1982 | } 1983 | } 1984 | } 1985 | },1,4,1,0,0,0, 1986 | {0}, 1987 | {0}, 1988 | {3,0, 1989 | {3,0, 1990 | {0},"",-1,-1,1,0} 1991 | },1,2,0,0,1,1} --------------------------------------------------------------------------------