Снова PDF и 1С #744341


#0 by retributor
1С 8.3. Конфигурация Комплексная автоматизация, но это и неважно. Так получилось, что поставили в дурацкую ситуацию. Есть pdf с доступными полями, в которые надо вписать данные. Сделать это надо программно из 1C. При этом, есть только OpenOffice (который бесполезен в данном вопросе), 1С и Adobe Reader. Другого софта не влепить. Итог, есть только Adobe Reader для целей. Есть такая вот книжка (тоже на форуме где-то нашел): Может, кто сталкивался, очень прошу, подскажите пожалуйста, как можно хотя бы просто обратиться из 1с к объектам Document и Field. Желательно COM, но можно и через скрипт.
#0 by retributor
1С 8.3. Конфигурация Комплексная автоматизация, но это и неважно. Так получилось, что поставили в дурацкую ситуацию. Есть pdf с доступными полями, в которые надо вписать данные. Сделать это надо программно из 1C. При этом, есть только OpenOffice (который бесполезен в данном вопросе), 1С и Adobe Reader. Другого софта не влепить. Итог, есть только Adobe Reader для целей. Есть такая вот книжка (тоже на форуме где-то нашел): Может, кто сталкивался, очень прошу, подскажите пожалуйста, как можно хотя бы просто обратиться из 1с к объектам Document и Field. Желательно COM, но можно и через скрипт.
#1 by Господин ПЖ
>есть только Adobe Reader для целей. этого мало
#2 by Господин ПЖ
работать программно с pdf может adobe X и разные сторонние приблуды
#3 by разработчик 1с
надо в чонить сохранить, из чего бесплатно пдф можно сделать. в хроме пдф принтер как вариант
#4 by retributor
ничего не поделать. Это все, что есть. И перечень софта расширять нельзя никак. Все вопросы к клиентам. Предполагаю, что по COM к Adobe Reader можно присобачиться (есть же "AcroPDF.PDF", только он, вроде как, как не годится). Мысль какого плана, если можно открыть в нем данный pdf, заполнить все вручную и сохранить, должен быть способ сделать это программно.
#5 by 18_plus
а ридер разве позволяет редактировать?
#6 by Fragster
а там в пдфке вот что: With Adobe Reader, JavaScript can be used for a number of tasks: ? To develop and process Acrobat forms and XML forms
#7 by Garykom
adobe "reader" может все... кроме "сохранить"
#8 by retributor
пересохранение недопустимо. Обращу внимание, pdf векторный, пересохранение его покорежит. ну вручную сохранял, норм, заполнение запоминает
#9 by sapphire
#10 by retributor
это опять же сторонний софт. Может, есть хотя бы имя, по которому через COM можно обратиться к Reader'у?
#11 by Господин ПЖ
нихера он не может... кроме как "save as" по сути
#12 by 18_plus
а вот такой есть AcroExch.App ?
#13 by retributor
насколько знаю, AcroExch - это сам акробат. Его нету. Проверил сейчас, не видит Com-объект.
#14 by Господин ПЖ
>заполнить все вручную и сохранить, должен быть способ сделать это программно кому "должен"? документацию и прочее ради этого как раз в pdf и закатывают - чтобы ушлые юзера не вписали в текст отсебятины и не предъявили иск потом - "мы все делали по инструкции"
#15 by sapphire
Нужен Acrobat или использовать что-то типа iTextSharp
#16 by retributor
здесь не документация. Хуже, шаблоны графических принтформ. И это pdf-ки, которые именно допускают внесение текста в некоторые поля, то есть они созданы были так, чтобы можно было внести изменения в некотором диапазоне. Значения полей я там меняю, но сдвинуть поля не могу.
#17 by Господин ПЖ
>ничего не поделать. Это все, что есть. поднять руку. И опустить. (с) к/ф "Все будет хорошо" в текущих установках задача положительного решения не имеет
#18 by sapphire
Ну заполнишь ты его программно, дальше-то что? Если в документ встроен jsсript, например, для формирования двумерного ШК, который отрабатывает при событии Acrobat WILL_PRINT, то как его вызвать будешь? :)
#19 by retributor
погодите с категоричностью. Я уже изложил, что раз в пользовательском варианте возможность сделать это есть, должна быть и в программном. ничего там такого нет. Только в разрешенные поля внести текст, больше ничего. Это просто бланки с графическим оформлением. Причем, это оформление сыпется при попытке именно изменить pdf. Внести данные текстовые поля - никаких проблем, пользователь может легко это сделать и сохранить результат.
#20 by sapphire
напиши в техподдержку Adobe, какие оне противные и не дают возможность программно менять их формы :)
#21 by Гёдза
у ридера вроде никаких комов нет
#22 by Гёдза
ставить autoit  и тупо нажимать батоны
#23 by sapphire
Можно распаковать в ps, поправить поля и запаковать обратно :)
#24 by sapphire
есть, но не те и не для того.
#25 by sapphire
Соббсно, вроде как из jsсript в рамках страницы можно достучаться до форм внутри
#26 by Господин ПЖ
>раз в пользовательском варианте возможность сделать это есть, должна быть и в программном. это ложная ассоциация
#27 by retributor
а какие? можете дать имена объектов? можно. Я ж об этом и говорил. Но через jscript из 1С немного неудобно. Во-первых, java практически не знаю, то есть, у меня нет примеров обращений к объектам, из которых можно было бы как-то подчерпнуть методы и/или имена объектов. Во-вторых, 1С для работы даже через java все равно требуется COM-объект, имя которого мне неизвестно.
#28 by retributor
если Вам неизвестно решение, это не значит, что его нет. Или Вы - сотрудник Adobe и знаете наверняка? Да и насчет ложности могу сказать, что у меня большие сомнения в том, что такая фирма как Adobe не предусмотрела чего-то такого.
#29 by Гёдза
можно с помощью кликеров
#30 by Господин ПЖ
это не решение, это эмуляция
#31 by sapphire
java!=jscript COM Объект в данном случае - окно iExplorer, например
#32 by sapphire
Ну так и обратитесь к Adobe в таком случае.
#33 by Господин ПЖ
мне на надо быть сотрудником адоба все что с ридером сделать можно описано в
#34 by Гёдза
Решение - это когда есть результат
#35 by sapphire
кликеры научились работать с невидимыми окнами?
#36 by Господин ПЖ
помню они чего-то в jscript докручивали у себя не так давно - pdf с "плохим" внедренным скриптом мог сделать что-то вредоносное на компе
#37 by Господин ПЖ
открылась форма, а поверх другая со смещением - куда кликать будешь?
#38 by sapphire
Ну да, уровень изоляции скрипта теперь есть
#39 by Гёдза
Почему невидимые?
#40 by sapphire
Т.е. заполнение будет происходить на экране, хоть и программно? А если Esc нажмут?
#41 by sapphire
+ если заполнение на сервере без X-ов и Windows?
#42 by Господин ПЖ
кто выписки в pdf парсил - то в цирке не смеется...
#43 by sapphire
:)
#44 by Garykom
Может не заниматься копанием канала выданной лопатой? А сделать "Дано" > "Надо" простым способом? Задача то отвлекаясь от PDF какая? Да на том компе низзя софт допустим ставить, но разве нильзя переслать/отправить эти PDF'ки на другой комп/сервер, обработать их там и вернуть назад? Или вообще нафик эти PDF и с чем то другим работать (начальные PDF можно сконвертить на другом компе/сервере)
#45 by Garykom
гыгыгы все клиенты (банк или биллинг) что видел допускали кроме pdf еще экспорт в xls или csv как минимум... парсинг pdf это "распечатать 2 камаза бумаги, чтобы потом эти 2 камаза распознавать"
#46 by retributor
Не надо лишних окон. Клиентам это не понравится. Задача - данный pdf (и именно его и именно в pdf), нарисованный в векторе (и именно поэтому не допускающий переконвертаций, дабы не потерять расцветку для типографии) заполнить и сохранить в виде другого pdf. Заполнение изначальным pdf-ом предусматривается (так называемая, форма заполнения) и работает в пользовательском режиме в Acrobat Reader. Мне необходимо тоже самое провернуть программно из 1С.
#47 by retributor
забыл сказать, софтовая расширяемость практически отсутствует. Клиентов не уговорить поставить что-то еще.
#48 by Garykom
pdf в векторе для типографии... )) откройте для себя корел дроу...
#49 by Garykom
у клиентов есть интернет? просто задача из разряда хочу на легковушке гараж перетащить... варианты решения: 1. имитация из 1С действий юзверя по работе с реадером 2. отправка исходника и данных заполнения на другой комп/сервер возможно через инет 3. установка доп.софта, любого от полного акробата или корел дроу или ВК для 1с
#50 by retributor
В котором и делались эти pdf и который никто не собирается покупать. Он стоит только у дизайнера этих pdf. Ни одно из решений не является приемлемым. 1. Лишние окна. 2. Куда? И зачем? Как будто кто-то одобрит установку софта на другом компе той же компании. А свой домашний я этим нагружать не стану, и уж тем более, он не будет включен, пока я на работе, это электричество это никто не оплатит. 3. Не обсуждается даже. ВК разве что протолкнуть, и то, если для ее установки нужны права администратора (а скорее всего так оно и есть) - админ не пропустит. Есть версии, подходящие под условия, которые у меня имеются?
#51 by МимохожийОднако
ОФФ: Какой настырный однако.
#52 by Garykom
есть... ценник озвучьте для операций на гландах...ректально сразу все появится и админский доступ и софт какой надо купят и поставят
#53 by retributor
ректальную тонзилэктомию сейчас дешево делают лазером. И ее нынче частенько прописывают особо вредным пожилым... а ладно. А если серьезно, расценки назначаю не я, так что выставить дикий ценник попросту не в моих силах.
#54 by Garykom
Гм еще такой веселый вариантик решения проблеммки а зачем нужно именно в пдф засовывать данные? не проще ли напечатать эти бумажки-шаблоны с пустыми полями заранее и потом из 1с просто в нужные места печатать что надо?
#55 by Garykom
+ у нас так подарочные сертификаты делаются
#56 by retributor
Опять же, вопрос немного не по адресу. Но дело в том, что сейчас именно так, через pdf, делается вручную, они просто хотят автоматизировать процесс, чтобы исключить ошибки при наборе и в целом упростить процесс. Блин, сейчас сижу и попросту не въезжаю... неужели без извращений и окольных путей не существует варианта приобщить 1с к Adobe Reader?
#57 by spectre1978
я так понимаю, проблема не в приобщении, а в том, что адобе ридер не предоставляет COM-интерфейса, который позволял бы автоматизированно заполнять PDF формы. Т.е. вопрос в данном случае к фирме адобе, а не к 1С.
#58 by retributor
Может, и так. Хотя на java можно это сделать, очевидно, через иной интерфейс. Тут вопрос в том, что java я почти не знаю, а хоть сколь-нибудь рабочего примера, на который можно было бы опереться в экспериментах, найти не удалось.
#59 by spectre1978
если существует возможность обернуть C#-библиотеки для вызова из 1С (не в курсе, можно или нет) - тогда варианты есть. Хотя бы iTextSharp, о котором написано в .
#60 by retributor
я точно знаю, что из 1С можно дотянуться через javascript до глубин OpenOffice, уже проделывал это (но у меня был под рукой sdk и множество рабочих примеров, которые я, правда, переводил из, кажется, vb на 1С). Можно ли через те же скрипты дотянуться до ридера - фиг знает.
#61 by spectre1978
Какие-то платные решения встречаются
#62 by retributor
спасибо, но это перебор. И что-то мне подсказывает, что эта компонента несколько иначе реализована, чем мне нужно, то есть даже разобрав ее, я не получу искомого. То есть, такой функционал - явно больше, чем можно получить от ридера.
#63 by Lama12
Отпишись если решишь задачу в заданых условиях.Как вариант через скрипты операционки иметировать деятельность пользователя, но боюсь документы не имеют шаблона.
#64 by SlaBoy
Решение по поводу работы с Acrobat Reader'om как с СОМ объектом пришло в нашей совместной беседе с Андреем П. вчера вечером. сразу скажу, что  тоже не спец в яве (да и задача не моя, всего лишь был консультантом-посредником у вашего заказчика), но Яндекс, терпение и желание - "наше - всё". Ссылки, которые "тоже на форуме где-то нашел" - найдены сегодня оттудаже, из яндекса)) Вот ещё одна с примером подключения к объекту  AcroExch: По поводу этого AcroExch... только что проверил идею... на компе полный Акробат не стоит. Попробовал в Ворде вставить объект "Adobe Acrobat Document",  сохранив действия в макрос. Вот что получилось: Из чего делается предположение, что AcroExch - таки объект Ридера. И работать с ним - можно. И обращаться к его коллекции Fields, и прописывать в нужные поля  ФИО участника семинара,  название, город, и проч... Ну а дальше - пробуйте... Результат очень интересен и полезен. Хотелось бы, чтобы у Вас получилось! Успехов!
#65 by SlaBoy
Вот тут справочник API к "взрослому" акробату, но это не так важно, зато есть примеры обращений к методам/свойствам, в том числе и к Field
#66 by retributor
Спасибо большое! Посмотрю, что из этого можно получить.
#67 by Вася Чез
не знаю было ли, но думаю автору поможет Выгрузка в PDF из 1С (Средствами OpenOffice)
#68 by retributor
Вы несколько невнимательны. Как раз об этой возможности я знаю прекрасно, я ее пытался применить и в данном случае, она ничем мне не поможет. К тому же, в большинстве случаев (не помню этого в 8.2, ни разу не понадобилось, но в 8.3 однозначно работает, я проверял) можно табличный документ просто выгрузить в pdf штатными средствами 1С.
#69 by spectre1978
#70 by Господин ПЖ
>все клиенты (банк или биллинг) что видел ты видел не все
#71 by retributor
увы, не помогло. Я перепроверил методы из API, ни один не срабатывает. Более того, по реестру посмотрел иные варианты AcroExch.[]. Ни по одному не сработало. Похоже, нужен AcroExch.App или AcroExch.AVDoc, а они недоступны для ридера.
#72 by retributor
В общем, наконец удалось уговорить на сторонний софт для выполнения цели. Но он должен быть бесплатным. Foxit или какой аналог. Есть подсказки?
#73 by Garykom
так не спорю что могут быть клиенты с "только в pdf" но скажем откуда то данные же для pdf берутся...и гораздо проще им (владельцу клиента) в "нормальный" формат экспорт добавить чем писать некий распознаватель-конвертер
#74 by Бубка Гоп
см
#75 by retributor
Не годится. Я из 1С с ней программно не поработаю.
#76 by Garykom
#77 by Бубка Гоп
там подборка библиотек для c# я бы попробовал создать свою компоненту на основе одной из тех библиотек, и обращался бы к ней из 1с
#78 by Бубка Гоп
+ потом вывесил на инфостарте ;)
#79 by Гёдза
Ты вообще кто в компании? Фикси или фри?
#80 by Гёдза
Подходишь к директору и говоришь: для решения данной хитро..опой задачи нужно то-то и то-то. Стоит это то-то столько-то. Иначе никак нельзя
#81 by spectre1978
+1. Бесплатные компоненты под C# есть вроде как, вопрос их обернуть чтобы из-под 1С вызвать можно было. Либо поискать activex, который сам по себе из 1С работать будет. Вы неправильно работаете с вашим руководством. Надо сразу было объяснить что задача нестандартная и могут понадобиться платные компоненты для ее решения.
#82 by spectre1978
Обращение из поста было к
#83 by beaver1971
Adobe Reader - не прокатит..... То API, которое есть в нем (как я понял из всего, что перечитал на эту тему) всего лишь доступ к стандартным функциям меню Reader. Нужен полноценный Acrobat, который платный.
#84 by retributor
у меня на это нет времени. Сроки того, истекли. Да и на чем ВК писать-то? задача-то изначально такой хитрозадой не представлялась. Да и платный софт покупать никто не будет. тоже самое. предполагалось, что ридер работает сходно с вордом или, в крайнем случае, с опенофисом. О том, что это полная двуховальная конструкция мысли не приходило.
#85 by Garykom
образец своих PDF для заполнения и печати выложить можешь?
#86 by retributor
к сожалению, нет. Но я готов описать все технические детали, какие надо.
#87 by Господин ПЖ
>предполагалось, что ридер работает сходно с вордом или, в крайнем случае, с опенофисом. откуда у вас эти ассоциации... шуруповертом зубы не сверлят хотя все "сходно"
#88 by spectre1978
очевидно, это будет ВК на C#, которая будет дергать нужные вызовы из приложенной тут же DLL
#89 by Бубка Гоп
именно. и не так уж долго это пишется. вангую сейчас автор начнет жаловаться что у него и студии нет...
#90 by Господин ПЖ
SharpDevelop пусть ставит
#91 by retributor
Это очень очевидная ассоциация и слишком очевидное решение. И я очень удивлен, что Adobe этого не сделала. И прекращайте, пожалуйста, форсировать этот вопрос. C# это не ко мне. я даже отвечать на это не буду. решение с написанием собственной компоненты не подходит.
#92 by Бубка Гоп
покупать акробат - не подходит. написать своё - тоже не подходит. патовая ситуация
#93 by Garykom
отлично, для начала: а в какой версии формата pdf ваши секретные файлики?
#94 by retributor
Производитель PDF: Corel PDF Engine Version 16.4.0.1280 Версия PDF: 1.6 (Acrobat 7.x)
#95 by spectre1978
адобе все сделала. Но адобе за свои программы хочет денег. Странно, да?
#96 by spectre1978
что ж, может кто-то сможет предложить другие варианты. Мне больше ничего не видится пока.
#97 by retributor
Не все, как показывает практика. Они вполне могли сделать вменяемый межпрограммный интерфейс для ридера.
#98 by retributor
Честное слово, они сделали ActiveX, но не сделали программного интерфейса. И вопрос, где логика?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С