Предлагаю решение одной часто встречающейся ситуации в модуле «Канцелярия». Кнопка «Сканировать» в РКК позволяет отсканировать и сохранить документ в формате TIFF. При необходимости документ можно сохранять в форматы JPG, PNG, BMP. Сохранять во всеми любимый формат PDF, к сожалению, DIRECTUM пока не научился. А так хотелось бы! Предлагаемое решение не претендует на изящность, но решает имеющийся вопрос.
Решение основано на использовании функции DCTSConvertFileToPDF. Функция посылает созданный TIFF-файл в службу преобразования и возвращает PDF-версию документа, которая и сохраняется в DIRECTUM. В случае, если преобразовать не удалось, в DIRECTUM сохранится исходный TIFF-файл.
Для реализации механизма потребуется немного скорректировать действие «Scan» справочника «Регистрационно-контрольные карточки». Привожу код, который реализует описанный механизм:
DCTSConvertToPDFWSDL = GetAssignedConst("DCTSConvertToPDFWSDL")
PDFFilePath = Replace(FilePath; ".tiff"; ".pdf")
ConvertingToPDFFailed = FALSE
try
DCTSConvertFileToPDF(DCTSConvertToPDFWSDL; FilePath; PDFFilePath)
except
ConvertingToPDFFailed = TRUE
endexcept
if ConvertingToPDFFailed
ScannedDoc = EDocuments.CreateNewFromFile(EDocTypeCode; EDocKindCode; GetEditorCodeByExtension('tiff'); FilePath; FALSE)
else
ScannedDoc = EDocuments.CreateNewFromFile(EDocTypeCode; EDocKindCode; GetEditorCodeByExtension('pdf'); PDFFilePath; FALSE)
endif
Ну и в конце не забываем почистить следы:
DeleteFile(PDFFilePath)
У приведенной реализации есть свои плюсы и минусы, но если кому-нибудь она поможет, то значит этот материал был небесполезен. Всем удачи!
было бы классно, если бы Вы показали конечный измененный вариант скрипта
Отлично! Спасибо
Подскажите пример заполнения констант "DCTSConvertToPDFWSDL" и "DCTSExecutionTimeout" С пустыми преобразования не происходит. Да и с заполнеными то же :(
Константа: DCTSConvertToPDFWSDL
Значение: http://DIRECTUM:40110?wsdl
Константа: DCTSExecutionTimeout
Значение: 100000
К сожалению, получить pdf из tiff в Директуме не получится. Сначала надо файл полученный после сканирования (в формате tiff) вставить в документ word. А вот документы в формате word ф-ция DCTSConvertFileToPDF прекрасно переводит в pdf. И ещё строка PDFFilePath = Replace(FilePath; ".tiff"; ".docx") не создаёт файл в формате word.
Константин, "не получится" или "не получилось"? Большая разница.
"Гонять" через DOC - это изначально не вариант.
Айрат, не получилось и не получится. И вот почему: функция DCTSGetConvertToPDFSupportedExtensions(http://DIRECTUM:40110?wsdl) возвращает [txt, ppt, pptx, doc, docx, xls, xlsx, rtf]. В этом массиве нет "tiff" и поэтому тратить время на то, что функция DCTSConvertFileToPDF совершит преобразования в pdf не имеет смысла. Т.е. "не получится". Тема интересная и важная, но положительных отзывов у статьи нет, видимо не Я один потратил зря время. А вот если получится скан "запихнуть" в docx то преобразование уже будет возможно. Кто-нибудь знает "рабочий" вариант сканирования в файл pdf? Подскажите как программно добавить из файла картинки в файл-документ word?
Эта функция должна возвращать расширения, которые может обработать служба преобразования. Они прописываются в файле DCTSTransformationService.exe.config. У меня там много расширений прописаны, в том числе tif и tiff - преобразование работает успешно. Проверял только через проводник системы, не используя данную разработку (так что дефекты в данной разработке не искал).
2Константин:
В этом массиве нет "tiff" - проблема не в предложенном мной коде, на который вы "потратили зря время", а в неверно настроенном вами конфигурационном файле. Последуйте совету Ивана и не обвиняйте зря в неработоспособности чего-то, не разобравшись в вопросе.
Если уж совсем лень читать мануалы на систему, то вот работающая строка с расширениями. Ощущаете разницу?
Айрат и Иван спасибо. Всё заработало. Благодарю за быстрый ответ.
Айрат, ценный сценарий! Попробую применить к 4.9.1
Заранее извиняюсь если что вдруг не так понял. Для работы системы необходимо внести изменения в:
1)действие «Scan» справочника «Регистрационно-контрольные карточки»
2)файл DCTSTransformationService.exe.config.
по идее всё должно работать, но упорно на выходе получаю tiff.
Службу DCTSTransformationService перезапускали?
Да. Результат тот же. может быть есть ещё какие-нибудь нюансы?
Попробуйте вручную выполнить преобразование word-документа в PDF. Для этого создайте версию word-документа "с преобразованием в PDF". Если и вручную не получается, то проблема глобальная. Напишите, каков результат.
Айрат у меня к сожалению тоже не заработало
сегодня целый день упражнялся с службой преобразования и благодаря техподдержке у меня сейчас при получении документа со сканера pdfка создается а по кнопке сканировать так и не заработала. Ваш скрипт во вложении я целиком заменил в действии скан (может там надо было что то локализовать?)
версия 4.9.1
Думаю стоило менять не весь код кнопки "Сканировать", а только скорректировать тот блок, который я привел в статье.
попробовал тот же результат такое ощущение что файлы не передаются службе, в логе службы ошибок нет
Айрат у меня все заработало но вылез один глюк при сканировании документа в альбомной ориентации pdfка получается в книжной и соответственное пол листа обрезается, я так полагаю что это вопрос к техподдержке по процесу преобразования в pdf но все же хотел уточнить у Вас, может тоже такая проблемма вставала
вопрос закрыт надо было в настройках печати приложения открывающего tiff поставить автоматическую ориентацию
Недавно тоже встала проблема преобразования. Для начала поправил конфиг. Попробовал создать документ со сканера (не из ркк) с преобразованием в pdf. Выдает ошибку. Если воспользоваться кодом приведенным выше и убрать оттуда обработку исключений, то получаем ту же ошибку. Подскажите куда копать. В логах примерно следующее:
(под катом)
Проблема аналогичная. Расскажите, пожалуйста, подробнее как это настроить? На сервере стоит программа по умолчанию irfanview.
Также возник вопрос, чтобы данный функционал отрабатывал на клиентском компьютере, необходим установленный MS Toolkit. Периодически сканирование в pdf "ломается" (сканирует в tiff), приходится переустанавливать MS Toolkit. Каковы возможны причины такой нестабильности?
На компьютере пользователя должен быть установлен Microsoft SOAP Toolkit 3.0
Авторизуйтесь, чтобы написать комментарий