Почтовое слияние или схожая функциональность из C # - PullRequest
0 голосов
/ 10 октября 2011

Мне нужно напечатать несколько тысяч наклеек с несколькими текстовыми полями (имя, должность и т. Д.), А также изображение штрих-кода.

Каждый сотрудник получает две уникальные наклейки, а бумага для наклеек имеет 4 на лист, то есть 2 сотрудника на лист.

У меня уже есть весь код для создания штрих-кода в виде Image, а данные о персонале хранятся в List объекта.

Если возможно, я бы не хотел использовать MSWord напрямую, поскольку моя среда разработки сильно отличается от целевой среды, и в прошлом у меня были проблемы из-за несоответствия. (Win7-64, MSOffice2010 против WinXP-32, MSOffice2003).

Какой лучший способ сделать это?

Если я сохраняю документ в формате XML и заменяю поля слияния почты уникальными токенами, которые я могу заменить своими фактическими значениями (и я даже могу заменить данные двоичного изображения на байты изображения в кодировке Base-64), это работает но это неуклюже Для начала мне нужно сохранить XML-файл, а затем каким-то образом распечатать его прозрачным для пользователя (не хочу, чтобы Word отображался). Кроме того, шаблон XML составляет 1 страницу, но у меня может быть несколько десятков для печати. Я могу отправить каждую страницу на принтер по отдельности, но это не совсем идеально.

Любые другие предложения?

1 Ответ

0 голосов
/ 10 октября 2011

Я бы использовал DevXpress XtraReports, как я использовал его в прошлом в подобных сценариях с отличными результатами. Если вы предпочитаете другие движки, такие как Crystal или Telerik, то же самое, просто перетащите некоторые поля в разделе сведений о странице и назначьте список объектов в качестве источника данных. DevXpress также имеет RichTextBox со встроенной функцией mailmerge. наконец, если вы решили использовать слово, не забывайте, что вы можете автоматизировать и использовать его, оставляя его невидимым, чтобы пользователи его не видели.

...