Я хотел бы повернуть HTML-код, сгенерированный моей CFM-страницей, в PDF-файл и запросить у пользователя стандартное приглашение «Сохранить как» при переходе на мою страницу.Как превратить страницу ColdFusion в PDF-файл?
ответ
Чтобы создать PDF-документ, используйте тег cfdocument (с форматом = "PDF"), разместив его вокруг создаваемой страницы. Вам нужно указать атрибут имени файла, иначе документ будет просто передаваться прямо в ваш браузер.
После того, как вы сохранили содержимое в формате PDF, используйте cfheader и cfcontent в комбинации для вывода PDF в качестве вложения («Сохранить как») и добавьте файл в поток ответов. Я также добавил deletefile = «Да» в тег cfcontent, чтобы поддерживать файловую систему в чистоте файлов.
<cfdocument format="PDF" filename="file.pdf" overwrite="Yes">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World
</body>
</html>
</cfdocument>
<cfheader name="Content-Disposition" value="attachment;filename=file.pdf">
<cfcontent type="application/octet-stream" file="#expandPath('.')#\file.pdf" deletefile="Yes">
Как и в сторону: Я просто использую файл file.pdf имя файла в приведенном ниже примере, но вы можете использовать некоторые случайные или сессионный генерируемый строку для имени файла, чтобы избежать проблем, связанных с условиями гонки.
Я не знаком с ColdFusion, но вам нужно установить Content-Type страницы, когда пользователь запрашивает ее как приложение/октет-поток. Это будет запрашивать их для загрузки каждый раз.
Надеюсь, это поможет!
Если вы хотите вообще не хранить PDF-файл, использование cfdocument без имени файла отправит pdf (флэш-документ) непосредственно в браузер без использования cfheader и cfcontent.
Предостережение. Как и при использовании cfheader/cfcontent, вам необходимо сделать это до того, как кэш будет очищен от браузера, поскольку он в основном делает то же самое, не сохраняя файл.
Чтобы получить контент, я бы, вероятно, использовал cfsavecontent, обернутый вокруг тех же вызовов/включая/etc. которые генерируют страницу с двумя основными исключениями. cfdocument, похоже, имеет проблемы с внешними таблицами стилей, поэтому использование include для размещения стилей непосредственно в документе, вероятно, является хорошей идеей. Вместо этого вы можете попробовать использовать @import - это работает для некоторых людей. Кроме того, я буду осторожен относительно относительных связей с изображениями, поскольку они могут иногда ломаться.
Подход <cfdocument>
- это санкционированный способ сделать это, однако он не предлагает все возможное, чтобы манипулировать существующими документами PDF. У меня был проект, где мне нужно было создавать купоны на основе предварительно разработанного PDF-шаблона с разрешением на печать. <cfdocument>
позволил бы мне приблизиться к выходу, но только с растровыми изображениями, встроенными в HTML. Правда, я мог подделать разрешение печати, сделав большое изображение и масштабируя его в HTML, но оригинал был красивым, чистым файлом векторного изображения, и я хотел использовать его вместо этого.
Я закончил использовать копию <cfx_pdf>
, чтобы выполнить эту работу. (Developer's Site, CF Tag Store) Это оболочка CF вокруг библиотеки Java PDF, которая позволяет вам манипулировать существующими документами PDF, включая заполнение форм PDF, установку разрешений, объединение файлов, рисование векторной графики, таблиц и текста, использование пользовательских шрифтов и т. Д. И т. Д. Если вы готовы работать с ним, вы можете получить довольно эффектные результаты.
Единственным недостатком является то, что разработчик покинул этот продукт на пастбище в течение длительного времени. Сайт разработчика по-прежнему является авторским правом 2003 года и не упоминает ничего о ColdFusion MX 6.1. В итоге мне пришлось сломать некоторые зашифрованные шаблоны, чтобы исправить пару ошибок и заставить их работать так, как мне было нужно. Тем не менее, это мощный инструмент.
- 1. Как превратить репозиторий в страницу GitHub?
- 2. Как превратить страницу нефрита в html?
- 3. Как превратить веб-страницу в изображение?
- 4. превратить веб-страницу в изображение на лету?
- 5. ColdFusion Builder 3 Coldfusion 11 Показать страницу в браузере
- 6. ColdFusion Отправить страницу, как она ее обрабатывает
- 7. Перенаправить страницу coldfusion после таймаута
- 8. Как программно превратить любую веб-страницу в RSS-канал?
- 9. Как превратить в кириллицу
- 10. Как строка может превратить UserControl
- 11. Как отправить переменные на страницу действия coldfusion с сообщением ajax?
- 12. Как написать Coldfusion if-clause, который проверяет определенную страницу?
- 13. Как превратить страницы в QStackedWidget в python?
- 14. Как превратить файл Yaml в модели?
- 15. Как превратить веб-калькулятор в вызываемую программу?
- 16. Как превратить строку в double
- 17. Как превратить массив в объект?
- 18. Как превратить строки в столбцы?
- 19. Как превратить файл в список
- 20. Как превратить это в переменную?
- 21. Как превратить мойку в трубопровод?
- 22. Как превратить переменную в объект?
- 23. Как превратить это в LINQ?
- 24. Как превратить Mac в iBeacon
- 25. Как превратить иероглифы в Pinyin
- 26. Как превратить аргументы в поплавки
- 27. Как превратить объекты в HTML
- 28. Как превратить в "конец месяца"?
- 29. Как превратить ставит в возвращение?
- 30. Как превратить Autosizing в UIViewController