Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Изменение PDF из 1с

Изменение PDF из 1с
Я
   zippygrill
 
22.07.21 - 16:21
Привет!
Дано pdf документ с заполняемыми полями, а ля https://prnt.sc/1ecz2h2
Если заполняемую часть - заполняет человек (да и программно можно обратится и заполнять), то другую часть, там где у меня переменные "v8Отпуск_планПериод_х" надо как то заполнить информацией из 1С.
Согласно документации Adobe, можно по OLE взаимодействовать с файлом https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/pdfs/acrobatsdk_iacguide.pdf
Наклепал пока такое. Либо я не нашел, либо вообще нет возможности обратится в pdf чтобы точно попасть в мои переменные (как обычный текст) и устанавливать/заменить значения.

Библиотеки сторонних разработчиков, если есть на уме тоже рассмотрю. Важно чтобы там была возможность менять текст (а не Crop, Merge файлов).


    doc = Новый COMОбъект("AcroExch.PDDoc");
    doc.Open(ИмяВременногоФайла);
    avDoc = doc.OpenAVDoc(ИмяВременногоФайла);
    AcroExch = Новый COMОбъект("AcroExch.App");
    form = Новый COMОбъект("AFormAut.App");
    
    AcroRect = Новый COMОбъект("AcroExch.Rect");
    AcroRect.Left = 35;
    AcroRect.Right = 785;
    AcroRect.Top = 1000;
    AcroRect.Bottom = 22;
    TextSelect = doc.CreateTextSelect(0, AcroRect);
    NumText = TextSelect.GetNumText();
    
    Для i = 0 по NumText -1 цикл
        Сообщить(TextSelect.gettext(i));        
    КонецЦикла;
   zippygrill
 
1 - 22.07.21 - 16:23
pdf еще раз https://prnt.sc/1ed2t6g
   zippygrill
 
2 - 22.07.21 - 16:23
prtn сейчас не работает..
   zippygrill
 
3 - 22.07.21 - 16:25
вполне вероятно что надо сперва выделить текст, потом заменить через ole AcroExch
   sitex
 
4 - 22.07.21 - 17:00
(0) Что мешает это все заполнить в 1С и сохранить в таком же виде в pdf ?
   zippygrill
 
5 - 22.07.21 - 18:30
(4) Из 1с невозможно заполняемые поля сделать в pdf
   sitex
 
6 - 22.07.21 - 18:34
(5) у вас что pdf уже заполннен и его надо дополнить ?
   zippygrill
 
7 - 25.07.21 - 17:24
(6) Да
   Garykom
 
8 - 25.07.21 - 17:28
(0) не проще весь документ заполнять из 1С?
а потом сохранять в готовый PDF
т.е. пусть юзер не в некоем внешнем вьювере PDF заполняет а потом как то данными из 1С дополнять

а вместо этого сделать формочку в 1С и там юзер заполняет а потом дополнять нужными данными из 1С и все программно в PDF!
   zippygrill
 
9 - 25.07.21 - 17:29
(8) Из 1с невозможно заполняемые поля сделать в pdf
   Garykom
 
10 - 25.07.21 - 17:32
(9) нахрен заполняемые полностью готовый PDF уже заполненный
   Garykom
 
11 - 25.07.21 - 17:33
(10)+ цель PDF документа его переносимость и печать причем одинаковая на разных устройствах
или надо заполненные поля потом править? нахрена?
   Garykom
 
12 - 25.07.21 - 17:33
короче убрать эти заполняемые и данные туда хардкорно
   zippygrill
 
13 - 25.07.21 - 17:35
(12) Там суть в том что из 1с сотруднику выгружается заявление на перенос отпуску. в таблице слева, из 1с выгружается его запланированный отпуск, а в таблице справа - он сам должен проставлять на какие дни переносить.
Бл* почему не использовать word - не пойму..выкрутасы какие-то..
   ДедМорроз
 
14 - 25.07.21 - 17:50
Pdf это открытый формат,можно читать и писать как двоичные данные,если что.
И как бы word - это нифига не стандарт,в отличие от pdf.
Другое дело,что заполнять логичнее xml,а уже на его основе генерить печатную форму.
   zippygrill
 
15 - 25.07.21 - 17:53
(14) Пример в студию?
   Garykom
 
16 - 25.07.21 - 17:59
(13) ну так пусть сотрудник все в 1С и делает!
нахрена этот PDF то?
   Garykom
 
17 - 25.07.21 - 18:00
(16)+ Раньше такое с XLS делали и тоже не понимал нахрена
Когда есть HTML что намного удобней
   Garykom
 
18 - 25.07.21 - 18:00
(17)+ в смысле или сразу в 1С делаем, или делаем онлайн формы снаружи 1С для юзеров не имеющих доступа в 1С
и эти онлайн формы связываем с 1С как надо

Список тем форума
 
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.