Штрихкод на чертежах

Автор danver, 09.02.19, 14:01:50

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

danver

В Лоцман-ПГС, на сколько знаю, была такая фича, как накладывание штрихкода на документы при печати вторичного представления. Кто-нибудь реализовывал в ПЛМ? Как лучше сделать, подскажите?

Echoes

Обычно такое реализуют в виде прикладного модуля (плагина) в Лоцман-клиент, в который пользователь перемещает Документы и на выходе получает pdf - файлы с нанесенным штрих-кодом.Сохранение полученных файлов на диск или в сам документ (как файл). Для формирования самих pdf-ок можно использовать как само вторичное представление документа, так и исходный файл (если количество расширений ограничено и можно из программы инструмента средствами её api pdf-ку получить)
В базовой поставке Лоцман PLM планируется появление такого функционала.

Danila

у нас наа предприятии есть реализованный  механизм штрихкодирования.

но он оказался очень сложным, совмещает в себе возможности штрихкодирования и отображения различных атрибутов.
то есть для разных видов документов отображается штамп  с различным набором атрибутов + штрихкод. Плюс учитывается формат файлов, страницы, состояния, эцп и т.д.

но решение вышло очень монстровое по реализации. Но и возможности, которое оно предоставляет очень велики.
разрабатывалось как самостоятельное приложение на шарпах.

если интересуют принципиальные вопросы реализации - могу рассказать.
Но сходу применить механизм, или даже реализовать его не получится.

danver

Цитата: Danila от 09.09.19, 10:41:12у нас наа предприятии есть реализованный  механизм штрихкодирования.

но он оказался очень сложным, совмещает в себе возможности штрихкодирования и отображения различных атрибутов.
то есть для разных видов документов отображается штамп  с различным набором атрибутов + штрихкод. Плюс учитывается формат файлов, страницы, состояния, эцп и т.д.

но решение вышло очень монстровое по реализации. Но и возможности, которое оно предоставляет очень велики.
разрабатывалось как самостоятельное приложение на шарпах.

если интересуют принципиальные вопросы реализации - могу рассказать.
Но сходу применить механизм, или даже реализовать его не получится.

Спустя год опять возникла необходимость в таком механизме. Можете в общих чертах обрисовать, куда надо двигаться для начала?

Chipollino

Для начала надо понять, куда хотим прийти и что получить на выходе.
Как я понимаю речь о маркировке самого документа, вроде нанесения идентификатора из лоцмана и даты утверждения. Тогда проще в момент принятия в архив создавать ешё один файл с нанесенной маркировкой и хранить его рядом с оригиналом в одном документе. При необходимости печатать когда потребуется через модуль пакетной печати. Можно хранить и во вторичном представлении, но тогда печатать будет труднее.
Если нужена автоматизированная обработка учтенных копий и наносить предполагается переменную информацию на каждый напечатанный экземпляр, вроде кто, для кого и когда делал копию, то это совсем другая история - здесь или городить свой модуль печати, или так же создавать файлы на каждый случай и хранить их в лоцмане в виде самостоятельных документов. Но в любом случае это куча лишней работы.

В техническом плане всё давольно просто - из оригинального документа (Компас/word/Excel) получаем pdf как самый универсальный формат. Затем его уже модифицируем и храним в лоцмане, а при необходимости - печатаем.
Для работы с pdf в C# многие используют библиотеку iTextSharp - достаточно большие возможности и она бесплатная.
Конкретно в качестве штрих-кода я использовал его разновидность - Code39, т.к. в этом случае всё сводится к добавлению в файл обычного текста в соответствующем шрифте. Через эту же библиотеку можно добавлять и изображения (например логотип компании или QR код).

А каким образом это всё прикручивать к лоцману - опять же зависит от задачи. Можно через плагин для архивариуса, а можно как библиотеку к WorkFlow и в процессы согласования/заявки на печать.

Kirilius83

у нас штрихкод реализован через шрифт.
один скрипт заносит в графы рамки чертежа код (в нам инв номер и даты из архива), а над основной надписью другая графа, где этот код отображается шрифтом штрихкода.
но у нас не лоцман, а интермех.

danver

Цитата: Chipollino от 21.04.20, 17:52:35Для начала надо понять, куда хотим прийти и что получить на выходе.
Как я понимаю речь о маркировке самого документа, вроде нанесения идентификатора из лоцмана и даты утверждения. Тогда проще в момент принятия в архив создавать ешё один файл с нанесенной маркировкой и хранить его рядом с оригиналом в одном документе. При необходимости печатать ...

Действительно, задача немного более общая, чем просто печать штрихкодов. Хочется прийти к системе, которая бы на этапе создания вторичного представления добавляла к этому представлению дополнительную информацию, когда кем утрвеждён, данные цифровой подписи, штрихкод. Конечная задача ставится - простановка на распечатанном экземпляре, когда и кто распечатал, плюс та же ЭЦП и штрихкод, но это более сложно. Думаю, начать нужно с модификации вторичного представления при его создании. Тут не получается найти вход в механизм создания этого представления из компаса, для внесения необходимых изменений.

Chipollino

Сам процесс создания вторичного представления реализовывается в библиотеке прокси (ASCON\Loodsman\SDK\Integrator).
Каждая библиотека сама реализует алгоритм и весь набор действий по созданию вторичного представления, в т.ч. в ней же заложен и формат файла. В разных версиях лоцмана могут быть разные библиотеки и разный формат вторичного представления (Для компаса раньше был eDrawings, затем pdf, но в будущем могут перейти на свое ядро). Прокси это dll и без исходников его только самому написать, но для компаса это муторно - слишком многое в нём делается.
А чтобы не писать свой прокси вместо стандартного - можно написать или дополнить готовый транслятор. В выходном трансляторе в функции fTransForLoodsman надо найти в модели данных путь к файлам вторичного представления (имеют связь "Document-PreviewFile link" с документом) и отредактировать, либо заменить их до передачи в лоцман.

На самом деле в момент создания представления мало что полезного будет доступно - только кто и когда его создал. Остальное я бы реализовывал через библиотеку к WorkFlow в процессах согласования или тиражирования документации - в автооперации получаете файл через GetSecondaryViewFileName и передаёте в свою библиотеку с информацией которую хотите добавить, затем возвращаете файл в лоцман через SaveSecondaryView.

danver

Подскажите инструмент для редактирования pdf из delphi 7
Перекопал эти ваши интернеты, что-то не нахожу ничего вменяемого. Если можно, с примерами.

Danila

Немного про нашу логику механизмов печати и штрихкодирования.
Реализовано самостоятельно на c# (MS VS, .Net, ) на уровне самостоятельных сервисов.
Термины и механизмы.
Предпечатный макет - промежуточный pdf-файл, полученный из файла исходного документа.
Печатный шаблон - конфигурация расположения дополнительных свойств (атрибутов, динамических атрибутов и т.д.) и  предпечатного макета на странице.
Динамический атрибут - атрибут рассчитываемый в момент печати. Например, автор печати, дата, штрих-код, эцп и т.д. Располагаются на печатном шаблоне.
Лист-сводка - отдельный дополнительный лист, со своим печатным шаблоном, добавляемым к основному комплекту страниц файла. Зачастую несет обобщающую информацию по документу в целом: эцп, атрибуты и т.д. Существует соответствие типа и листа-сводки.
Система конфигурирования печатных шаблонов - система настройки соответствия типов документов, форматов, типов файлов, групп пользователей для предпечатных макетов и листов-сводок.
Печатный макет - окончательный сформированный образ файла из документа, содержащий в себе предпечатный макет с выбранным печатным шаблоном, заполненными атрибутами из документа, динамическими атрибутами (дата печати, автор печати и т.д.), штрих-кодом и листом-сводкой.
Сервис подготовки предпечатных макетов - сервис, который с помощью специальных программ-драйверов формирует предпечатные макеты из файлов P-CAD, Компас, Word, Excel, jpg, rtf и т.д.
Система хранения предпечатных макетов - самостоятельная база данных для хранения предпечатных макетов, связывающая предпечатный макет и файл документа в системе Лоцман.
Система подготовки печатных макетов - система, формирующая печатный макет из предпечатного макета в соответствии с правилами печатных шаблонов и листа-сводки.
Система хранения печатных макетов - самостоятельная база данных для хранения печатных макетов с информацией о дате печати, исполнителе и файле из системы Лоцман.
Очередь печатных макетов - система постановки в очередь исполнения на подготовку печатных и предпечатных макетов.
Клиентский интерфейс вызова печати макетов (модуль печати) - самостоятельный клиентский модуль для печати файлов документов с выбранными пользовательскими настройками. Основные пользовательские настройки - выбор соответствия форматов\типов и доступных пользователю принтеров, настройки двусторонней печати и т.д. В том числе возможна печать в pdf-файл.
В итоге.
На выходе получаем распечатанный исходный файл в формате pdf, с уменьшенной областью отображения до 90-95%, прижатой на странице к левому верхнему углу. В нижней части страницы размещена рамка с атрибутами и штрихкодом.
Штамп.png
Для документов ОРД добавляется лист-сводка со списком согласовавших его лиц.
Предпечатные макеты используются как вторичное представление в системе "Лоцман" и дополнительных модулях системы. При чем для любых типов файлов и документов.
Постановка в очередь согласно внутреннему регламенту.
Контроль за распечатанной КД в производстве для разрешения конфликтов, проблем и системы уведомлений о выпуске новой КД.