|
Узнать количество страниц в файле odt | ☑ | ||
---|---|---|---|---|
0
Olga_Om
23.11.18
✎
07:50
|
Здравствуйте, уже несколько дней бьюсь над проблемой, нужно вычислить количество страниц в odt файле (Libreoffice).
OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(Имяфайла), "_blank", 0, Args); Pages = OOДокумент.PagesCount(); - метод объекта не обнаружен Pages = OOДокумент.getSheets; - метод объекта не обнаружен Pages = OOДокумент.getSheets.GetCount();- метод объекта не обнаружен Pages = OOДокумент.Sheets.GetCount;- метод объекта не обнаружен Как получить количество страниц??? Прошу помочь. |
|||
1
МихаилМ
23.11.18
✎
10:36
|
Sheets.GetCount()
|
|||
2
Olga_Om
23.11.18
✎
10:51
|
Sheets.GetCount() - выдает ошибку поле объекта не обнаружено. Я так понимаю, что sheets можно использовать только для calc, у меня же файл Writer.
|
|||
3
asady
23.11.18
✎
11:01
|
unzip -p sample.odt meta.xml | grep -oP '(?<=page-count=")[ A-Za-z0-9]*'
работает я проверил |
|||
4
Olga_Om
23.11.18
✎
11:42
|
А в моем случае как мне этим воспользоваться? =(
|
|||
5
asady
23.11.18
✎
11:48
|
(4) unzip-ом достаешь meta.xml
потом парсишь этот файл на предмет поиска значения параметра page-count (это и в 1С делается просто, можно и команду найти) |
|||
6
Olga_Om
23.11.18
✎
12:19
|
(5) Спасибо! Попробую. Думала можно как-то проще =(
|
|||
7
Garykom
гуру
23.11.18
✎
12:29
|
||||
8
Olga_Om
28.11.18
✎
12:33
|
В общем, количество листов нашла, но это мне не помогло... В чем вообще заключается моя задача, мне программно нужно открыть документ Openoffice writer и на каждой странице в колонтитул занести штрихкод.
Сначала хотела зациклить вставку штрихкода по количеству страниц, не привязываясь к колонтитулу, а просто указав на странице место для вставки, но не понимаю как перелистывать программно страницы и указать куда именно нужно вставить штрихкод. Поэтому решила добавить штрихкод в колонтитул на первой странице и он автоматом отобразиться на других. Самый простой способ сделать это через xml, на мой взгляд. Но где там хранится разделитель и как подсунуть туда мой штрихкод - не знаю =((((( |
|||
9
asady
28.11.18
✎
12:56
|
(8) может проще сделать сразу печатную форму с ШК и сохранить в формате odt
|
|||
10
Кирпич
28.11.18
✎
13:10
|
(8)Если штрихкоды одинаковые, то нужно один раз в колонтитул вставить и всё. Зачем страницы считать. А вабще (9)
|
|||
11
Garykom
гуру
28.11.18
✎
13:12
|
(8) >Самый простой способ сделать это через xml, на мой взгляд. Но где там хранится разделитель и как подсунуть туда мой штрихкод - не знаю
Создай вручную файлик с парой разных ШК в виде картинок "в колонтитулах", затем поизучай XML полученный внутри zip архива. Картинки буду внутри папки "Pictures" а куда и как их вставлять внутри "content.xml" в примерно таком виде:
Это если привязка к странице |
|||
12
Olga_Om
28.11.18
✎
13:19
|
(9) Использовать печатную форму не получится, потому как речь идет о готовых openoffice документах договоров.
(11) Спасибо! Попробую. |
|||
13
VS-1976
28.11.18
✎
13:45
|
(0) Как минимум GetSheets нужно писать так GetSheets(). Иначе 1С не будет считать что это вызов метода.
|
|||
14
VS-1976
28.11.18
✎
13:49
|
(7) Из статьи по идее количество страниц берётся так:
OOДокумент.getCurrentController().PageCount |
|||
15
VS-1976
28.11.18
✎
14:01
|
(14) или так OOДокумент.getCurrentController().PageCount()
|
|||
16
SSSSS_AAAAA
28.11.18
✎
14:12
|
(8) Разделитель не хранится. Хранится содержимое колонтитула. Посмотрите как это делается на любом хотя бы пустом документе с колонтитулом.
|
|||
17
VS-1976
28.11.18
✎
14:18
|
||||
18
Garykom
гуру
28.11.18
✎
14:20
|
(16) Чтобы были разные колонтитулы на разных страницах их надо "разделять разделителями" для смены "стиля"
|
|||
19
Olga_Om
29.11.18
✎
06:30
|
(11) Если добавлять картинку в колонтитул, то в content.xml ничего не записывается, это всё пишется в styles.xml, мне осталось понять как добавить новый тег в xml и в какое место правильно это сделать, потому как если документ изначально был без колонтитула, то в styles вообще нет блока footer где хранятся эти данные. Буду изучать xml, другого варианта нет. Спасибо!
(14) OOДокумент.getCurrentController().PageCount() - не работает, (15) OOДокумент.getCurrentController().PageCount() - не работает. |
|||
20
SSSSS_AAAAA
29.11.18
✎
09:55
|
(19) В общем-то, количество страниу -величина вычисляемая непрерывно в процессе редактирования документа. Ибо очень сильно зависит параметров устройства вывода. В любом случае знание этой величины на расстановку и заполнение колонтитулов никак не влияет. обратное же действие - заполнение колонтитулов - на количество страниц влияет очень сильно. Короче, оставьте количество страниц в покое.
|
|||
21
Olga_Om
29.11.18
✎
11:50
|
(20) Да уже оставила. Но с колонтитулами еще сложнее =(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |