Вопрос

У меня есть проект, в котором я создаю образцы документов. Код здесь:

 private void btnExcel_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        if (AutomationFactory.IsAvailable)
        {
            dynamic excel = AutomationFactory.CreateObject("Excel.Application");
            excel.Visible = true;

            dynamic workbook = excel.workbooks;
            workbook.Add();

            dynamic sheet = excel.ActiveSheet;
            dynamic cell = null;
            int i;
            int z = 20;

            for (i = 1; i <= 20; i++)
            {
                cell = sheet.Cells[i, 1];
                cell.Value = i.ToString();

                cell = sheet.Cells[i, 2];
                cell.Value = z.ToString();

                z--;
            }

        }

    }

Как видите, это для документов Excel. Есть ли способ, которым я могу что -то подобное и экспортировать в PDF -файлы? Спасибо за понимание.

Это было полезно?

Решение

Да, ты можешь.

Вы можете вызвать операцию службы WCF, передавая ее все данные, которые ей нужны. Затем сделайте все, что требуется для генерации файла PDF. После того, как вы это сделали, у вас есть два варианта:

  • Вы можете отправить обратно байты в результате операции. В этом случае вы можете показать пользователю SaveDialog сохранить файл на его локальный диск.
  • Вы можете отправить сгенерированный файл на другую страницу ASPX и отобразить файл PDF пользователю, у которого затем есть выбор, чтобы сохранить его на локальном диске или просто просмотреть его.

Я надеюсь, что это было то, что вы ищете.

Другие советы

Что вы можете. Но почему?! Как я понимаю с помощью AutomationFactory.CreateObject, вы можете сделать это при установке на клиентской машине Excel или PDF.

Но имея дело с веб -приложением (особенно, когда это не корпоративные приложения), вы хотите увидеть PDF/XLS/XLSX/... где угодно, и вы можете передавать то, что установлено на клиентской машине или нет.

У меня похожая ситуация для одного из моих проектов. Мы используем формат XPS, чтобы показать в Silverlight, потому что он имеет нативную поддержку. И другие форматы преобразуются в XPS.

Есть нюансы в конверсии, например, для документов Excel, я думаю, лучше всего преобразовать каждый лист отдельно и реализовать специального зрителя, который отличается от зрителя, например, для документов Word или PDF.

Есть сторонние зрители, которые позволяют просматривать не только XPS на Silverlight, но и в формате PDF. Но без них вы можете только позволить пользователю загружать PDF -файл, чтобы не просматривать его, потому что эти 3 -й просмотрщик деталей, скорее всего, конвертируют PDF в XPS под капотом.

В любом случае, особенно без третьих сторон, потребуется огромные усилия, чтобы реализовать PDF -зритель на Silverlight. Поэтому я предлагаю вам использовать XPS для просмотра. Но когда вам нужно иметь файлы PDF для загрузки, чем использовать XPS для просмотра и PDF при загрузке. В таком случае ваши преобразователи будут производить 2 формата для каждой ситуации.

Например, посмотрите на

http://firstfloorsoftware.com/blog/announcement-document-toolkit-for-silverlight/

http://silverpdf.codeplex.com/

http://www.componentonon.com/superproducts/pdfviewersilverlight/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top