1с 77 сохранить в pdf
В данной статье приведено несколько методов, которые позволят подключить PDF принтер Bullzip к своему проекту на платформе 1С Предприятие 7.7. Используя PDF принтер, вы сможете сохранять ваши табличные документы в формате PDF. Вы программно можете задавать имя PDF файла и его расположение на диске.
Зависимости проекта:
- оТаблица - ТабличныйДокумент- документ который нужно напечатать на принтере
- сКаталогПечати - Строка - Путь к каталогу, куда будет сохранен результирующий PDF файл документа. Каталог должен существовать. У пользователя должны быть права на запись в каталог.
- сИмяФайла - Строка - Имя файла PDF документа. Можно с расширением ".pdf" или без расширения
Дополнительная информация
- Одновременно с принтером устанавливается и регистрируется COM объект, через который происходит установка параметров принтера.
- Документация по параметрам принтера и COM объекту находится на сайте
Специальные предложения
(1) ну так это и есть тот же самый пдф-принтер. единственное - автор сделал готовые предустановки параметров для этого пдф-принтера в виде "методов"/процедур/функций 1С - что, несомненно, удобно
внутри метода хорошо бы реализовать авторазбор "оТаблица" - чтобы в параметро можно было передавать или табличный документ (моксель) или имя файла к мокселю
Господа, подскажите кто знает, как управлять форматом файла (т.е. указать вместо PDF JPG / PNG и т.д.)?
(8)есть такое дело. Для ленивых:
Параметр Device
Значения:
"bmpmono", "bmpgray", "bmpsep1", "bmpsep8", "bmp16", "bmp256", "bmp16m", "bmp32b", "epswrite", "pswrite", "psraw", "jpeg", "jpeggray", "pcxmono", "pcxgray", "pcx16", "pcx256", "pcx24b", "pcxcmyk", "pngmono", "pnggray", "png16", "png256", "png16m", "pngalpha", "tiffgray", "tiff12nc", "tiff24nc", "tiff32nc", "tiffsep", "tiffcrle", "tiffg3", "tiffg32d", "tiffg4", "tifflzw", "tiffpack", "pdfwrite", "docwrite"
Параметры управления разрешением:
Res
ResX
ResY
SuperimposeResolution
Формирую таблицу.
Запускаю все вышеописанные процедуры.
1-й раз всё ОК.
2-й раз и далее таблица формируется без рисунка (он у меня есть в данной конкретной печатной форме - типа счёт с печатью);
при этом блок рисунка формально есть в печатной форме, но сам рисунок не отображается.
Посмотрел более точно: проблема возникает после первого запуска WriteSettings(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 берутся. и гораздо проще им (владельцу клиента) в "нормальный" формат экспорт добавить чем писать некий распознаватель-конвертер
Оптимальным решением является установка Bullzip PDF Printer . После установки в системе появляется виртуальный принтер, с помощью которого можно "печатать" в файл pdf из любого приложения. Программа бесплатная, работает в терминале и имеет поддержку русского языка.
После установки, можно печатать напрямую используя код:
Код 1C v 8.х
Здесь функция ПолучитьПринтерПоУмолчанию() нужна для того чтобы вернуть печатной форме принтер по умолчанию, т.к. если напечатать без предварительного просмотра то печать пойдет на виртуальный PDF принтер BullzipPDFPrinter.
Код 1C v 8.х
Печать в PDF используя bioPDF
Похожие FAQ
Не работает предварительный просмотр документа в 1С 0
Варианты решения проблемы " Не открывается предварительный просмотр" : 1. Нет принтера - нет предварительного просмотра. Попробуй переустановить принтеры. 2. Поставил под локальным админом дрова на принтер как у клиента и все заработало. 3. Есл Получить имя принтера выбранного по умолчанию 0
// maharbA Функция Hex(Пар) Результат=" " ; Пока Пар 0 Цикл Результат=Сред(" 0123456789ABCDEF" ,Пар+1,1)+Результат; Пар=Цел(Пар/16) ; КонецЦикла; Возврат " " +Результат; КонецФункции Функция ПолучитьПринтерПоУмолчанию() ПринтерПоУмолчанию Установить штрихкод в 1С 2
В программах 1С Предприятие применяется несколько разных вариантов штрихкодов 1. Штрихкод в регламентированных отчетах Расположен в левом верхнем углу налоговой декларации. Для печати используется установленный шрифт (true type font) EANGNIVC.TTF Установка модуля печати двухмерного штрих-кода PDF417 в 1С 4
Двумерные штрих-коды – символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Такой код считывается с помощью специального сканера и позволяет быстро и безошибочно считывать информацию с документов. Это Функция открывает таблицу в MS Excel 0
Код //Функция открывает таблицу в MS Excel //Таблица - печатная форма 1С //ИмяЛиста - имя, которое будет присвоено листу книги MS Excel (если не задано, то остается " Sheet1" ) //ОтображатьЯрлычки - показывать/скрыть ярлычки ли Посмотреть все результаты поиска похожих
Возникла задача отправлять счета почтой. PDFcreator не подошёл поскольку не удалось вместить счёт на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашёл быстро, а вот как уместить счёт на одну страницу вширь искал долго.
В версии 1С 8.2.232 появилась возможность сохранять табличный документ в xls файл на сервера под линуксом. А вот работать с Опеном офисом из-под линукса пока не получается. Собственно комментари ненужны. Вот весь код. Самое интересное это бодание со стилями страниц в Опене Офисе. Жаль что этот фрагмент работает только на клиенте. На сервере вопрос не решается *08
Код 1C v 8.2 УП
Автор: Трактор
Функция позволяющая выполнить выгрузку табличного документа в PDF средствами OpenOffice
Код 1C v 8.х
Автор: doom_2001
Похожие FAQ
Еще в этой же категории
Как в excel сохраненный из 1С вставить новый лист? 15
Я думаю, все сталкивались с однолистовым excel файлом из 1С, у которого на первый взгляд, нет возможности добавить листы. Все не так страшно - их просто скрыли или, что чаще всего - даже не отображали (обусловлено созданием файла из стороннего прил Как сформировать документ в Word из 1С? (Active Document) 14
ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _ Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа: 1. Путем замены шаблонного текста в макете Wordа. 2. Путем вставки текста с помощью закладок в Wo Экспорт и Импорт данных 1С - Microsoft Excel 12
Экспорт Процедура ОсновныеДействияФормыЭкспорт(Кнопка) - выгружает из указанного справочника данные в режиме экспорта в файл в формате Microsoft Excel с указанным именем, используя преобразование данных к типу число и типу строка; Процедура Основ Преобразование XLS в MXL 10
Конвертация таблиц из Excel в MXL - скачать Converter Excel v MXL: Для 8.х - Для 7.7 - // Выбор файла Microsoft Excel Procedure FileNameStartChoice(Element, StdProcessing) StdProcessing = False; DialogFile = New FileDialog(FileDialogMode. Работа с MS Word через OLE 10
В качестве примера использования можно указать вот такую ситуацию: в зависимости от типа клиента (договора, документа и т.п) формируются разные тексты договоров с разным количеством таблиц. В реальности, конечно должены использоваться и макет и опис Посмотреть все в категории Работа с Microsoft Office и OpenOffice
Оптимальным решением является установка Bullzip PDF Printer . После установки в системе появляется виртуальный принтер, с помощью которого можно "печатать" в файл pdf из любого приложения. Программа бесплатная, работает в терминале и имеет поддержку русского языка.
После установки, можно печатать напрямую используя код:
Код 1C v 8.х
Здесь функция ПолучитьПринтерПоУмолчанию() нужна для того чтобы вернуть печатной форме принтер по умолчанию, т.к. если напечатать без предварительного просмотра то печать пойдет на виртуальный PDF принтер BullzipPDFPrinter.
Код 1C v 8.х
Печать в PDF используя bioPDF
Похожие FAQ
Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу вширь искал долго. Горячие клавиши 1С Пользователю [ Предприятие] 5
Основные команды: Интерфейс: F6 - переключение между формами рабочего стола F10 - переход в главное меню окна Alt+1 - переход на панель Разделов Alt+2 - переход на панель Навигации Alt+3 - переход на панель Действий Alt+9 - переход Горячие клавиши 1С Разработчику [ Конфигуратор ] 128
Основные команды: Кодирование: Ctrl+Пробел - вызов подсказки Ctrl+Q - вызов шаблона Ctrl+F1 - поиск в синтакс-помощнике Ctrl + L - удалить текущую строку Alt+Shift+F - отформатировать код Исследование: F12 - ставим курсор на про Добавление поддержки нестандартного штрих-кода в обработке ПечатьЭтикеток 1
Обработка ПечатьЭтикеток использует компоненту " 1С:Печать штрихкодов" (доступную на диске ИТС) для печати штрих-кодов(далее ШК). Эта компонента поддерживает следующие типы штрих-кодов: EAN8, EAN13, EAN128, Code39, Code128. Что делать если на пред Посмотреть все результаты поиска похожих
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Большое спасибо за инструкцию! Но в новой версии BullZip видимо что-то поменялось. Сначала у меня не создавалось Com соединение, а потом не записывались параметры. Даже на оф. сайте ничего не было, нашел случайно, в описаниях классов.
Для создания Com: ПДФПринтер = Новый COMОбъект("Bullzip.PDFSettings");
Для записи параметров: ПДФПринтер.WriteSettings(Истина);
Параметры принтера, как писали до меня, можно увидеть в файле ini, который можно сохранить из окошка настройки параметров. Настройки открываются запуском gui.exe из папки с установленной программой.
Читайте также: