|
разделение файла PDF на отдельные страницы | ☑ | ||
---|---|---|---|---|
0
alexsandrinia
16.03.16
✎
13:18
|
Подскажите, может кто сталкивался - как можно при помощи 1С обработать многостраничный файл pdf - нужно постранично разбить на файлы (одна страница - один файл).
На форме добавил ActiveX AdobePDFReader, вывожу туда файл. Выводится целиком весь. Нужно по странично. |
|||
1
Garykom
гуру
16.03.16
✎
13:43
|
||||
2
alexsandrinia
17.03.16
✎
08:31
|
есть ещё другие варианты? по этой ссылке нет dll
|
|||
3
Rie
17.03.16
✎
08:40
|
(2) Зато по этой ссылке есть волшебное слово "itextsharp", а кто имеет доступ к этому форуму - того и в гугде не банят.
Есть и другой способ. PDF - это текстовый файл. Его можно распарсить, найти нужную страницу, вырезать, сформировать как отдельный документ - и всё это штатными средствами 1С, не обращаясь к сторонним библиотекам. |
|||
4
alexsandrinia
17.03.16
✎
08:42
|
(3) так там вроде библиотеку собирать надо
|
|||
5
Rie
17.03.16
✎
08:44
|
(4) "Собирать" - это "скачать архив и распаковать"?
|
|||
6
alexsandrinia
17.03.16
✎
08:49
|
(5) я скачал архив, распаковал. но при регистрации библиотеки выходит ошибка
модуль такой-то загружен, но точка входа такая-то не найдена |
|||
7
Кирпич
17.03.16
✎
09:00
|
(0) щас в гугле поищу
|
|||
8
Кирпич
17.03.16
✎
09:00
|
это смотрел?
https://ru.wikipedia.org/wiki/Pdftk |
|||
9
Кирпич
17.03.16
✎
09:01
|
||||
10
alexsandrinia
17.03.16
✎
09:09
|
(8) программу там нужно устанавливать, что не хотелось бы
|
|||
11
Кирпич
17.03.16
✎
09:18
|
(10) тогда сразу напиши как хотелось бы. чо я как придурок по интернету буду скакать и искать неизвестно что.
|
|||
12
alexsandrinia
17.03.16
✎
09:19
|
(11) так я же вроде так и написал, нужна dll
|
|||
13
Кирпич
17.03.16
✎
09:23
|
и чо ты с этой dll делать будешь? или тебе ВК нужно? если ВК нужно, то найми программиста, он тебе напишет.
|
|||
14
NikVars
17.03.16
✎
09:26
|
(10) А длл-ку не нужно "устанавливать"?!
BullZip Умеет разбивать на страницы. 1C xls PDF Пост 10 как это в 1С. |
|||
15
DDwe
17.03.16
✎
09:29
|
(3) Может и ссылку на формат дашь?
|
|||
16
Кирпич
17.03.16
✎
09:37
|
(15) вот тебе ссылка, в гугле забаненый.
http://www.adobe.com/devnet/pdf/pdf_reference.html |
|||
17
Одинесю
17.03.16
✎
09:40
|
(16) ая.
|
|||
18
Кирпич
17.03.16
✎
09:42
|
(17) тогда просто "вот ссылка"
|
|||
19
Провинциальный 1сник
17.03.16
✎
09:44
|
(3) "PDF - это текстовый файл."
В общем случае - не текстовый. Он может быть текстовым, но не обязан. |
|||
20
NikVars
17.03.16
✎
09:46
|
(19) Ну вот разрушил красивую теорию...
|
|||
21
Rie
17.03.16
✎
09:47
|
(19) Обязан. Другой вопрос - как в этом тексте закодирована информация (и упакованные блоки - тоже ведь в определённом смысле текст).
|
|||
22
RomaH
naïve
17.03.16
✎
09:51
|
ИмяИсходногоФайла = ПолучитьИмяВременногоФайла("pdf");
ДД = ФайлИсследований.Получить(); Если ТипЗнч(ДД) = Тип("ДвоичныеДанные") Тогда ДД.Записать(ИмяИсходногоФайла); Пока Выборка.Следующий() Цикл ИмяСводногоФайла = Выборка.Получатель + " " + Формат(ДатаФайла,"ДФ=ддММгг_ЧЧ_мм") + ".pdf"; Скрипт = Новый COMОбъект("WScript.Shell"); ИмяКаталогаУтилит = """C:\Program Files (x86)\PDFtk Server\bin\"; Страницы = ""; ВыборкаСтраниц = Выборка.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока ВыборкаСтраниц.Следующий() Цикл Страницы = Страницы + " " + ВыборкаСтраниц.Страницы; КонецЦикла; ИмяФайлаРезультата = КаталогОбмена + "Сводные\" + ИмяСводногоФайла; ТекстКоманды = ИмяКаталогаУтилит + "pdftk.exe"" " + ИмяИсходногоФайла + " cat" + Страницы + " output " + """" + ИмяФайлаРезультата + """"; Скрипт.Run(ТекстКоманды, 0, 1); //ДД.Записать(КаталогОбмена + "Сводные\" + ИмяСводногоФайла); ФайлАнализа = Новый Файл(КаталогОбмена + "Сводные\" + ИмяСводногоФайла); ФайлАнализа.УстановитьВремяИзменения(ДатаФайла); КонецЦикла; |
|||
23
RomaH
naïve
17.03.16
✎
09:53
|
pdftk
можно не устанавливать - можно во временные файлы распаковывать и пользовать |
|||
24
RomaH
naïve
17.03.16
✎
09:54
|
вроде бы - мы не заморачивались - поставили на сервер и забыли
|
|||
25
Кирпич
17.03.16
✎
09:58
|
(23) вот именно. а если хочет обязательно DLL, то пускай переименует pdftk.exe в pdftk.dll. работать будет так же.
|
|||
26
alexsandrinia
17.03.16
✎
10:07
|
спасибо большое, помогли!
|
|||
27
Провинциальный 1сник
17.03.16
✎
10:20
|
(21) Вот если бы блоки были закодированы в текст - тогда можно было бы говорить о текстовом формате pdf. Иначе это текст с бинарными вставками, то есть - бинарник.
|
|||
28
Rie
17.03.16
✎
12:00
|
(27) Они из текста в текст закодированы. И это явно оговорено - насчёт 8-битного байта и т.п. Способ хранения не меняет сущности. Если я упакую, к примеру, fb2 - он перестанет быть текстом? Если да - то это вопрос терминологии, а не по сути.
|
|||
29
Rie
17.03.16
✎
12:08
|
+(27) Это не размышлизмы, а реальная задача: "Ростелеком" лет десят назад (а может, и сейчас так) биллинги рассылал в PDF, а на предложения иных форматов отвечал что-то вроде "сами половосношайтесь". Вот и пришлось парсить.
|
|||
30
Кирпич
17.03.16
✎
12:22
|
(28) так там есть бинарные вставки или нету? я щас глянул, вроде есть.
|
|||
31
Rie
17.03.16
✎
16:49
|
(30) Есть.
|
|||
32
Провинциальный 1сник
17.03.16
✎
16:54
|
(28) Если вы упакуете бинарные данные в base64, uue или hex - тогда это текст. Суть в том, что там не должно быть нетекстовых символов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |