Преобразование документов MS Word в PDF в ASP.NET
Подобные вопросы были заданы, но ничто не похоже на мой, так что здесь идет.
У нас есть коллекция документов Microsoft Word на веб-сервере ASP.NET с полями слияния, значения которых заполняются в результате отправки пользовательских форм. После слияния полей сервер должен преобразовать документ в PDF и передать его в браузер. Нашей первой склонностью было использовать Visual Studio Tools for Office API; Однако мы столкнулись с этим предупреждением от Microsoft:
В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или или тупик, когда Office работает в этой среде.
Похоже, что манипулирование полем можно выполнить с помощью Open XML SDK, но как лучше конвертировать документы Word 2007 в PDF, не открывая Word? Оптимальное решение было бы недорогим, масштабируемым, занимало бы мало места в памяти, было бы простым в развертывании и имело бы.NET API.
8 ответов
Это не совсем Open Source, но у Aspose есть пара продуктов, которые могут это сделать,
Aspose.Pdf.Kit - это неграфический компонент управления документами PDF®, который позволяет разработчикам.NET и Java управлять существующими файлами PDF, а также управлять полями форм, встроенными в файлы PDF. Aspose.Pdf идеально подходит для создания новых файлов PDF; однако разработчикам часто приходится редактировать уже существующие документы PDF. Aspose.Pdf.Kit позволяет им сделать это. Aspose.Pdf.Kit позволяет разработчикам создавать мощные приложения для объединения данных непосредственно в документы PDF, а также для обновления и управления документами PDF. Aspose.Pdf.Kit - замечательный продукт и прекрасно работает с остальными нашими продуктами PDF.
Aspose.Pdf - это неграфический компонент отчетов PDF®, позволяющий приложениям.NET или Java создавать документы PDF с нуля без использования Adobe Acrobat®. Aspose.Pdf по очень доступной цене и предлагает множество мощных функций, включая сжатие, таблицы, графики, изображения, гиперссылки, безопасность и пользовательские шрифты. Aspose.Pdf поддерживает создание файлов PDF через API, шаблоны XML и файлы XSL-FO. Aspose.Pdf очень прост в использовании и поставляется с 14 полнофункциональными демонстрациями, написанными как на C#, так и на Visual Basic.
Проверьте API и демоверсии. Вы можете скачать DLL бесплатно, чтобы попробовать. Я использовал оба раньше, и они отлично работают.
Есть также iTextSharp, который является портом C# iText, конвертера Java PDF. Я слышал, что некоторые люди пробуют это с неоднозначными результатами.
Вопрос "Документы MS Word в PDF в ASP.NET", поэтому я очень озадачен, почему Aspose.Pdf и Aspose.Pdf.Kit рекомендуются выше. Вам необходимо использовать Aspose.Words, потому что это компонент, который поддерживает документы Microsoft Word для преобразования PDF.
Посетите ресурс Microsoft по сохранению документов Word 2007 в форматах PDF и XPS с использованием C# или VB.
Aspose.Words может быть лучшим вариантом для вас, но он не конвертирует все визуальные элементы идеально.
Взгляните на веб-сервисы Muhimbi PDF Converter. Он работает в Windows как служба, но к нему можно получить доступ из любой среды, не поддерживающей веб-службы Windows, включая Java и.NET.
Хотя это решение требует установки MS-Office на сервере (не обязательно на том же сервере, что и ваше приложение), он очень надежен и обеспечивает идеальную точность преобразования. Чтобы обойти тупиковые проблемы, о которых Microsoft упоминает в своей статье в КБ, нужно приложить немало усилий.
Для создания или изменения файлов MS-Word я рекомендую использовать бесплатный Open XML SDK для Microsoft Office. Эрик Уайт ведет очень хороший блог об этом.
Отказ от ответственности, я работал над этим продуктом. Сказав это, он прекрасно работает.
ABCpdf - еще один популярный компонент, который позволит вам конвертировать документы Word в PDF в ASP.NET, однако я считаю, что он также использует Microsoft Office или OpenOffice.
Вы должны попробовать использовать OpenOffice для этого. Это бесплатно и поддерживает целый ряд преобразований файлов. Я использовал его для преобразования файлов DOC & DOCX в формат HTML с фантастическими результатами.
ActivePdf DocConverter - http://www.activepdf.com/
Но для качественной конвертации требуется установленный на сервере Office.
Надстройка Microsoft PDF для word кажется лучшим решением на данный момент, но вы должны принять во внимание, что она не преобразует все документы Word правильно в pdf, а в некоторых случаях вы увидите огромную разницу между словом и выходным pdf. К сожалению, я не смог найти API, который бы правильно конвертировал все текстовые документы. Единственное решение, которое я нашел, чтобы убедиться, что преобразование было на 100% правильным, было преобразование документов через драйвер принтера. Недостатком является то, что документы ставятся в очередь и конвертируются один за другим, но вы можете быть уверены, что полученный pdf в точности соответствует слову docuemtn. Я лично предпочел использовать UDC (Универсальный конвертер документов) и установить Foxit Reader(бесплатная версия) на сервере, а затем распечатать документы, запустив "Процесс" и установив для его свойства Verb "печать". Вы также можете использовать FileSystemWatcher, чтобы установить сигнал после завершения преобразования.