Распечатать программно pdf из 1с
(1) ничего не поделать. Это все, что есть. И перечень софта расширять нельзя никак. Все вопросы к клиентам.
Предполагаю, что по COM к Adobe Reader можно присобачиться (есть же "AcroPDF.PDF", только он, вроде как, как не годится). Мысль какого плана, если можно открыть в нем данный pdf, заполнить все вручную и сохранить, должен быть способ сделать это программно.
(1) а там в пдфке вот что:
With Adobe Reader, JavaScript can be used for a number of tasks:
?
To develop and process Acrobat forms and XML forms
(3) пересохранение недопустимо. Обращу внимание, pdf векторный, пересохранение его покорежит.
(7) ну вручную сохранял, норм, заполнение запоминает
(9) это опять же сторонний софт.
Может, есть хотя бы имя, по которому через COM можно обратиться к Reader'у?
кому "должен"? документацию и прочее ради этого как раз в pdf и закатывают - чтобы ушлые юзера не вписали в текст отсебятины и не предъявили иск потом - "мы все делали по инструкции"
(14) здесь не документация. Хуже, шаблоны графических принтформ. И это pdf-ки, которые именно допускают внесение текста в некоторые поля, то есть они созданы были так, чтобы можно было внести изменения в некотором диапазоне. Значения полей я там меняю, но сдвинуть поля не могу.
(0) Ну заполнишь ты его программно, дальше-то что?
Если в документ встроен jsсript, например, для формирования двумерного ШК, который отрабатывает при событии Acrobat WILL_PRINT, то как его вызвать будешь? :)
(17) погодите с категоричностью. Я уже изложил, что раз в пользовательском варианте возможность сделать это есть, должна быть и в программном.
(18) ничего там такого нет. Только в разрешенные поля внести текст, больше ничего. Это просто бланки с графическим оформлением. Причем, это оформление сыпется при попытке именно изменить pdf. Внести данные текстовые поля - никаких проблем, пользователь может легко это сделать и сохранить результат.
(19) напиши в техподдержку Adobe, какие оне противные и не дают возможность программно менять их формы :)
>раз в пользовательском варианте возможность сделать это есть, должна быть и в программном.
это ложная ассоциация
(24) а какие? можете дать имена объектов?
(25) можно. Я ж об этом и говорил. Но через jscript из 1С немного неудобно. Во-первых, java практически не знаю, то есть, у меня нет примеров обращений к объектам, из которых можно было бы как-то подчерпнуть методы и/или имена объектов. Во-вторых, 1С для работы даже через java все равно требуется COM-объект, имя которого мне неизвестно.
(26) если Вам неизвестно решение, это не значит, что его нет. Или Вы - сотрудник Adobe и знаете наверняка? Да и насчет ложности могу сказать, что у меня большие сомнения в том, что такая фирма как Adobe не предусмотрела чего-то такого.
(28) мне на надо быть сотрудником адоба
помню они чего-то в jscript докручивали у себя не так давно - pdf с "плохим" внедренным скриптом мог сделать что-то вредоносное на компе
Может не заниматься копанием канала выданной лопатой?
А сделать "Дано" > "Надо" простым способом?
Задача то отвлекаясь от PDF какая?
Или вообще нафик эти PDF и с чем то другим работать (начальные PDF можно сконвертить на другом компе/сервере)
все клиенты (банк или биллинг) что видел допускали кроме pdf еще экспорт в xls или csv как минимум.
парсинг pdf это "распечатать 2 камаза бумаги, чтобы потом эти 2 камаза распознавать"
(31) Не надо лишних окон. Клиентам это не понравится.
(44) Задача - данный pdf (и именно его и именно в pdf), нарисованный в векторе (и именно поэтому не допускающий переконвертаций, дабы не потерять расцветку для типографии) заполнить и сохранить в виде другого pdf. Заполнение изначальным pdf-ом предусматривается (так называемая, форма заполнения) и работает в пользовательском режиме в Acrobat Reader. Мне необходимо тоже самое провернуть программно из 1С.
(44) забыл сказать, софтовая расширяемость практически отсутствует. Клиентов не уговорить поставить что-то еще.
(47) у клиентов есть интернет?
просто задача из разряда хочу на легковушке гараж перетащить.
варианты решения:
1. имитация из 1С действий юзверя по работе с реадером
2. отправка исходника и данных заполнения на другой комп/сервер возможно через инет
3. установка доп.софта, любого от полного акробата или корел дроу или ВК для 1с
(48) В котором и делались эти pdf и который никто не собирается покупать. Он стоит только у дизайнера этих pdf.
(49) Ни одно из решений не является приемлемым.
1. Лишние окна.
2. Куда? И зачем? Как будто кто-то одобрит установку софта на другом компе той же компании. А свой домашний я этим нагружать не стану, и уж тем более, он не будет включен, пока я на работе, это электричество это никто не оплатит.
3. Не обсуждается даже. ВК разве что протолкнуть, и то, если для ее установки нужны права администратора (а скорее всего так оно и есть) - админ не пропустит.
Есть версии, подходящие под условия, которые у меня имеются?
(50) есть. ценник озвучьте для операций на гландах. ректально
сразу все появится и админский доступ и софт какой надо купят и поставят
(52) ректальную тонзилэктомию сейчас дешево делают лазером. И ее нынче частенько прописывают особо вредным пожилым. а ладно.
А если серьезно, расценки назначаю не я, так что выставить дикий ценник попросту не в моих силах.
а зачем нужно именно в пдф засовывать данные?
и потом из 1с просто в нужные места печатать что надо?
(54) Опять же, вопрос немного не по адресу. Но дело в том, что сейчас именно так, через pdf, делается вручную, они просто хотят автоматизировать процесс, чтобы исключить ошибки при наборе и в целом упростить процесс.
Блин, сейчас сижу и попросту не въезжаю. неужели без извращений и окольных путей не существует варианта приобщить 1с к Adobe Reader?
(56) я так понимаю, проблема не в приобщении, а в том, что адобе ридер не предоставляет COM-интерфейса, который позволял бы автоматизированно заполнять PDF формы. Т.е. вопрос в данном случае к фирме адобе, а не к 1С.
(57) Может, и так. Хотя на java можно это сделать, очевидно, через иной интерфейс. Тут вопрос в том, что java я почти не знаю, а хоть сколь-нибудь рабочего примера, на который можно было бы опереться в экспериментах, найти не удалось.
(59) я точно знаю, что из 1С можно дотянуться через javascript до глубин OpenOffice, уже проделывал это (но у меня был под рукой sdk и множество рабочих примеров, которые я, правда, переводил из, кажется, vb на 1С). Можно ли через те же скрипты дотянуться до ридера - фиг знает.
(61) спасибо, но это перебор. И что-то мне подсказывает, что эта компонента несколько иначе реализована, чем мне нужно, то есть даже разобрав ее, я не получу искомого. То есть, такой функционал - явно больше, чем можно получить от ридера.
(62) Отпишись если решишь задачу в заданых условиях.
Как вариант через скрипты операционки иметировать деятельность пользователя, но боюсь документы не имеют шаблона.
(13) По поводу этого AcroExch. только что проверил идею.
на компе полный Акробат не стоит. Попробовал в Ворде вставить объект "Adobe Acrobat Document", сохранив действия в макрос. Вот что получилось:
Sub Макрос1()
Из чего делается предположение, что AcroExch - таки объект Ридера. И работать с ним - можно. И обращаться к его коллекции Fields, и прописывать в нужные поля ФИО участника семинара, название, город, и проч.
Ну а дальше - пробуйте. Результат очень интересен и полезен. Хотелось бы, чтобы у Вас получилось! Успехов!
(67) Вы несколько невнимательны. Как раз об этой возможности я знаю прекрасно, я ее пытался применить и в данном случае, она ничем мне не поможет. К тому же, в большинстве случаев (не помню этого в 8.2, ни разу не понадобилось, но в 8.3 однозначно работает, я проверял) можно табличный документ просто выгрузить в pdf штатными средствами 1С.
(45) >все клиенты (банк или биллинг) что видел
ты видел не все
(64) увы, не помогло. Я перепроверил методы из API, ни один не срабатывает. Более того, по реестру посмотрел иные варианты AcroExch.[]. Ни по одному не сработало.
Похоже, нужен AcroExch.App или AcroExch.AVDoc, а они недоступны для ридера.
В общем, наконец удалось уговорить на сторонний софт для выполнения цели. Но он должен быть бесплатным. Foxit или какой аналог. Есть подсказки?
но скажем откуда то данные же для pdf берутся. и гораздо проще им (владельцу клиента) в "нормальный" формат экспорт добавить чем писать некий распознаватель-конвертер
AppShell = Новый COMОбъект ( "Shell.Application" );
AppShell . ShellExecute ( PDF_File , "" , "" , "print" , 0 );
Процедура Печать_PDF_Файла_Фоновая ( МассивФайловPDF , ИмяУстройства = "" ) Экспорт
// Процедура печатает pdf-файлы (из списка) в фоновом режиме (без участия пользователя)
// Параметры процедуры:
// МассивФайловPDF - массив элементов типа "Файл" или массив структур с ключами "ПолноеИмя" и "Имя"
// ИмяУстройства - имя МФУ или принтера в системе
WbemScripting = Новый COMОбъект ( "WbemScripting.SWbemLocator" );
ConnectServer = WbemScripting . ConnectServer ( "" , "" , "" , "" ); //Задания от всех пользователей
ConnectServer . Security_ . impersonationlevel = 3 ; // Получение нужных прав
ConnectServer . Security_ . Privileges . AddAsString ( "SeLoadDriverPrivilege" );
Для Каждого ФайлPDF Из МассивФайловPDF Цикл
WScriptShell . Run ( Путь_AdobeReader + " /N /T " + ФайлPDF . ПолноеИмя + ?( ЗначениеЗаполнено ( ИмяУстройства ), " " + ИмяУстройства , "" ), 0 );
ДобавленоЗадание = Ложь;
ТекущееВремя = ТекущаяДата ();
// 40 секунд на добавление задания см.ОбработкаПрерыванияПользователя
Пока Не ДобавленоЗадание И ТекущаяДата () ТекущееВремя + 40 Цикл
ОбработкаПрерыванияПользователя ();
Для Каждого PrintJob Из ConnectServer . InstancesOf ( "Win32_PrintJob" ) Цикл
ОбработкаПрерыванияПользователя ();
ДобавленоЗадание = PrintJob . Document = ФайлPDF . Имя ;
КонецЦикла;
КонецЦикла;
// Ожидание завершения печати
Пока ConnectServer . InstancesOf ( "Win32_PrintJob" ). Count > 0 Цикл
КонецЦикла;
// Получение имени процесса
НомерСимвола = Найти ( Путь_AdobeReader , "\" );
Пока НомерСимвола > 0 Цикл
Путь_AdobeReader = Сред ( Путь_AdobeReader , НомерСимвола + 1 );
НомерСимвола = Найти ( Путь_AdobeReader , "\" );
КонецЦикла;
// Удаление процесса
WScriptShell . Run ( "taskkill /f /im " + Путь_AdobeReader , 0 );
Только бесплатный Acrobat Reader, другие варианты не рассматриваем.
Пока точно работающих нашел 2 варианта:
Есть реально работающий пример без этих недостатков?
поиск дает такой результат
Acrobat = Новый COMОбъект("AcroPDF.PDF.1");
Acrobat.Visible = false;
Acrobat.LoadFile(Путь);
Acrobat.printAll();//или Acrobat.printWithDialog();
пакетная печать через венду
Папка = "C:\ывпывыпы";
Shell = Новый COMОбъект("Shell.Application");
Folder = Shell.Namespace(Папка);
colItems = Folder.Items;
Для Каждого Эл Из colItems Цикл
Эл.InvokeVerbEx("Print");
КонецЦикла;
Перевел с vbs поэтому могут быть ошибки
(2) Спасибо. Искал как правильно использовать comОбъект acrobata - нашел только вариант для аа профешнл. Буду проверять эти варианты.
(2) cool.vlad4, а при таком методе разве не остается висеть процесс ридера в памяти после окончания печати? Просто сам интересовался этим вопросом, в результате печатаю через ИЕ.
Acrobat = Новый COMОбъект("AcroPDF.PDF.1");
Acrobat.Visible = false;
Acrobat.LoadFile(Путь);
Acrobat.printAll();//или Acrobat.printWithDialog();
А если после этого кода добавить
anig99 пишет:
Спасибо. Искал как правильно использовать comОбъект acrobata - нашел только вариант для аа профешнл. Буду проверять эти варианты.
Отпишись как проверишь.
Использую BULLZIP PDF для пакетного вывода из 1С и PDF Creator для обычной "печати"..
ЗЫ
Тоже бесплатные..
PPS
Чем это acrobat лучше других?
(8) Причем здесь пакетный вывод из 1С, причем здесь (11) ? Задача была печатать готовые pdf файлы из 1C, Acrobat я так понимаю был выбран, поскольку уже либо стоял на компе, либо полностью поддерживал данный формат pdf(поскольку их несколько, pdf/A и т.д.) . Че лезите-то?
(14) да. именно. задача: печать pdf хранящихся в ИБ только штатными средствами и/или acrobat reader.
- не подходит, т.к. здесь указывается абсолютный путь. Решение не универсальное.
Используется сторонняя программа, которой может не оказаться.
Пока я остановился на решении:
печать через доп.форму с ActiveX + обязательная задержка (3-5 сек), т.е. нельзя закрывать окно c ActiveX/удалять временный файл пока задание не будет сформировано и отправлено на принтер.
так как другого варианта не было пришлось использовать не очень удобный способ.
ЗапуститьПриложение("C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe /N /T " + ИмяФайла);
На самом деле без разницы, где храниться PDF файл, в ИБ или где то на диске,
главное уметь распечатывать "массово" большой список файлов.
Спасибо за вариант с "Bullzip", попробую.
Вариант с Акробатом не универсальный из за пути, но как вариант "временного" работает :)
Надо научить 1С работать с PDF'ками. Начинаю собирать подписи к Нуралиеву Б. :)
(16) Bullzip - это виртуальный принтер и хоть с его помощью наверняка можно переводить стрелки на реальный принтер, его назначение в другом. У меня были реальные ситуации, когда сделанный с помощью Acrobat pdf, нормально печатал только Acrobat. Насчет Нуралиева, - pdf никакого отношения к 1С и к нему не имеет. Лучше бы он сделал нормальное конвертирование mxl во что-нибудь удобоваримое.
(19) ReTro,
Да , возможно.
Тут на Инфостарте есть описание как выводить любые печатные формы в pdf с помощью
PDFCreator.
Эта программа умеет выводить еще в кучу других форматов, в т.ч. и графические.
Поставить ей формат файла по умолчанию jpg и все.
(19)(20) возможно - на последней платформе сохраняете счет в pdf , затем скачиваете imagick + ghost, при установке ставите галочку ole object, затем пишете код по вызову com объекта imagick, который сохраняет pdf в нужную вам картинку, для платформ 8.1 - делается всякими ВК и т.п. принтерами и тому подобной мурой.
(24) cool.vlad4, так что-же делать с этими файлами pdf, если я хочу их вывести одним листом?
Вроде как PDFCreator имеет функцию типа объединения (merge), только как ее использовать через COM нигде не написано
Можно скопировать функционал из конфигурации CRM. Общие формы -> CRM_ПечатьДокументов и уже подредактировать под собственные нужды, там добавлены кнопки сохранять в pdf и excel.
77dream77; provost_ua; zoikins; adhocprog; mip128; idiked; mai_k; johnnyshut23; nekitsazon; Огонек; kild; msergeev79; vittany; jk107; DJ_Codebase; Михаська; DarkAn; the1; Bassgood; adminacc; + 20 – Ответить
(30) Спасибо, всё в точности сделала - печатает. Но после печати 1С перестает реагировать на манипуляции и для дальнейшей работы приходится перезаходить в программу. У вас такого не случалось?
(31) Дык кнопку . Показать нажмите - там полный текст процедуры. ) Я тоже не сразу это новшество заметил.
adhocprog; mip128; ilya4; izidakg; frkbvfnjh; Gureev; dima.jung; Rokstedi; Михаська; reddima; romankoav; Katren; netsl; anig99; Арах; + 15 – Ответить
потребовалось из Серча напечатать неопределенное количество доков, нашел неплохую функцию, которая все документы по детали может поместить в указанную папку. Есть 2 "НО". 1-е файлы могут быть внутри папок и все кидается в указанную, т.е. получается вложение папки в папке, ну и 2-е это их может быть дофига
поэтому ищем по расширению и во всех вложенных, на выходе имеем массив с путями, его отправляем на печать.
вариант печати с акробатом хорош, но у меня не установлен, что стоит у юзера не всегда можно угадать, да нафиг сложности, берем вариант (33) и печатаем тем что стоит
поиск всех файлов и печать
печать всех файлов
(34) Арах,
2 копии - пока только 2 раза запускать. Но, как по мне, - это криво..
Процесс ридера из памяти, как писали выше:
но тоже кривовато.
я в итоге, просто открываю pdf - оказалось у документов не много.
WshShell.Run(ПутьAdobeReader + " /N /T " + Файл.ПолноеИмя + ?(ЗначениеЗаполнено(ИмяПринтера), " " + ИмяПринтера, ""), 0);
"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" /N /T C:\TEMP\v8_FB5F_1f.pdf HP_FRO_PDF
Ругается что не может найти файл
Если не указывать принтер, то все ок
(38)
Собственно кому интересно описую в чем была проблема.
Алгоритм печати pdf документа у меня был следующий(скорее всего в (36) такой-же):
1) распечатал pdf
2) удалил его
Проблема была именно с этим. Пока открывался pdf и отправлялся на печать 1с его удаляла.
При том, если отправлял на принтер по-умолчанию все было норм, так как печать была быстрее и за эти миллисикунды 1с не успевала удалять документ.
(40) IT_PROGRAMMIST, как только написал, сразу вспомнил, что была такая же проблема. Решил прописав в коде 5 сек. задержку
Нашел эту тему.
(36) farkhod, попробуйте указать и имя сервера (если не проканает - попробовать его расшарить)
Для общих принтеров полное имя должно быть не более 31 символа, и это имя должно содержать имя сервера, как в следующем примере:
\\PRINTER2\PSCRIPT
Если принтер используется совместно с много разных клиентов в сети, используйте для имен принтеров 31 или меньше символов и не включайте в эти имена пробелы или специальные символы.
Если принтер используется совместно с компьютерами MS-DOS, следует использовать более восьми символов для имени общего ресурса для принтера. Можно удлинить такое имя, добавив в период, который следует не более трех символов. Но нельзя использовать пробелы в имени.
Коллеги подскажите в решении следующего вопроса.
Есть pdf документ, который печатается из 1С.
Печатается вот так:
WshShell.Run(ПутьAdobeReader + " /N /T " + НазваниеФайла + ?(ЗначениеЗаполнено(ИмяПринтера), " " + ИмяПринтера, ""), 0);
Возникла необходимость изменить пользовательский масштаб при печати. Как это можно сделать?
Вставил на форму ActiveX Adobe PDF Reader. Далее пользователь выставляет масштаб печати. Но если перезайти в 1С, то надо заново выставлять все параметры.
Можно ли как-то сохранять параметры печати в этом ActiveX Adobe PDF Reader?
Ну или как нибудь по другому выводить на печать.
Народ! А как же задать произвольное количество при печати? Например в групповой печати 1 документ должен быть распечатан 5 раз, а другой 3, после него нужно в третьем 7 копий. Если через активХ или шеллом то только циклом? иначе никак?
Два типа пароля применяются к ограничениям пароля уровня владельца PDF и ограничениям на уровне пользователя. Если файл PDF заблокирован с паролем пользователя, а пароль потерян или вы не знаете пароль, то, возможно, нет законного способа его разблокировать, а опция остается спросить у автора, который создал защищенный паролем PDF.
Если вы знаете пароль файла PDF и хотите удалить пароль навсегда, вы можете сделать это легко с браузером Chrome, открыв PDF-файл в хроме и сохраняя его как новый PDF-файл.
При печати через приложение Foxit Reader можно установить в настройках тихий режим начиная с версии 9.4
будет выводить на принтер документ без открытия окон.
Настройка тихого режима:
В приложении Foxit Reader - меню "Файл" - "Установки" - раздел "Печать" - Поставить галочку "Не предлагать Foxit Reader при печати в автоматическом режиме"
Подскажите, как указать при печати номера страниц ( например нужно распечатать только 1-ые страницы у списка файлов)?
(1) ничего не поделать. Это все, что есть. И перечень софта расширять нельзя никак. Все вопросы к клиентам.
Предполагаю, что по COM к Adobe Reader можно присобачиться (есть же "AcroPDF.PDF", только он, вроде как, как не годится). Мысль какого плана, если можно открыть в нем данный pdf, заполнить все вручную и сохранить, должен быть способ сделать это программно.
(1) а там в пдфке вот что:
With Adobe Reader, JavaScript can be used for a number of tasks:
?
To develop and process Acrobat forms and XML forms
(3) пересохранение недопустимо. Обращу внимание, pdf векторный, пересохранение его покорежит.
(7) ну вручную сохранял, норм, заполнение запоминает
(9) это опять же сторонний софт.
Может, есть хотя бы имя, по которому через COM можно обратиться к Reader'у?
кому "должен"? документацию и прочее ради этого как раз в pdf и закатывают - чтобы ушлые юзера не вписали в текст отсебятины и не предъявили иск потом - "мы все делали по инструкции"
(14) здесь не документация. Хуже, шаблоны графических принтформ. И это pdf-ки, которые именно допускают внесение текста в некоторые поля, то есть они созданы были так, чтобы можно было внести изменения в некотором диапазоне. Значения полей я там меняю, но сдвинуть поля не могу.
(0) Ну заполнишь ты его программно, дальше-то что?
Если в документ встроен jsсript, например, для формирования двумерного ШК, который отрабатывает при событии Acrobat WILL_PRINT, то как его вызвать будешь? :)
(17) погодите с категоричностью. Я уже изложил, что раз в пользовательском варианте возможность сделать это есть, должна быть и в программном.
(18) ничего там такого нет. Только в разрешенные поля внести текст, больше ничего. Это просто бланки с графическим оформлением. Причем, это оформление сыпется при попытке именно изменить pdf. Внести данные текстовые поля - никаких проблем, пользователь может легко это сделать и сохранить результат.
(19) напиши в техподдержку Adobe, какие оне противные и не дают возможность программно менять их формы :)
>раз в пользовательском варианте возможность сделать это есть, должна быть и в программном.
это ложная ассоциация
(24) а какие? можете дать имена объектов?
(25) можно. Я ж об этом и говорил. Но через jscript из 1С немного неудобно. Во-первых, java практически не знаю, то есть, у меня нет примеров обращений к объектам, из которых можно было бы как-то подчерпнуть методы и/или имена объектов. Во-вторых, 1С для работы даже через java все равно требуется COM-объект, имя которого мне неизвестно.
(26) если Вам неизвестно решение, это не значит, что его нет. Или Вы - сотрудник Adobe и знаете наверняка? Да и насчет ложности могу сказать, что у меня большие сомнения в том, что такая фирма как Adobe не предусмотрела чего-то такого.
(28) мне на надо быть сотрудником адоба
помню они чего-то в jscript докручивали у себя не так давно - pdf с "плохим" внедренным скриптом мог сделать что-то вредоносное на компе
Может не заниматься копанием канала выданной лопатой?
А сделать "Дано" > "Надо" простым способом?
Задача то отвлекаясь от PDF какая?
Или вообще нафик эти PDF и с чем то другим работать (начальные PDF можно сконвертить на другом компе/сервере)
все клиенты (банк или биллинг) что видел допускали кроме pdf еще экспорт в xls или csv как минимум.
парсинг pdf это "распечатать 2 камаза бумаги, чтобы потом эти 2 камаза распознавать"
(31) Не надо лишних окон. Клиентам это не понравится.
(44) Задача - данный pdf (и именно его и именно в pdf), нарисованный в векторе (и именно поэтому не допускающий переконвертаций, дабы не потерять расцветку для типографии) заполнить и сохранить в виде другого pdf. Заполнение изначальным pdf-ом предусматривается (так называемая, форма заполнения) и работает в пользовательском режиме в Acrobat Reader. Мне необходимо тоже самое провернуть программно из 1С.
(44) забыл сказать, софтовая расширяемость практически отсутствует. Клиентов не уговорить поставить что-то еще.
(47) у клиентов есть интернет?
просто задача из разряда хочу на легковушке гараж перетащить.
варианты решения:
1. имитация из 1С действий юзверя по работе с реадером
2. отправка исходника и данных заполнения на другой комп/сервер возможно через инет
3. установка доп.софта, любого от полного акробата или корел дроу или ВК для 1с
(48) В котором и делались эти pdf и который никто не собирается покупать. Он стоит только у дизайнера этих pdf.
(49) Ни одно из решений не является приемлемым.
1. Лишние окна.
2. Куда? И зачем? Как будто кто-то одобрит установку софта на другом компе той же компании. А свой домашний я этим нагружать не стану, и уж тем более, он не будет включен, пока я на работе, это электричество это никто не оплатит.
3. Не обсуждается даже. ВК разве что протолкнуть, и то, если для ее установки нужны права администратора (а скорее всего так оно и есть) - админ не пропустит.
Есть версии, подходящие под условия, которые у меня имеются?
(50) есть. ценник озвучьте для операций на гландах. ректально
сразу все появится и админский доступ и софт какой надо купят и поставят
(52) ректальную тонзилэктомию сейчас дешево делают лазером. И ее нынче частенько прописывают особо вредным пожилым. а ладно.
А если серьезно, расценки назначаю не я, так что выставить дикий ценник попросту не в моих силах.
а зачем нужно именно в пдф засовывать данные?
и потом из 1с просто в нужные места печатать что надо?
(54) Опять же, вопрос немного не по адресу. Но дело в том, что сейчас именно так, через pdf, делается вручную, они просто хотят автоматизировать процесс, чтобы исключить ошибки при наборе и в целом упростить процесс.
Блин, сейчас сижу и попросту не въезжаю. неужели без извращений и окольных путей не существует варианта приобщить 1с к Adobe Reader?
(56) я так понимаю, проблема не в приобщении, а в том, что адобе ридер не предоставляет COM-интерфейса, который позволял бы автоматизированно заполнять PDF формы. Т.е. вопрос в данном случае к фирме адобе, а не к 1С.
(57) Может, и так. Хотя на java можно это сделать, очевидно, через иной интерфейс. Тут вопрос в том, что java я почти не знаю, а хоть сколь-нибудь рабочего примера, на который можно было бы опереться в экспериментах, найти не удалось.
(59) я точно знаю, что из 1С можно дотянуться через javascript до глубин OpenOffice, уже проделывал это (но у меня был под рукой sdk и множество рабочих примеров, которые я, правда, переводил из, кажется, vb на 1С). Можно ли через те же скрипты дотянуться до ридера - фиг знает.
(61) спасибо, но это перебор. И что-то мне подсказывает, что эта компонента несколько иначе реализована, чем мне нужно, то есть даже разобрав ее, я не получу искомого. То есть, такой функционал - явно больше, чем можно получить от ридера.
(62) Отпишись если решишь задачу в заданых условиях.
Как вариант через скрипты операционки иметировать деятельность пользователя, но боюсь документы не имеют шаблона.
(13) По поводу этого AcroExch. только что проверил идею.
на компе полный Акробат не стоит. Попробовал в Ворде вставить объект "Adobe Acrobat Document", сохранив действия в макрос. Вот что получилось:
Sub Макрос1()
Из чего делается предположение, что AcroExch - таки объект Ридера. И работать с ним - можно. И обращаться к его коллекции Fields, и прописывать в нужные поля ФИО участника семинара, название, город, и проч.
Ну а дальше - пробуйте. Результат очень интересен и полезен. Хотелось бы, чтобы у Вас получилось! Успехов!
(67) Вы несколько невнимательны. Как раз об этой возможности я знаю прекрасно, я ее пытался применить и в данном случае, она ничем мне не поможет. К тому же, в большинстве случаев (не помню этого в 8.2, ни разу не понадобилось, но в 8.3 однозначно работает, я проверял) можно табличный документ просто выгрузить в pdf штатными средствами 1С.
(45) >все клиенты (банк или биллинг) что видел
ты видел не все
(64) увы, не помогло. Я перепроверил методы из API, ни один не срабатывает. Более того, по реестру посмотрел иные варианты AcroExch.[]. Ни по одному не сработало.
Похоже, нужен AcroExch.App или AcroExch.AVDoc, а они недоступны для ридера.
В общем, наконец удалось уговорить на сторонний софт для выполнения цели. Но он должен быть бесплатным. Foxit или какой аналог. Есть подсказки?
но скажем откуда то данные же для pdf берутся. и гораздо проще им (владельцу клиента) в "нормальный" формат экспорт добавить чем писать некий распознаватель-конвертер
Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome
Общее описание
Отлично подходит для печати прикрепленных файлов в формате PDF, а также печатных форм, есть возможность загрузки PDF из двоичных данных, позволяет показывать диалог печати с установкой диапазона страниц и количества копий или же задавать принтер и диапазон страниц непосредственно в вызове.
Для подключения компоненты используются стандартные методы УстановитьВнешнююКомпоненту() на Клиенте в синхронном режиме, ПодключитьВнешнююКомпоненту() на Сервере или на Клиенте в синхронном режиме, и НачатьУстановкуВнешнейКомпоненты() и НачатьПодключениеВнешнейКомпоненты() на Клиенте в асинхронном режиме вызовов.
Перед началом работы на стороне клиента в асинхронном режиме необходимо вызвать установку компоненты:
Далее необходимо ее подключить и можно вызывать ее методы:
Примерный код использования компоненты на стороне Клиента в асинхронном режиме может выглядеть так:
Есть возможность вызова компоненты из внешней обработки, чтобы не снимать типовую конфигурацию с поддержки, рабочий код использования компоненты представлен в обработке TestPrintPDF.epf (в обработке отсутствует компонента, поэтому ее нужно загрузить в макет после покупки).
Компонента работает как на x86, так и x86_64 платформах, в режиме Сервера, Тонкого клиента и Веб-клиента (для браузеров Firefox и Chrome), распространяется в виде пакетного файла, который содержит в себе все версии компоненты.
Протестировано на всех версиях платформы, начиная от 8.2.19.130.
Методы:
Печать / Print - основной и пока единственный метод, отправляет файл на печать, возвращает Истину при успешном выполнении и Ложь, если при вызове произошла ошибка
Может вызываться как с передачей имени файла, так и двоичных данных
Важно
В асинхронном режиме вызовы методов должны выполняться через НачатьВызов, например:
Гарантия возврата денег
ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.
Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.
Читайте также: