Комментарии 15
Хитро… У нас в РНР как то проще с этим:
www.digitaljunkies.ca/dompdf/examples.php
www.digitaljunkies.ca/dompdf/examples.php
во-во, а в статье чистый «enterpris», XML, DTD, XSLT, еще куча каких-то диких технологий, у нас в ruby тоже милая маленькая либа есть: prawn.majesticseacreature.com/
НЛО прилетело и опубликовало эту надпись здесь
тут контекст веба (ASP.Net), а так да…
заметьте код, который создает pdf документ минимальный, а вот подготовка занимает больше кода (разметка и так далее), в случае пдф-принтера — вам опять таки надо будет делать и разметку и подготавливать данные, а код печати и открытия файла будет занимать столько же строк как и тут. так почему это есть сложности?
PDFClown все умеет, но слишком большой :)
спасибо, про него не знал. но думаю разница в функционале там не велика. просто как альтернатива. может на будущее надо бы написать пост PDFClown vs iText. Не займетесь? ;)
Извините я немного ошибся — у них в какой то отрезок времени пути разошлись, и Pdfclown теперь новые фичи не умеет, которые есть в iText, больше идут в сторону enterprise имхо полного, обработка форм, действий кнопок и многое другое.
Вот пример для Itext простой вывода таблицы (в данном случае грида) без xml/html/xslt:
Вот пример для 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, но все же — меня это ввело сначала в ступор…
->Язык портирован с Явы), библиотека тоже из нашей копилке, что ж вы ожидали что -кто то будет следовать код-конвеншн.
**И да, не знаете как это описано у нас, не надо говорить
->Язык портирован с Явы), библиотека тоже из нашей копилке, что ж вы ожидали что -кто то будет следовать код-конвеншн.
**И да, не знаете как это описано у нас, не надо говорить
Хорошая статья.
Только начал заниматься этой тематикой (почитал про nFop и про iTextSharp) и мало чего, в принципе, понимаю.
Скачал пример, попробовал. Все работает и, более менее, понятно как.
Но возникли пару вопросов
Подскажите (на примере или ссылками) как сформировать xml-файл на основе таблицы из sql-процедуры.
И как динамически сформировать название документа (например есть listview, заполненный данными, на основе их генерить название документа, ну и контент), а не использовать жесткую привязку report.pdf. Ну, т.е. в listview добавить ссылку на страницу формирования документа и туда передать название… Или его как-то из самого xml вытянуть?
В наличие у меня: ms sql server 2008express и ,ms visual web developer express и желание разобраться.
Спасибо. Может кто и ответит…
Только начал заниматься этой тематикой (почитал про 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
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Когда нужно сделать PDF документ