Я не знаю, что это обязательно важно, но я использую Infragistics iggrid для своей сетки и их материалов для экспорта в PDF.Как лучше всего экспортировать сетку в PDF в ASP.NET MVC
Основная проблема заключается в том, что мои данные, которые я хочу экспортировать, находятся в браузере, и я бы предпочел, чтобы мне не нужно было создавать серверный файл для загрузки. У нас есть значок на экране, который пользователь нажимает, чтобы загрузить PDF-файл.
Так что я делаю на клиенте, собирает все данные. Это нужно сделать на стороне клиента, потому что я хочу экспортировать данные, поскольку пользователь сортировал, отфильтровывал и упорядочивал столбцы (в противном случае я мог бы просто собрать сервер данных, что сделало бы это проще). Затем я отправляю данные на сервер через POST.
На стороне сервера я создаю файл PDF. Теперь, очевидно, я мог бы сохранить сервер PDF-сервера и перенаправить на сгенерированный файл, но это добавит обслуживание временных файлов, которые я бы предпочел избежать (но в худшем случае я могу туда попасть. Сейчас просто ловить опционы) ,
Я попытался возвращения base64 данные кодируются и затем делать:
window.open("data:application/pdf;base64," + encodedData);
Это не работает (по крайней мере в IE), поскольку предел URL немного более 2K.
Я попытался с помощью downloadDataURI Javascript функция здесь: http://code.google.com/p/download-data-uri/
Но это только кажется, работает с Chrome (даже после того, как закомментировать чек WebKit), и я, видимо, не достаточно умен, чтобы понять, почему.
Уверен, что у меня отсутствует очевидная возможность, которая не требует создания файла на стороне сервера, но я просто не вижу его. (отказ от ответственности: моя дочь разбудила меня ужасно рано этим утром, поэтому ответ может быть действительно тривиальным, и завтра я буду чувствовать глупость, когда мой мозг работает).
Да, я идиот. Я делал .ajax POST, но, конечно, нет причин, по которым я не могу писать сообщение в форме ... – Pete