#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.
Я планировал интегрировать это с моими проектами, но сам не пробовал, возможно, это подходит для вашего проекта.