Как я могу сгенерировать PDF и загрузить содержимое пользовательского элемента управления ASCX asp.net? - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть пользовательский элемент управления ASP.NET, и мне нужно создать файл .ascx с содержимым пользовательского элемента управления. Возможно ли это, если да, может ли кто-нибудь направить меня в правильном направлении?

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Существует множество сторонних инструментов для создания PDF. Один, который мы использовали на моей работе, который хорошо работает, это PdfSharp

Что касается вывода пользовательского элемента управления в виде текста, это то, что вам нужно сделать:

        Page page = new Page();
        HtmlForm form = new HtmlForm();
        [USERCONTROL] uc  = (ReportHeaderInfoUC)page.LoadControl("~/UserControls/[NAME OF YOUR USER CONTROL].ascx");
        page.Controls.Add(form);
        form.Controls.Add(uc);
        //call the function on the user control that populates the control and pass in any data needed (if any)
        uc.Populate(data);
        StringWriter stringWriter = new StringWriter();
        this.Server.Execute(page, stringWriter, false);

То, что вы в основном делаете здесь, - это создание новой WebForm, добавление к ней пользовательского элемента управления и предоставление серверу рендеринга вывода в поток, что в основном и делает ASP.NET для обычного запроса страницы.

Чтобы записать содержимое выведенного пользовательского элемента управления в файл, используйте:

File.WriteAllText ([ПУТЬ ФАЙЛА], stringWriter.ToString ());

0 голосов
/ 15 ноября 2011

Поскольку пользовательский элемент управления основан только на тексте, его не должно быть сложно выводить в формате pdf с любой другой библиотекой для создания pdf (ищите generating pdf или pdf creation).Если ваши usercontrols имеют более сложные HTML-теги, то вам в основном нужно купить библиотеку Html 2 Pdf.Мне не удалось найти приемлемую бесплатную библиотеку, которая поддерживает html в pdf.

Вы также можете создавать таблицы в PDF, но было бы очень трудно преобразовать таблицы html в таблицы pdf в общем, не покупаябиблиотека, чтобы сделать это по моему опыту.Вы также можете кодировать создание таблиц PDF отдельно от usercontrol, но опять же очень сложно объединить эту функцию в нее.

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