Производительность генерации PDF ASP.NET - PullRequest
1 голос
/ 14 марта 2012

Я сейчас создаю сайт ASP.NET, где мы заменяем каждую кнопку печати кнопкой загрузки в формате pdf.Это по той простой причине, что мы хотим, чтобы ответ был одинаковым во всех браузерах с напечатанным на нем собственным брендом.

Он отлично работает, а сгенерированные pdf-файлы идеальны (EO.PDF).Однако, кажется, что это занимает немного нагрузки.

Теперь мне интересно, есть ли хорошие методы, которые я мог бы использовать для повышения производительности?Регулирование, «отправка по электронной почте» и т. Д.

Я не очень разбираюсь в многопоточности, но есть ли способ разделить один поток на два виртуальных потока и назначить определенный набор ресурсов одному?Или, может быть, назначить один конкретный поток только для генерации PDF и сделать его неактивным в любом другом событии?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 апреля 2013

Несмотря на то, что EO.PDF является «поточно-ориентированным», по крайней мере с EO.PDF 2011 / 3.x, он сериализует все, что означает, что многопоточность не способствует производительности EO.PDF вообще. Хотя запуск EO.PDF в качестве фоновой службы будет препятствовать «зависанию» ответа, он также превращает его в асинхронный процесс - это может или не может быть хорошо, но это совершенно другой подход.

При использовании поддержки EO.PDF для преобразования другой страницы ASP.NET повышение производительности может быть достигнуто за счет быстрой загрузки страницы. EO.PDF поддерживает кэширование, но я не уверен, сохраняется ли это между разными процессами. В этом аспекте рассмотрите возможность анализа веб-запросов, сгенерированных EO.PDF, чтобы увидеть, есть ли какие-нибудь серьезные узкие места, которые можно улучшить.

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

0 голосов
/ 14 марта 2012

Пользователь, следующий за кодом для создания PDF в asp.net: вам нужно скачать itextSharp.dll, а затем дать ссылку в своем веб-приложении.

Ниже приведен полный пример кода для начала работы. // Код

using System;
using System.IO;
using System.Diagnostics;

using iTextSharp.text;
using iTextSharp.text.pdf;

public class iTextDemo 
{
 public static void Main() 
 {
  Console.WriteLine("iText Demo");

  // step 1: creation of a document-object
  Document myDocument = new Document(PageSize.A4.Rotate());

  try 
  {

   // step 2:
   // Now create a writer that listens to this doucment and writes the document to desired Stream.

   PdfWriter.GetInstance(myDocument, new FileStream("Salman.pdf", FileMode.Create));

   // step 3:  Open the document now using
   myDocument.Open();

   // step 4: Now add some contents to the document
   myDocument.Add(new Paragraph("First Pdf File made by Salman using iText"));

  }
  catch(DocumentException de) 
  {
   Console.Error.WriteLine(de.Message);
  }
  catch(IOException ioe) 
  {
   Console.Error.WriteLine(ioe.Message);
  }

  // step 5: Remember to close the documnet

  myDocument.Close();
 }
}

Если вы хотите сохранить форматированный PDF, используйте следующий код по ссылке ниже: http://www.4guysfromrolla.com/articles/030911-1.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...