Генератор бизнес писем в PDF по данным из XML

  • Tutorial
Очень часто в производстве возникает задача разослать несколько писем с вложением в формате pdf. Это могут быть не только счета или фактуры, но и извещения или приглашения, персональные сообщения об акциях и тому подобное. Конечно, еще со свадьбы в записной книжке завалялось сотня другая человек. Текст письма может быть как статическим, так и вариативным. И тут обегаешься по всему интернету с вопросом как это сделать…

Возьмем за основу письмо следующего содержания



Текст тела письма при рассылке не будет меняться, за исключением текста, выделенного курсивом, соответственно отправитель тоже будет один, а вот адресатов будет несколько

Подготовим базу адресатов в xml формате, я не буду пояснять что там значит заголовок, думаю, что опытный читатель разберется сам. Отмечу только, что формат легко меняется под ваши данные, которые набиваются по вашему индивидуальному шаблону

Итак, база получателей (оригинальные xml файлы размещены по ссылке в конце. Вы можете скачать их и изменить по собственному желанию)




В качестве модели имеем, набор полей Дата, Название компании, Имя, Адрес, Город, Телефон

  <Date>Friday, 23/05/2019</Date> 
  <CompanyName>Qualcomm</CompanyName> 
  <Name>Lucas</Name> 
  <Address>711-2880 Nulla St.</Address> 
  <City>Mankato Mississippi 96522</City> 
  <Phone>(257) 563-7401</Phone>


Скачиваем демоверсию FastReport и открываем Letter_Blank.frx



В рассматриваем случае дата отправки письма в правом верхнем углу тянется из xml файла, поэтому заменяем этот текст на



Что означает, что текст будет тянуться из поля Data таблицы Letters

Аналогично проделываем подобную подстановку с другими динамическими значениями (они для наглядности выделены красным)



Более подробно вы можете ознакомится с этими заменами в файле Letter.frx

Запускаем отчет и получаем



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

github.com/ufocombat/Letters
Поделиться публикацией

Комментарии 5

    –1
    Ну, и какая ценность в этом? XML — фу. А чего не в ямле-маркдауне? Почему на FastReport? А не самописный скрипт на python?
      0
      а причем тут .net?
        0
        Можно все руками делать а можно в .net запускать и рассылать все планирую продолжить данную статью
        0
        Если на входе XML, то почему не XSL-FO?
          0
          у FR был такая демо база, сделал на ее основе. бд могут быть очень разнообразными…

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое