Печать этикеток Avery из ASP.NET MVC - PullRequest
6 голосов
/ 19 февраля 2011

Я пытаюсь динамически генерировать и печатать этикетки Avery из приложения ASP.NET MVC 2.Ярлыки будут ограничены примерно 5-ю различными шаблонами.Мне интересно, как лучше всего это сделать?Этикетки имеют решающее значение для нашего приложения, и поэтому нам необходимо максимально сократить количество ошибок печати. ​​

Я слышал, что могу пойти на хитрый подход и создавать HTML-шаблоны, однако будет много ошибок печати,Лучший подход, с которым я столкнулся - это печатать в PDF.Есть ли подводные камни для этого подхода и насколько сложно его реализовать?Также я пойду делать это?Кто-нибудь знает о программном обеспечении API или стороннего программного обеспечения, которое позаботится об этой функции?

Ответы [ 9 ]

4 голосов
/ 15 ноября 2011

Я также боролся с подходом HTML / CSS из-за несогласованного поведения печати во всех браузерах.

Я создал библиотеку C # для создания меток Avery в PDF из ASP.NET, что, я надеюсь, вам может пригодиться:

https://github.com/wheelibin/SharpPDFLabel#readme

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

(я использую его для этикеток со штрих-кодом)штрих-код создается в виде изображения и затем добавляется к этикетке с помощью этой библиотеки.)

Cheers

1 голос
/ 22 февраля 2012

Wheelibin SharpPDFLabel хорош, если вы хотите напечатать один и тот же контент несколько раз на вашем листе. Если вам нужно напечатать неодинаковые этикетки (т. Е. Каждая этикетка на листе имеет разное содержимое), Я разместил в блоге свое решение MVC / iTextSharp / PDF здесь .

1 голос
/ 30 марта 2011

Посмотрите как опции CSS Media.http://www.w3.org/TR/CSS2/media.html

По сути, вы можете настроить стиль на принтере, который может скрывать все ненужные эффекты на странице и выполнять точную настройку макета.

- Обновление: дополнительная информация о PDFгенерация:

С PDF-файлами, как правило, у вас есть PDF-движок (и LOT там) на сервере с шаблоном, который генерирует PDF-файл, этот файл обычно загружается в браузер через универсальный обработчик,Создание PDF-файла с помощью HTML-шаблона на сервере должно устранить несоответствия браузера.

http://www.codeproject.com/KB/aspnet/Creating_PDF_documents_in.aspx

Я наткнулся на эту технику, которая использует Razor View Engine для создания аля MVC PDF, выглядит многообещающе.

http://www.emphess.net/2010/11/09/create-high-quality-pdfs-with-razor-view-engine-and-latex/

0 голосов
/ 09 апреля 2014

Одна идея, которая приходит в голову, - это использовать стиль CSS, подобный этому , а также библиотеку для преобразования HTML в PDF на сервере, чтобы вывод был согласованным для всех клиентов.Я использую EvoPDF для последнего;это стоит денег, но есть и бесплатные варианты.

0 голосов
/ 21 марта 2014

Я считаю, что использование объявлений типа @print css media будет лучшим решением для «печати» надписей.Потребуются эксперименты, поскольку различные принтеры и детали макета могут повлиять на макет, но я работаю над решением, которое требует этого сейчас, и в основном иду в этом направлении.Я сделаю все возможное, чтобы следить и сообщить вам, насколько хорошо это работает.Мне нужно настроить наше онлайн-приложение, чтобы печатать значки с именами на листах перфорированных значков Avery 5392, 6 листов.

0 голосов
/ 13 сентября 2012

Это может быть достигнуто путем манипулирования XML-файлом в отформатированном файле .DOCX. Компоненты сторонних производителей не требуются, и вы можете изменить их в соответствии с любым источником данных, XML, DataTable и т. Д.

Информацию об этом см. В статье моего блога " Этикетки Avery для печати через ASP.net и Microsoft Word XML ".

0 голосов
/ 04 апреля 2011

Относительно вашего вопроса о проблемах при создании PDF вывода. Одна вещь, которая часто получает нас, это когда мы используем штрих-коды. Когда мы делаем это и генерируем PDF, пользователи иногда печатают с такими настройками, как «масштабирование по размеру страницы», что может изменить размер вывода и привести к невозможности чтения штрих-кодов.

0 голосов
/ 03 апреля 2011

Если это приложение для внутренней сети и небольшое количество одновременно работающих пользователей, я рекомендую вам рассмотреть возможность использования Word Automation. На протяжении многих лет я внедрял приложения Win32, Winform и веб-приложения, которые автоматизировали Ms. Word, и хотя многие будут критиковать его использование, я лично считаю, что он имеет свою нишу и может быть очень полезным и хорошо работать при правильном управлении. Для печати на этикетке, некоторые из ключевых проблем будут макетирование, форматирование и подкачка страниц. Прелесть использования Word MailMerge в том, что вы можете спроектировать и протестировать все это с помощью Ms. Word. Затем вы можете создать файл шаблона и с точки зрения автоматизации все, что вам нужно сделать, это:

  • Открыть конкретный файл шаблона (из ваших 5 шаблонов)
  • Укажите ваш источник данных
  • Укажите ваш вариант слияния
  • Выполнить почтовое слияние
  • Распечатайте полученный документ на принтере или сохраните его в PDF (напрямую, если вы используете 2007 или более позднюю версию, или распечатайте в PDF-драйвере стороннего производителя)
  • Закрыть приложение для документов и слов

Еще одна очень приятная особенность автоматизации слова - ваша способность записывать макросы и просматривать код. Так, например, если вы не уверены в том, как установить вышеуказанный параметр источника данных / слияния, вы можете записать макрос, как вы это делаете в пользовательском интерфейсе. Позже рассмотрим сгенерированный код VBA и транспонируем ту же логику в коде .NET, чтобы достичь того же потока логики обработки.

Вот некоторая информация, с которой можно начать (на основе Word 2003, но объектная модель очень похожа на более новую версию) http://www.c -sharpcorner.com / UploadFile / amrish_deep / WordAutomation05102007223934PM / WordAutomation.aspx

0 голосов
/ 01 апреля 2011

Я бы использовал iTextSharp для создания PDF-файла, содержащего необходимый формат.

Это довольно популярная библиотека PDF с открытым исходным кодом для использования в .Net. http://sourceforge.net/projects/itextsharp/

...