2009-02-19 2 views
3

Мне нужно иметь возможность конвертировать и объединять различные документы в один Pdf.ASP.Net Преобразование и объединение документов в один PDF

Документы могут быть разных типов, таких как Word, Open Office, Images, Text, Web-страницы (по URL-адресу), а PDF обычно состоит из 2-3 документов.

На данный момент мы используем технологию BCL Technologies easyPDF с установленным на сервере Microsoft Office. Это обрабатывает большинство документов, но мы еще не делали Open Office.

В настоящее время мы производим около 100-1000 этих PDF-файлов в день.

Причина, по которой я задаю вопрос, заключается в том, что производительность является ключевой проблемой. PDF создается для пользователей «на лету», поэтому время ожидания, которое мы получаем в настоящее время 30-60 секунд, становится неприемлемым.

Мы выполнили некоторую кешировку вокруг документов, когда они загружены в сеть, поэтому основные задачи, которые происходят, когда Пользователь запрашивает Pdf, объединяют несколько уже сгенерированных Pdf.

Есть ли у кого-нибудь другие инструменты, которые они использовали, которые надежно работают для большинства распространенных типов документов и, прежде всего, быстро? Когда это делается, мне кажется, что я много прошу!

Редактировать: Спасибо за все замечательные советы, я рассмотрю некоторые из них и сравню производительность.

Просто чтобы добавить ко всему этому, деньги на самом деле не являются объектом. Мы более чем рады заплатить за различные приложения для выполнения каждой задачи, а также за различные варианты аппаратного обеспечения для максимально возможного распределения нагрузки.

ответ

3

Объединение нескольких документов PDF, как правило, достаточно просто (до тех пор, пока они не должны быть объединены на одной и той же странице) - Вы могли бы сравнить производительность слияния с чем-то вроде iTextSharp (.NET версия IText) чтобы быть уверенным, что это не узкое место - иначе конвертирование из других форматов в PDF, скорее всего, является узким местом.

Практически во всех случаях метод, используемый для преобразования X в PDF, предназначен для выполнения команды печати приложений, ориентированной на программный PDF-принтер, для создания временного файла PDF.

Это означает:

  • Целевое приложение (например, Office) открывается и закрывается
  • Документ должен пройти через службу печати

В вашей ситуации, вы преобразования произвольные документы, представленные пользователями, или документы поступают из хранимой библиотеки файлов? Если это библиотека, вы можете сделать PDF-копию каждого файла, поскольку она добавлена ​​в библиотеку (а не когда пользователь делает запрос), а затем только объединить файлы PDF.

2

Мы используем ABC Pdf. Я не знаю, будет ли он достаточно быстро для ваших нужд, но, похоже, он работает для нашего использования.

-1

Хотя у меня нет предложений по конвертации PDF, я могу сказать, что эта проблема звучит как одна, которая может быть распределена по нескольким узлам. Вы находите, что генерация PDF связана с ЦП или существуют другие ограничивающие факторы? Прежде чем тратить слишком много усилий на переписывание интерфейса библиотеки PDF, вы можете увидеть, что такое узкие места.

2

У меня была очень похожая проблема, когда у нас были документы, которые уже были в формате PDF, и чтобы пользователи могли видеть их все вместе. Мы приобрели продукт PDF4NET, который был примерно 500 долларов США из того, что я помню. Он был чрезвычайно прост в использовании, и они предоставляют потрясающие примеры использования этих инструментов.

O2 Solutions - PDF4NET

Вот пример кода, который они обеспечивают для слияния. Верхняя строка выглядит так, как будто она просто выводит файл, а вторая 2 строки позволяют потоковое содержимое обратно пользователю.

 PDFFile.MergeFilesToDisk("append.pdf", "unicode.pdf", "multicolumntextandimages.pdf"); 
     PDFDocument doc = PDFFile.MergeFilesToDoc("append.pdf", "unicode.pdf", "multicolumntextandimages.pdf"); 
     doc.SaveToStream(stream); 
2

Вы говорите, что используете Microsoft Office для открытия этих файлов, я бы предположил, что это узкое место, а не фактическое создание PDF.

Возможно ли перевести эти документы в более доступный формат (html/xml/database), так что нет необходимости открывать офис каждый раз, когда необходимо создать PDF-документ?

Смежные вопросы