Как я переворачиваю страницу ColdFusion в загрузку PDF?

Я думаю, что вы ищете sendcmd , который поддерживается несколькими фильтрами. См. документацию по фильтрам FFmpeg (поиск по sendcmd).

14
задан amrox 16 September 2008 в 16:14
поделиться

4 ответа

Необходимо использовать тег cfdocument (с форматом = "PDF") для генерации 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 для имени файла в примере ниже, но Вы могли бы хотеть использовать некоторых случайных, или сессия генерировала строку для имени файла для предотвращения проблем, следующих из условий состязания.

17
ответ дан 1 December 2019 в 12:02
поделиться

Я не настолько знаком с ColdFusion, но что необходимо сделать, установлен Тип контента страницы, когда пользователь запрашивает это быть application/octet-stream. Это запросит их загрузку каждый раз.

Hope это помогает!

1
ответ дан 1 December 2019 в 12:02
поделиться

Если Вы захотите постараться не хранить PDF вообще, то использование cfdocument без имени файла отправит PDF (flashpaper) непосредственно к браузеру, не используя cfheader и cfcontent.

Протест: Как с использованием cfheader/cfcontent, необходимо сделать это, прежде чем кэш будет сброшен к браузеру, так как это в основном делает то же самое, не имея необходимость хранить файл.

Для получения содержания я, вероятно, использовал бы cfsavecontent, повторился, то же называть/включать/и т.д. это генерирует страницу за двумя основными исключениями. cfdocument, кажется, имеет проблемы с внешними таблицами стилей, таким образом использование включения для помещения стилей непосредственно в документ является, вероятно, хорошей идеей. Можно попытаться использовать @import вместо этого - он работает на некоторых людей. Кроме того, я был бы осторожен относительно относительных ссылок на изображения, поскольку они могут иногда повреждаться.

4
ответ дан 1 December 2019 в 12:02
поделиться

Эти <cfdocument> подход является санкционированным способом сделать его, однако он не предлагает все возможное в способе управлять существующими документами в формате PDF. У меня был проект, где я должен был генерировать основанное на купонах использование предварительно разработанного шаблона PDF разрешения печати. <cfdocument> позволил бы мне приблизить вывод, но только с растровыми изображениями, встроенными в HTML. Правда, я мог фальсифицировать разрешение печати путем создания большого изображения и масштабирования его в HTML, но оригинал был хорошим, чистым файлом векторного изображения, и я хотел использовать это вместо этого.

я закончил тем, что использовал копию <cfx_pdf>, чтобы сделать задание. ( Сайт Разработчика , Хранилище Тега CF ) Это - обертка CF вокруг библиотеки Java PDF, которая позволяет Вам управлять существующими документами в формате PDF, включая заполнение форм PDF, установку полномочий, слияние файлов, рисование векторной графики, таблиц, и текста, использовать пользовательские шрифты, и т.д., и т.д. Если Вы готовы работать с ним, можно получить некоторые довольно захватывающие результаты.

один недостаток состоит в том, что кажется, что разработчик пропускал этот продукт к пастбищу в течение долгого времени. Сайт разработчика является все еще copyright 2003 and, ничего не упоминает прошлый ColdFusion MX 6.1. Я закончил тем, что имел необходимость повредить некоторые зашифрованные шаблоны, чтобы исправить несколько ошибок и заставить его работать, когда мне был нужен он к. Nontheless, это - мощный инструмент.

3
ответ дан 1 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: