Т Иван

357
Рейтинг

Spartan
Иван Т



  •   Регистрация: 16.02.2010 (12 лет назад)

  •   Был(а) на сайте: 25.01.2023

Друзья
  • Александр Шишкин
  • Александр Аверков
  • Лев Оганян
  • Сергей Сорокин
Подписчики 8

Группы

Профессиональный разработчик

Рейтинг 357

Печать текстовых водяных знаков в файлы PDF из 1С

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Универсальные обработки

Обработка для группового наложения текстовых водяных знаков в документах PDF с помощью бесплатной программы AVS Document Converter. Тестировалась в ОС Windows 7 64 bit на платформе 8.3.15.1830 с AVS Document Converter 4.2.3.268.

2 стартмани

13.03.2020    4802    13    Spartan    8       

Печать документов PDF из 1С в фоновом режиме

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Универсальные обработки

Обработка для фоновой печати документов PDF из 1C с помощью командной строки и Adobe Reader. Тестировалась на платформе 8.3.13.1513 с Adobe Reader 2019.010.20069.

2 стартмани

25.01.2019    6476    19    Spartan    2       

Заполнение полей в файлах PDF из 1С

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Универсальные обработки

Обработка для заполнения форм в файлах PDF из встроенного языка 1С с использованием бесплатной консольной утилиты PDFtk Server. Тестировалась на платформе 8.3.13.1513.

2 стартмани

24.01.2019    8166    39    Spartan    15       

Формирование печатных форм в pdf

Статья Программист Нет файла Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free) Файловый обмен (TXT, XML, DBF), FTP

Делюсь опытом работы с виртуальными принтерами через COM-интерфейс, а также предлагаю альтернативный вариант создания PDF-файлов с помощью внешней компоненты Yoksel.

24.09.2010    77022    Spartan    105       

Форма редактирования списка значений

Инструменты и обработки Программист Внешняя обработка (ert,epf) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Универсальные функции

Форма предлагается в качестве замены стандартному диалогу "Редактирование списка": максимально полно повторяет его интерфейс и функционал, а также обладает дополнительными возможностями и преимуществами.

1 стартмани

24.06.2010    35160    420    Spartan    19       

Реестр банковских документов

Отчеты и формы Для всех Внешняя обработка (ert,epf) Платформа 1С v8.3 1С:Бухгалтерия 2.0 Бухгалтерский учет Банковские операции Абонемент ($m)

Обработка печати реестра входящих и исходящих платежей для конфигурации "Бухгалтерия предприятия 8".

1 стартмани

15.04.2010    13312    177    Spartan    6       


Комментарии

DevЗаполнение полей в файлах PDF из 1С#13 16.10.20 13:10
(12) Не знаю, я такую задачу не решал. Если говорить о PDFtk Server посмотрите в сторону этого метода:
Цитата
attach_files < attachment filenames | PROMPT >
[ to_page < page number | PROMPT > ]
Packs arbitrary files into a PDF using PDF’s file attachment features. More than one attachment can be listed after attach_files. Attachments are added at the document level unless the optional to_page option is given, in which case the files are attached to the given page number (the first page is 1, the final page is end). For example:

pdftk in.pdf attach_files table1.html table2.html to_page 6 output out.pdf
DevЗаполнение полей в файлах PDF из 1С#10 21.05.20 9:43
(9) С помощью PDFtk Server вряд ли. Там есть опция, которая вроде как позволяет объединить поля с документом, включая заполненные данные, но я ее не тестировал. Ну и поля естественно объединяются все, а не выборочно.
Цитата
[ flatten ]
Use this option to merge an input PDF’s interactive form fields (and their data) with the PDF’s pages. Only one input PDF can be given. Sometimes used with the fill_form operation.
Может быть непосредственно Acrobat умеет управлять полями, но если это и есть, но наверняка не в бесплатной версии. Смотрите документацию.
DevЗаполнение полей в файлах PDF из 1С#7 07.05.20 21:46
(6) Я уже не помню, посмотрите процедуры в модуле объекта - там все есть.
DevПечать текстовых водяных знаков в файлы PDF из 1С#8 13.03.20 13:58
(7) Готового бесплатного решения, которое могло бы работать со всеми типами документов напрямую, к сожалению, не подскажу.
DevПечать текстовых водяных знаков в файлы PDF из 1С#4 13.03.20 13:30
(3) Yoksel смотрели? Он как раз работает с экселевскими файлами напрямую и позволяет конвертировать их в PDF. В моей публикации есть пример работы с ним.
DevПечать текстовых водяных знаков в файлы PDF из 1С#2 13.03.20 13:17
(1) Дело в том, что я "пробовал" их именно в рамках моей задачи, остальные возможности меня мало интересовали. Думаю, Вам надо смотреть в сторону виртуальных PDF-принтеров. BullZip PDF Printer вроде бы многое умеет, но у него есть ограничения бесплатной версии (те же водяные знаки) или doPDF. В свое время я разбирался с работой через COM c бесплатным PDFCreator, когда в платформе еще не было возможности сохранять в PDF, но это было давно - не знаю в каком состоянии сейчас их проект.
DevПечать текстовых водяных знаков в файлы PDF из 1С#0 13.03.20 10:50
Обработка для группового наложения текстовых водяных знаков в документах PDF с помощью бесплатной программы AVS Document Converter. Тестировалась в ОС Windows 7 64 bit на платформе 8.3.15.1830 с AVS Document Converter 4.2.3.268.
DevПолучение RGB (HEX) цвета#10 12.03.20 13:35
(0) В Вашей таблице есть дубли цветов, причем с неправильными кодами. Таблицу исправил и переделал функцию получения цвета - теперь она возвращает Абсолютный RGB Цвет, а дальше можно с ним делать что угодно, в том числе представить в виде строки.

Код
// Функция конвертирует hex в dec
//
Функция итКонвертироватьHexВDec(Знач ЧислоСтрокой)
   
   Результат = 0;
   Шаблон = "0123456789ABCDEF";
   
   ЧислоСтрокой = ВРег(Строка(ЧислоСтрокой));
   Для ТекущийСимвол = 1 По СтрДлина(ЧислоСтрокой) Цикл
      ПозицияВШаблоне = Найти(Шаблон, Сред(ЧислоСтрокой, ТекущийСимвол, 1))-1;
      Результат = Результат * СтрДлина(Шаблон) + ПозицияВШаблоне;
   КонецЦикла;
   
   Возврат Результат;

КонецФункции

// Функция загружает данные из макета в таблицу значений
//
Функция итЗагрузитьТаблицуИзМакета(ИмяМакета, ИмяОбласти) Экспорт
   
   Макет = ПолучитьМакет(ИмяМакета);
   ПостроительЗапроса = Новый ПостроительЗапроса;
   ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Макет.Область(ИмяОбласти));
   
   // Возвращаем таблицу значений с отобранными из макета данными 
   ПостроительЗапроса.Выполнить();
      
   Возврат ПостроительЗапроса.Результат.Выгрузить();
   
КонецФункции

// Функция получает абсолютный RGBЦвет
//
Функция итПолучитьАбсолютныйRGBЦвет(Знач Цвет) Экспорт
   
   // Приводим цвет стиля к простому RGB, Абсолютному, Windows-цвету
   Если Цвет.Вид = ВидЦвета.ЭлементСтиля Тогда 
      ОбъектМетаданныхСтиля = Метаданные.ЭлементыСтиля.Найти(Сред(Строка(Цвет), 8));
      Если ОбъектМетаданныхСтиля <> Неопределено Тогда 
         Цвет = ОбъектМетаданныхСтиля.Значение;
      КонецЕсли;
   КонецЕсли;
   
   //Получаем RGB цвет из макета
   Если Цвет.Вид = ВидЦвета.Абсолютный Тогда
      Возврат Цвет;
   ИначеЕсли Цвет.Вид = ВидЦвета.WebЦвет Тогда
      ТаблицаСоответствияЦветов = итЗагрузитьТаблицуИзМакета("СоответствиеЦветовWebИRGB", "ДанныеСоответствияЦветов");
      
      ЦветИмяПриведеное = Строка(Цвет);
      ЦветИмяПриведеное = Сред(ЦветИмяПриведеное, Найти(ЦветИмяПриведеное, "(") + 1);
      ЦветИмяПриведеное = Сред(ЦветИмяПриведеное, 1, Найти(ЦветИмяПриведеное, ")") - 1);
      
      НайденнаяСтрока = ТаблицаСоответствияЦветов.Найти(ЦветИмяПриведеное, "ИмяЦвета");
      Если НайденнаяСтрока <> Неопределено Тогда
         Возврат Новый Цвет(Число(НайденнаяСтрока.R), Число(НайденнаяСтрока.G), Число(НайденнаяСтрока.B));
      Иначе
         Возврат Новый Цвет(0, 0, 0);
      КонецЕсли;
   ИначеЕсли Цвет.Вид = ВидЦвета.WindowsЦвет ИЛИ Цвет.Вид = ВидЦвета.ЭлементСтиля Тогда
      // Невозможно определить цвет, но попытаемся через ФорматированныйДокумент
      ТекстХТМЛДокумента = "";
      Шаблон = "0123456789ABCDEF";
      ФорматированныйДокумент = Новый ФорматированныйДокумент; 
      ФорматированныйДокумент.Добавить("ОпределениеЦвета", Тип("ТекстФорматированногоДокумента")); 
      ФорматированныйДокумент.Элементы[0].Элементы[0].ЦветФона = Цвет; 
      ФорматированныйДокумент.ПолучитьHTML(ТекстХТМЛДокумента, Новый Структура); 
      НомерСимволаЦвета = Найти(ТекстХТМЛДокумента, "background-color: #"); 
      ЦветРезультатHex  = Сред(ТекстХТМЛДокумента, НомерСимволаЦвета + 19, 6);
      Возврат Новый Цвет(итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 1, 2)), итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 3, 2)), итКонвертироватьHexВDec(Сред(ЦветРезультатHex, 5, 2)));
   ИначеЕсли Цвет.Вид = ВидЦвета.АвтоЦвет Тогда
      // Пустой цвет (определяется элементом владельцем, не содержит сам цвет)
      Возврат Новый Цвет(0, 0, 0);
   КонецЕсли;

КонецФункции

Прикрепленные файлы:

СоответствиеЦветовWebИRGB.mxl
DevХранение модулей во внешних обработках. Меняем код без обновления конфигурации#19 01.02.19 13:19
(18) Вот здесь посмотрите + комментарии и переходы по ссылкам. Возможно будет полезно.
DevХранение модулей во внешних обработках. Меняем код без обновления конфигурации#17 01.02.19 8:57
(15) Запросто, смотрите скрин.

Прикрепленные файлы:

1c_search.png