как я должен экспортировать данные в документы office и pdf в asp.net mvc 3

#asp.net-mvc-3 #pdf-generation

#asp.net-mvc-3 #генерация pdf

Вопрос:

я ищу наилучший способ решения этой проблемы и в каком порядке мы делаем это лучше всего.

у нас есть приложение, в котором пользователи могут вводить определенные личные данные, после чего они могут загрузить документ Word (.docx) или получить pdf (.pdf) своих личных данных.

то, что мы уже сделали, — это все отдельно: с помощью шаблона * .docx мы заполняем параметризованные поля, а затем сохраняем его как docx для пользователя

и с помощью определенной библиотеки под названием BioPDF мы можем преобразовать отображаемый документ Word в PDF

мы стремимся избежать установки office (или любого другого инструмента office) на сервере, поэтому текущая библиотека должна быть удалена, мы знаем iTextSharp как библиотеку для создания PDF-файлов, но это означало бы, что каждый раз, когда меняется шаблон, нам нужно обновлять наш шаблон * .docx дляфайлы word и в то же время обновить код iTextSharp, который отображает наш pdf.

мы смотрим на это неправильно? в каком порядке мы должны генерировать эти файлы, чтобы — минимизировать работу при изменении шаблона — на сервере не были установлены программы office

с наилучшими пожеланиями Сандер Хауттекир

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

1. Я только что заметил следующее в CodeProject — codeproject.com/KB/office/WebPDF.aspx — он включает в себя демонстрационное приложение iTextSharp и может быть полезен.

Ответ №1:

поскольку мы до сих пор не нашли бесплатную библиотеку, которая делает именно то, что нам нужно, мы серьезно подумываем о покупке лицензии на Aspose.Слова, которые с легкостью делают то, что нам нужно.

по крайней мере, это то, что показывает нам оценка …

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

итак, поиски бесплатной альтернативы aspose продолжаются, но пока я закрою эту, поскольку мы нашли библиотеку, которая делает то, что мы хотим. (и если я посмотрю на цены aspose.words, я могу только предположить, что они знают, что они предоставляют только эти функции: P)

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

1. Вы также можете посмотреть этот видеоурок , чтобы увидеть, как можно быстро интегрировать Aspose. Слова для .NET с ASP.NET MVC. Если вам нужна дополнительная помощь во время разработки, вы можете связаться с нашей службой поддержки . Раскрытие информации: я работаю евангелистом-разработчиком в Aspose.

Ответ №2:

Я бы начал с использования OpenXML SDK, который позволит вам программно создавать документы office и управлять ими.

Для этого не требуется, чтобы на вашем сервере был установлен или лицензирован Microsoft Office, достаточно одной библиотеки DLL, которую при желании можно развернуть вместе с остальной частью вашего приложения.

Я не играл с динамической генерацией PDF (кроме старого доброго GhostScript), поэтому я не могу предложить никаких советов.

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

1. OpenXML SDK — это то, что мы используем для генерации docx, который работает идеально, и, как и ожидалось, наша единственная проблема сейчас заключалась в том, как нам получить PDF-файл с минимальными шагами по мере необходимости, начиная с нуля с помощью itextsharp сложнее, чем найти библиотеку, которая переходит из нашего docx в pdf, но последнее(мы нашли этот BioPDF) требуется office на сервере, а это вообще не вариант.

2. Хорошо, это имеет смысл … большинство этих программ PDF работают так же, как и GhostScript: документ открывается в режиме предварительного просмотра и печатается с использованием универсального драйвера postscript, а затем pdf создается из postscript. Итак, вам нужен MS Office как способ предварительного просмотра документа. Я считаю, что подход itext позволяет обойти это, создав документ с нуля.

3. верно, с itextsharp мы можем создавать PDF-файлы с нуля без необходимости office на сервере. Я только надеялся, что существует аналогичная система, такая как itextsharp, которая работает с существующим файлом docx или подобной системой шаблонов. потому что после создания docx с помощью OpenXML SDK кажется странным необходимость повторного создания всего файла только для его рендеринга в формате pdf. если это единственный вариант, мы просто воссоздадим его с помощью itextsharp, тогда

Ответ №3:

Вы могли бы попробовать использовать PDFsharp y MigraDoc

Похоже, что один и тот же код может отображаться в формате PDF, на принтере или на экране .. а MigraDoc может отображаться в формате RTF.

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