IE2017

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

Программирование - Практика программирования

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

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

 

 

  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.

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

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

См. также

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

to ranger: Первая часть статьи для печати на уже готовых, типографских БЛАНКАХ. Все правильно
13. mikhailovaew (mikhailovaew) 128 13.05.13 15:03 Сейчас в теме
Жаль, не подойдет для форм, где выводится табличная часть.
14. Анатолий Бритько (headMade) 133 13.05.13 16:53 Сейчас в теме
(13) mikhailovaew,
табличная часть динамически рисуется или в чем именно проблема?
15. mikhailovaew (mikhailovaew) 128 13.05.13 17:15 Сейчас в теме
(14) headMade, я имею в виду, что у документов есть табличные части, количество строк в них заранее не известно. Возьмем ту же ТОРГ-12 - строк там столько, сколько товаров продается. Я поняла так, что Ваш способ описывает формы, где вывод динамической табличной части не предусмотрен.
16. mikhailovaew (mikhailovaew) 128 13.05.13 17:17 Сейчас в теме
можно правда "разрезать" pdf на области и выводить их...
17. Анатолий Бритько (headMade) 133 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) 6 09.01.14 14:36 Сейчас в теме
Жаль, что не наткнулся на статью ранее, избежал бы пары часов нудной работы. Автору спасибо.
21. Allexey (alex_4x) 72 29.07.14 10:10 Сейчас в теме
Несомненно это полезный материал, но такие печатные формы годятся "залатать дыры", а вообще их лучше так не оставлять. Края у табличек будут грязненькие, не презентабельные. Конечно можно это поправить в фотошопе, но всё равно выглядеть будет не идеально. Так что только как временное решение.
Второй повод для применения такого финта с подложкой из картинки - это формы, где как таковой таблички то и нет, всякие пригласительные билеты, анкеты, тесты и так далее.
Еще кстати можно векторную картинку в формате WMF вставить, принцип тот же, но вместо растра будет вектор, соответственно нет артефактов. Сложные бланки так и делали (полис ОСАГО,ДАГО, Заявления с кучей полей под буквы, цифры и когда всё это вразнобой - несколько колонок и не пойми какой ширины).
headMade; +1 Ответить
22. Роман Ложкин (webester) 22 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) 1 29.07.14 14:09 Сейчас в теме
26. Alexey Degtyaryov (ejik2012) 29.07.14 13:13 Сейчас в теме
Сорри за тупой вопрос! Собственно что за кнопки "U92;,U94;,U93;,U95;" и каких использовать???
BigB; rasswet; +2 Ответить 1
27. Анатолий Бритько (headMade) 133 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) 1203 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 Ответить
Оставьте свое сообщение