Как Вы, я попробовал и попытался заставить это работать. Наконец я разочаровался в этой идее, и просто выбрал обходное решение.
я использую ASP.NET Платформа MVC, таким образом, я изменил свои маршруты для того контроллера/действия, чтобы удостовериться, что поданный файл PDF является последней частью части местоположения URI (перед строкой запроса), и передайте все остальное в строке запроса.
, Например:
Старый URI:
http://server/app/report/showpdf?param1=foo¶m2=bar&filename=myreport.pdf
Новый URI:
http://server/app/report/showpdf/myreport.pdf?param1=foo¶m2=bar
получающийся заголовок смотрит точно как то, что Вы описали (тип контента является приложением/PDF, расположение встроено, имя файла является бесполезно частью заголовка). Acrobat показывает его в окне браузера (никакие не сохраняют как диалоговое окно), и имя файла, которое автозаполняется, если пользователь нажимает кнопку Acrobat Save, имя файла отчета.
Несколько соображений:
Для имен файлов для взгляда достойными у них не должно быть завершенных символов (т.е., никакие пробелы, и т.д.)..., который немного ограничивает. Мои имена файлов автоматически генерируются в этом случае, и прежде чем имел пробелы в них, которые обнаруживались как '%20 в получающемся диалоговом имени файла сохранения. Я просто заменил пробелы подчеркиваниями, и это удалось.
Это не именами лучшее решение, но оно действительно работает. Это также означает, что необходимо иметь имя файла в наличии для создания его частью исходного URI, который мог бы смешать с рабочим процессом программы. Если это в настоящее время сгенерировано или получается от базы данных во время вызова серверной стороны, который генерирует PDF, Вы, возможно, должны были бы переместить код, который генерирует имя файла к JavaScript как часть представления формы или если это прибывает из базы данных, делают его, быстрый ajax звонит для получения имени файла при создании URL, который приводит к встроенному PDF.
при взятии имени файла от ввода данных пользователем на форме, тогда это должно быть проверено для не содержания оставленных символов, которые будут раздражать пользователей.
Hope, которая помогает.
Вот полная библиотека / инструментарий для синтеза FM (частотной модуляции):
Если у вас есть время сэкономить ... создание простого синтеза звука с нуля на самом деле забавное занятие. Если вы создадите небольшой буфер из 256 16-битных выборок, которые представляют либо синус. пилообразный, блочный или импульсный, вы можете скопировать их в живой аудиобуфер (например, небольшой буфер (скажем, 16 КБ)), который постоянно зацикливается. Опережая игровую позицию и постоянно заполняя буфер новыми значениями, вы можете создать звуковой выход. Вы можете использовать небольшие буферы, чтобы объединить их интересными способами (самый простой - просто сложить их вместе (аддитивный синтез)).
Частотой тона можно управлять, используя больший или меньший шаг дискретизации через маленькие буферы. Амплитудой можно управлять, масштабируя сэмплы перед их помещением в выходной буфер.
Отличное удовольствие поэкспериментировать с этим!
Если вы выполнили этот шаг, вы можете добавить более сложные эффекты, такие как фильтры (низкий проход, высокий проход, и т. д.) и эффекты (реверберация, эхо и т. д.)
R
Вы смотрели CSound ? Это невероятно гибкая платформа для генерации звука, которая может обрабатывать все, от простого генерации сигналов до FM-синтеза и всевозможных фильтров. Он также обеспечивает поддержку MIDI, и вы можете расширить ее, написав собственные коды операций. Есть полный API C , а также несколько API C ++.