Как стать автором
Обновить

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

во-во, а в статье чистый «enterpris», XML, DTD, XSLT, еще куча каких-то диких технологий, у нас в ruby тоже милая маленькая либа есть: prawn.majesticseacreature.com/
так, а чтобы заполнить pdf документ информацией, вам все равно нужно будет что то сделать, вот в моем случае это xml разметка (получающаяся из xslt + xml), вы же будете кодом туда заполнять данные. так с itextsharp тоже можно сделать, но проще вроде все равно через xml.
НЛО прилетело и опубликовало эту надпись здесь
тут контекст веба (ASP.Net), а так да…
заметьте код, который создает pdf документ минимальный, а вот подготовка занимает больше кода (разметка и так далее), в случае пдф-принтера — вам опять таки надо будет делать и разметку и подготавливать данные, а код печати и открытия файла будет занимать столько же строк как и тут. так почему это есть сложности?
НЛО прилетело и опубликовало эту надпись здесь
«Если перед Вами стоит задача — создавать простенькие (или не совсем) pdf документы в вашем приложении»
это автоматизация в вашем приложении (приложении которое пишите вы)
PDFClown все умеет, но слишком большой :)
спасибо, про него не знал. но думаю разница в функционале там не велика. просто как альтернатива. может на будущее надо бы написать пост PDFClown vs iText. Не займетесь? ;)
Извините я немного ошибся — у них в какой то отрезок времени пути разошлись, и Pdfclown теперь новые фичи не умеет, которые есть в iText, больше идут в сторону enterprise имхо полного, обработка форм, действий кнопок и многое другое.

Вот пример для Itext простой вывода таблицы (в данном случае грида) без xml/html/xslt:

void UseITextSharp()
    {
      iTextSharp.text.Document document = new iTextSharp.text.Document();
      BaseFont baseFont = BaseFont.CreateFont(Environment.ExpandEnvironmentVariables(@"%systemroot%\fonts\Tahoma.TTF"), "CP1251", BaseFont.EMBEDDED);

      PdfWriter.GetInstance(document, new FileStream("Test.pdf", FileMode.Create));
      document.Open();

      //Создадим таблицу и укажем кол-во колонок
      PdfPTable table = new PdfPTable(dataGridView1.ColumnCount);
      
      //Создадим заголовок
      table.AddCell(new PdfPCell(new Paragraph("Вакансии", new Font(baseFont)))
               {Colspan = dataGridView1.ColumnCount});

      //Ограничим 100 строками (т.к в гриде порядка 200000)
      for (int i = 0; i < 100; i++)
      {
        for (int z = 0; z < dataGridView1.ColumnCount; z++)
        {
          string value = dataGridView1.Rows[i].Cells[z].Value.ToString();
          PdfPCell cell = new PdfPCell(new Paragraph(value, new Font(baseFont)));
          table.AddCell(cell);
        }
      }

      document.Add(table);
      document.Close();
    }


* This source code was highlighted with Source Code Highlighter.
Еще очень сильно интересует, почему они классы иногда называют с буквы I, в c# так называют интерфейсы. Конечно, я понимаю, что библиотека портирована с java, но все же — меня это ввело сначала в ступор…
->Язык портирован с Явы), библиотека тоже из нашей копилке, что ж вы ожидали что -кто то будет следовать код-конвеншн.
**И да, не знаете как это описано у нас, не надо говорить
какой язык портирован?
и я не говорю, «как у вас», я просто намекнул на эту странность, но не в контексте, что на java делают так.
Хорошая статья.

Только начал заниматься этой тематикой (почитал про nFop и про iTextSharp) и мало чего, в принципе, понимаю.
Скачал пример, попробовал. Все работает и, более менее, понятно как.

Но возникли пару вопросов
Подскажите (на примере или ссылками) как сформировать xml-файл на основе таблицы из sql-процедуры.
И как динамически сформировать название документа (например есть listview, заполненный данными, на основе их генерить название документа, ну и контент), а не использовать жесткую привязку report.pdf. Ну, т.е. в listview добавить ссылку на страницу формирования документа и туда передать название… Или его как-то из самого xml вытянуть?

В наличие у меня: ms sql server 2008express и ,ms visual web developer express и желание разобраться.

Спасибо. Может кто и ответит…
Подскажите (на примере или ссылками) как сформировать xml-файл на основе таблицы из sql-процедуры.

смотрите в сторону
select * from Таблица for xml auto
И как динамически сформировать название документа (например есть listview, заполненный данными, на основе их генерить название документа, ну и контент), а не использовать жесткую привязку report.pdf.

Ну тут то вообще просто, вместо «report.pdf» делаем listview.Text
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации