gifts2017

Быстрое создание печатных форм на основании отсканированного документа.

Опубликовал Анатолий Бритько (headMade) в раздел Программирование - Практика программирования

Быстрое создание печатных форм на основании сканов

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

 

 

  1. Создаем макет для впечатывания данных в типографские бланки на основании отсканированной печатной формы.

1)      Создаем ячейку требуемого размера или группу ячеек. Размер ячейки должен совпадать с размерами печатной форы. В моем случае печатная форма имеет размер 203х143 мм, соответственно ширина ячейки - 109, а высота 409. Для формата А4 размер 297х210 мм будет преобразован соответственно в 600х159 п.

2)      Задаем имя для Строки макета

3)      Вставляем Объект «Картинка». 

4)      Картинку выбираем из файла (выбираем отсканированную форму отчета).

        

5)      В свойствах картинки снимаем флаг «Выводить на печать».

         

6)      Далее картинку необходимо сжать так, чтобы она влезла в размеры ячейки. Для более точного подгона картинки под размеры ячейки можно использовать кнопки U92;,U94;,U93;,U95; вместе с нажатой кнопкой SHIFT.

          

7)      Отредактировать границу макета т.к. после вставки рисунка она может увеличиться. См. на пунктирные линии в макете.  Необходимо удалить лишние строки (колонки) так чтобы границы ячейки и макета совпадали.

8)      Для заполнения макета данными добавляем объект Текст 

9)      В свойствах объекта:

  1. Указываем тип заполнения ячейки «Параметр» и указываем имя параметра для вывода содержимого ячейки «НомерПутевого».

      

  1. Ставим флаг «Содержит значение»

     

  1. Убираем линии

     

  1. Цвет фона ставим Авто. Для этого нажимаем кнопку .

      

  1. Настраиваем шрифт, цвет, размер и осуществляем др. форматирование.

10)    Выводим макет на печать:

          ТабДокумент = Новый ТабличныйДокумент;

          ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

          ТабДокумент.ПолеСверху         = 0;

          ТабДокумент.ПолеСнизу           = 0;

          ТабДокумент.ПолеСлева          = 0;

           ТабДокумент.ПолеСправа        = 0;

          Макет = ПолучитьМакет("ПутевойЛистТрактора");

          ОбластьШапка = Макет.ПолучитьОбласть("Путевой");

          ОбластьШапка.Параметры.НомерПутевого    = "00000001";

          ТабДокумент.Вывести(ОбластьШапка);

          ТабДокумент.Показать();

11)   Распечатываем макет и проверяем значения каких полей попали в макете на свое место, а какие съехали. В конфигураторе  с помощью кнопок U92;,U94;,U93;,U95; вместе с нажатой кнопкой SHIFT двигаем поля в нужных направлениях.

  1. Создаем печатную форму на основании ее отсканированной версии.

1)       Создаем ячейку требуемого размера или группу ячеек. Размер ячейки должен совпадать с размерами печатной форыВ моем случае печатная форма имеет размер 203х143 мм, соответственно ширина ячейки - 109, а высота 409. Для формата А4 размер 297х210 мм будет преобразован соответственно в 600х159 п.

2)      Вставляем Объект «Картинка» .

3)      Картинку выбираем из файла (выбираем отсканированную форму отчета).

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

5)      Далее картинку необходимо сжать так, чтобы она влезла в размеры ячейки. Для более точного подгона картинки под размеры ячейки можно использовать кнопки U92;,U94;,U93;,U95; вместе с нажатой кнопкой SHIFT.

6)      Теперь использую созданную подложку в виде макета нужной печатной формы можно легко создать скелет  - просто изменяя размеры строк и колонок под нужную нам структуру.

 

 Для расчет размера ячейки Высота и Ширина в (мм) в редакторе шаблонов можно воспользоваться обработкой автора sphomin.

Скачать файлы

Наименование Файл Версия Размер
Пример макета во внешней обработке 58
.rar 334,53Kb
04.05.13
58
.rar 334,53Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Dmitry Dmitry (Dimasik2007) 04.05.13 00:23
Приложите файлы к статье, а не внешним файлохранилищам.
2. TMV 04.05.13 06:13
3. Марат Ибрагимов (ranger) 06.05.13 08:38
Привет.Распечатал приложенный путевой лист.При печати на принтере вышел только номер...
4. Марат Ибрагимов (ranger) 06.05.13 08:45
Поставил галочку у рисунка "ВыводитьНаПечать" и нормуль.
А так за идею +1
5. Константин (maverick76) 07.05.13 11:09
6. Сергей Маслов (LexSeIch) 07.05.13 11:56
Мир этому дому!
Идея интересная. Взял на заметку. Спасибо.
7. Mark Genuine (markgenuine) 07.05.13 15:26
Очень познавательно и просто, в случае с сложной печатной форме нужно использовать данный метод, чтобы не тратить много времени.
8. Виталий Черненко (SeiOkami) 07.05.13 18:40
9. Мария Мария (mary61) 08.05.13 08:24
Интересный подход. Спасибо за идею
10. Андрей Данилюк (DanilaDru) 08.05.13 17:52
11. Alex Azarnin (1985Alex1985) 08.05.13 20:55
Спасибо за идею :) жаль что только сейчас прочитал эту статью. У нас как раз недавно шла массовая штамповка форм для новой конфигурации. Пригодилось бы. Добавлю в избранное, воспользуюсь при случае :)
12. Геннадий Кондрашкин (Kondrat) 13.05.13 12:23
Спасибо, буду использовать.

to ranger: Первая часть статьи для печати на уже готовых, типографских БЛАНКАХ. Все правильно
13. mikhailovaew (mikhailovaew) 13.05.13 15:03
Жаль, не подойдет для форм, где выводится табличная часть.
14. Анатолий Бритько (headMade) 13.05.13 16:53
(13) mikhailovaew,
табличная часть динамически рисуется или в чем именно проблема?
15. mikhailovaew (mikhailovaew) 13.05.13 17:15
(14) headMade, я имею в виду, что у документов есть табличные части, количество строк в них заранее не известно. Возьмем ту же ТОРГ-12 - строк там столько, сколько товаров продается. Я поняла так, что Ваш способ описывает формы, где вывод динамической табличной части не предусмотрен.
16. mikhailovaew (mikhailovaew) 13.05.13 17:17
можно правда "разрезать" pdf на области и выводить их...
17. Анатолий Бритько (headMade) 13.05.13 18:28
(15) mikhailovaew, да, в описанном способе вывод динамической табличной части не предусмотрен.

(16) mikhailovaew, можно попробовать разрезать на части, но у меня такого опыта не было
18. IR IR (Artemuch2) 14.05.13 10:11
Да раньше помню так и делали впечатывали в формы нужные данные на готовых бланках. особенно если бланки строгой отчетности
19. Владимир Клименко (KliMich) 14.05.13 14:33
Интересный подход! Спасибо
20. Andrew Skotarev (Skotarev) 09.01.14 14:36
Жаль, что не наткнулся на статью ранее, избежал бы пары часов нудной работы. Автору спасибо.
21. Allexey (alex_4x) 29.07.14 10:10
Несомненно это полезный материал, но такие печатные формы годятся "залатать дыры", а вообще их лучше так не оставлять. Края у табличек будут грязненькие, не презентабельные. Конечно можно это поправить в фотошопе, но всё равно выглядеть будет не идеально. Так что только как временное решение.
Второй повод для применения такого финта с подложкой из картинки - это формы, где как таковой таблички то и нет, всякие пригласительные билеты, анкеты, тесты и так далее.
Еще кстати можно векторную картинку в формате WMF вставить, принцип тот же, но вместо растра будет вектор, соответственно нет артефактов. Сложные бланки так и делали (полис ОСАГО,ДАГО, Заявления с кучей полей под буквы, цифры и когда всё это вразнобой - несколько колонок и не пойми какой ширины).
headMade; +1 Ответить
22. Роман Ложкин (webester) 29.07.14 04:52
Можно использовать, если не осталось других вариантов и не хочется полжизни, вымерять отступы, шрифты и размеры. Во всех остальных случаях, "грязь" отсканирования, мелкие артефакты(царапины и тд) будут на печатной форме, про случаи когда строка должна раздвигаться или про "раздвинь колонку немного, а то две цифры не влазят" можно забыть разумеется. А в остальном очень даже ничего.
23. Владимир Каракозов (karakozov) 29.07.14 12:37
интересное решение для сложных печатных форм, там где для разметки макета нужно потратить больше времени чем на код.Жаль что не применимо к выводу табличных частей, но простые документы со сложной разметкой макета вполне можно сделать.Автору плюс.
24. Viacheslav Bilous (Gendalf_beliy) 29.07.14 14:11
Здорово. Я даже и не знал. что так можно делать. Особенно актуально при печати на бланках.
25. Amory Meow (Amory) 29.07.14 14:09
26. Alexey (ejik2012) 29.07.14 13:13
Сорри за тупой вопрос! Собственно что за кнопки "U92;,U94;,U93;,U95;" и каких использовать???
BigB; rasswet; +2 Ответить 1
27. Анатолий Бритько (headMade) 30.07.14 00:51
(26) ejik2012,
Имелось ввиду кнопки ↑(вверх)↓(вниз) →(вправо) ←(влево). Просто в тексте статьи некорректно отобразило
28. JusteR Upra (JusteRU) 30.07.14 02:25
Полезный способ, спасибо!
29. noven (noven) 30.07.14 06:01
Спасибо. Интересная идея.
30. Андрей Акулов (DrAku1a) 30.07.14 19:46
1. Сканируем в FineReader, конвертируем в Excel
2. Настраиваем в Excel, печатаем и подстраиваем - дотачивая мелочи
3. Находим на ИС обработку, конвертирующую Excel в MXL (их тут штук 5-10 есть)
4. Конвертируем
5. Копируем результат в отчёт
6. Настраиваем вывод (поля, шаблоны, вывод значений)
profit
anrspb; GOshaSaveiko; boorenka; FlagmanGK; Razlagutt; white_sochi; Berrimor; +7 Ответить
31. Николай (nipil) 01.11.14 17:18
Полезно. Но нужно учитывать и модель принтера. Если подогнать для одной модели, при печати на другой модели возможно незначительные отклонения.
Использовал похожее решение как для печати на готовых бланках так и используя от сканированное изображение.
headMade; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа