Как сохранить в pdf файле картинки и кириллический текст с html страницы?

image Программа удобная, набор функций впечатляет, плюс доступна версия для смартфонов и планшетов. Но некоторые возможности обычному пользователю не нужны (общий доступ, добавление сценариев и мультимедиа, сравнение файлов и т. д.), поэтому редактор больше подойдет для использования в бизнес-целях. Если вам раз в неделю надо что-то обрезать, откорректировать или поставить пароль, лучше выбрать альтернативный вариант. Все-таки продукты Adobe предназначаются в первую очередь для профессионалов, и выгода от их использования ощущается в связке с другими приложениями разработчика. Устанавливать Creative Cloud только из-за Acrobat – так себе идея. К тому же процесс этот долгий и муторный, а сама программа тяжеловесная и часто тормозит. Бесплатные аналоги популярных программ: ищем замену Adobe, MS Office и остальным буржуям Foxit Phantom Скачать Пробная версия: 14 дней Стоимость: Standart – 8 114,24 р. (или подписка – 13.99 $ в месяц), Business – 10 001,28 р. (или подписка –14.99 $ в месяц) ОС: Windows, Mac OS Редактор с огромным набором функций, практически не уступающий Adobe Acrobat (также есть все необходимое для совместной работы). По быстродействию же Foxit Phantom явно превосходит своего основного конкурента. Подписка хоть и стоит чуть дороже, но разработчики дают возможность пожизненного пользования за умеренную цену. image Разработчики редактора предлагают также бесплатную читалку Foxit Reader, в которой помимо чтения можно создавать новые файлы, подписывать документы и добавлять комментарии. PDFelement Скачать Пробная версия: бессрочная с ограниченной функциональностью Стоимость: 1999 р./квартал, 3499 р./год, 5999 р. (персональная лицензия) ОС: Windows, Mac OS Еще один достойный конкурент Adobe (даже интерфейсы программ очень похожи) с более демократичными ценами. Бесплатная полноценная версия, по сути, отсутствует – пока не купите лицензию, файлы будут сохраняться с водяными знаками. Плюс пакет OCR придется загружать дополнительно. Помимо десктопной версии разработчики предлагают и мобильные приложения: для iOS это полноценный редактор, а для Android – удобная читалка с возможностью комментирования. PDF-Xchange Editor Скачать Пробная версия: бессрочная с ограниченной функциональностью Стоимость: 43.50 $ ОС: Windows 7 и выше Мощный редактор с широкой функциональностью. Разработчики заявляют, что без лицензии доступно более 60 % функций программы. На деле же многие важные для рядового пользователя опции недоступны. Например, если захотите удалить или изменить картинки, без оплаты лицензии файл сохранится с водяными знаками. Тем не менее программка очень полезная. Есть также расширенная версия PDF-XChange Editor Plus (с возможностью создавать формы и динамические штампы), которая стоит чуть дороже –54.50 $ Бесплатно и без ограничений можно: разделить документ; объединить страницы; отредактировать текст; экспортировать документ в изображение любого формата; сохранить в виде таблицы Excel. В общем и целом полезная штука и явно стоит того, чтобы установить себе на компьютер. PDFescape Скачать, веб-версия Пробная версия: Premium – 7 дней, Ultimate – 5 дней. Стоимость: Premium – 2.99 $ в месяц, Ultimate – 5.99 $ в месяц, браузерная версия – бесплатно. ОС: Windows 7 и выше Чтобы воспользоваться десктопной версией, нужно зарегистрироваться и активировать один из нужных тарифов (Premium или Ultimate). Интерфейс немного сложноват для новичка и не совсем интуитивно понятен. Опций много, в том числе есть возможность создания собственных штампов. Подпись документа, шифрование и защита паролем доступны только в версии Ultimate. Онлайн-версия полностью бесплатная, но с ограничениями: максимальный размер файла – 10 МБ, объем – до 100 страниц. Можно увеличить лимит, если приобрести премиум-аккаунт. Еще один минус – интерфейс на английском. Что можно сделать бесплатно: удалить, переместить, повернуть, обрезать страничку; объединить файлы (append); добавить заметку, подчеркнуть, зачеркнуть, выделить текст; вставить текст, картинку, ссылку, интерактивный элемент (форму, переключатель и т. д.). Редактировать существующий текст нельзя, но можно воспользоваться инструментом whiteout, который его скроет, и добавить поверх новый. Но это сработает, если у страницы белый фон. К тому же придется потратить время на подбор шрифта и выравнивание текста. Работайте лучше: обзор 19 инструментов для продуктивной работы PDFsam Скачать Пробная версия: 14 дней (PDFsam Visual) Стоимость: PDFsam Enhanced – от 39 до 69 $ в год, PDFsam Visual – 29 €, PDFsam Basic – бесплатно. ОС: Windows, Linux, Mac OS (PDFsam Enhanced – только для Windows) Платная расширенная версия PDFsam Enhanced визуально и по набору функций очень похожа на рассмотренный ранее PDFescape. Но здесь действуют совершенно другие ограничения при бесплатном пользовании. После регистрации на почту придет ключ, позволяющий активировать модуль создания pdf (из любых файлов). Это единственный бесплатный модуль в этой версии. Для полноценного пользования всеми модулями придется приобрести pro-версию за 49 $. Если также нужно распознавание текста, тариф PRO+OCR обойдется еще дороже –69 $ в год. PDFsam Visual – еще одна версия редактора, позволяющая производить разные манипуляции со страницами в визуальном режиме. Опций здесь уже меньше (в основном организация документа – удаление, разделение, объединение страниц и т. д.), поэтому и стоимость ниже. Самая полезная версия из этого набора – PDFsam Basic. Функциональность у нее ограничена, но и платить за использование не нужно. В бесплатной базовой версии можно: разделять и объединять документы; извлекать, разбивать по закладкам, вращать страницы; чередовать страницы разных файлов; разбивать файлы по размеру (например, книгу в 10 МБ сохранить в нескольких частях по 2 МБ). Программка не занимает много места на компьютере (весит всего 15 МБ), в отличие от онлайн-приложений доступна всегда. Сам себе писатель: как писать, оформлять и распространять электронные книги Альтернативные бесплатные способы работы с PDF Теперь давайте посмотрим, как производить различные манипуляции с PDF, не покупая специализированное ПО. Как создать Документы, предназначенные для печати, формы или даже электронные книги можно создавать без Adobe Acrobat и подобных программ. Прежде всего, используя приложения пакета MS Office и их аналоги. Например, тот же Word. Просто создаем новый документ и при сохранении выбираем нужный формат. Таким нехитрым способом можно переводить любые файлы офисного пакета в pdf. Лично я, вдохновившись когда-то ранним опытом «Текстерры», стала верстать электронные журналы и книги в Power Point. Там можно и страницы красиво оформить, и даже обложку нарисовать. Опция «сохранить как pdf» в моей версии отсутствует, но на панели есть расширение от Adobe Acrobat, которое решило проблему. Кстати, оно продолжает работать даже после окончания пробной версии, то бишь бесплатно. Если Power Point или аналогов на компьютере нет, сгодятся «Google Презентации». Как сверстать в этом сервисе E-book, мы рассказывали в соответствующей статье. Что касается веб-страниц, их тоже довольно легко превращать в pdf, причем прямо в браузере. Я по большей части пользуюсь Opera, и там есть крайне полезная функция – «Сохранить как PDF», которая быстро переводит веб-документ в одностраничный pdf-файл. Если нужно разбить html-страницу на несколько pdf-страниц, можно воспользоваться виртуальным принтером. Для этого открываем меню «Печать» (Ctrl + P) и выбираем в списке доступных принтеров вариант «Сохранить как PDF». Этот способ работает в любом браузере. Формы тоже можно создавать бесплатно, например, в Scribus. Эта программа предназначена для верстки текста. Хотя она и не очень удобная, здесь есть необходимый набор интерактивных элементов для создания pdf-форм. После сохранения форму можно открыть в том же Foxit Reader, заполнить и сохранить заново. Еще интерактивные элементы можно добавлять с помощью онлайн-инструментов. Например, в рассмотренном ранее PDFescape. Если же у вас трудности не с оформлением, а с написанием текстов – попробуйте онлайн-курс «Коммерческий автор». На занятиях мы даем знания и тренируем навыки работы с любыми форматами: лонгридами, тестами, интервью и т. д. Учим проверять источники и факты, редактировать и корректировать тексты, а также выгодно продавать свои услуги. Как редактировать Отредактировать PDF можно прямо в Word (начиная с версии 2013 года). А если нет «Ворда» – в Google Docs. Для этого загружаем файл на диск, вызываем контекстное меню правой кнопкой мыши и открываем документ с помощью стандартного редактора Google. Редактирование PDF в Google Docs хоть и возможно, но, признаться, не имеет смысла. Даже статью с простеньким форматированием редактор заметно искажает. На скрине видно, как поплыла верстка, хотя кроме списков и подзаголовков какого-то специфического оформления не было. А картинки вообще не загрузились. Если у вас установлен пакет WPS Office (бесплатная альтернатива Microsoft), с помощью него тоже можно отредактировать PDF. Writer, аналог «Ворда», позволяет бесплатно конвертировать из PDF в DOC по 2 файла в день. Чтобы воспользоваться конвертером, после открытия файла нужно нажать на верхнюю кнопку справа и зарегистрироваться. Попробовала превратить сверстанную и сохраненную в pdf статью обратно в doc – получилось почти без шероховатостей. Только кое-где появились лишние строчки, но в целом без заметных отличий. Простенькую электронную книгу, в принципе, тоже редактор распознал неплохо. Некоторые красиво оформленные текстовые блоки он оставил в виде изображений, шрифты в заголовках отобразились другие, но по большей части конвертер справился. Рассмотренные варианты, конечно, не заменят возможностей полноценного pdf-редактора. Если отредактировать нужно будет квитанцию, книгу, брошюру или любой другой документ со сложным оформлением, тут можно забыть о «Ворде» и его альтернативах. Для подобных документов есть другое решение – Inkscape. Это бесплатный редактор векторной графики, который также работает с форматом pdf. Тут с содержимым документа можно делать все, что угодно – удалять, увеличивать, уменьшать, перекрашивать, поворачивать и т. д. Единственный минус – загружать на рабочую область можно только одну страницу. То есть поработали с одной страницей, сохранили, открыли вторую и так далее. Потом файл придется соединять по частям. Не очень удобно, но если у вас одностраничная брошюрка – самое то. Как писать тексты все лучше и лучше: дюжина идей на заметку авторам Если текст файла предварительно не был распознан, то отредактировать его не получится. Это прежде всего относится к отсканированным документам. Но вот, к примеру, с книгой «Текстерры» у меня проблем не было. Основные лайфхаки по редактированию текста в pdf-файле я также записала в небольшом ролике: К редактированию pdf в онлайне я прибегаю крайне редко. Текст там изменить практически невозможно, а остальные функции есть в бесплатных программках. Из тех онлайн-приложений, что способны изменять сам текст, мне попался лишь Sejda. Но и он далеко не идеален: Ограничение по размеру обрабатываемого файла – 300 страниц и 50 МБ. Не более 3 задач каждый час. Текст редактируется, но постоянно смещается или удаляется не полностью. В общем, получается некрасиво. За все время мне так и не удалось отредактировать даже простейший документ – каждый раз меня «выбрасывает» из приложения (upload failed). Как разделить, соединить, удалить страницы Во-первых, можно воспользоваться PDFSam Basic или бесплатными функциями PDF-Xchange Editor. Во-вторых, обратиться к онлайн-редакторам. В сети их полно. Наиболее распространенные: HIPDF, Smart PDF (он же IlovePDF), Soda PDF. Функции «разделить» и «объединить» есть практически в любом подобном приложении. Бесплатно работать с организацией страниц позволяет также веб-версия PDFescape. Как перевести файл из PDF в другой формат Как конвертировать PDF в файл Word (DOC, DOCX), я уже писала. Теперь рассмотрим конвертацию в другие форматы. PDF-Xchange Editor бесплатно конвертирует pdf в изображения практически любого формата. Кроме того, здесь можно перевести документ в таблицу Excel. А вообще с конвертацией неплохо справляются и онлайн-приложения. Например, HIPDF. Разумеется, когда речь идет о конвертации файлов с помощью веб-приложений, результат не всегда оказывается таким, какой ожидался. Например, превратить PDF в JPG с сохранением первоначального вида для конвертера не составляет труда. А вот полученный на выходе файл Word, Excel или PPT может сильно отличаться от pdf-оригинала. Я сравнивала качество файлов, преобразованных с помощью разных онлайн-конвертеров (прежде всего из PDF в Word), и лучше всего с задачей справляется Smart PDF. Он практически идеально распознал ранее созданную в Power Point книгу. С конвертацией более сложного e-book приложение справилось гораздо хуже, но все же лучше, чем аналоги. Плюс у этого конвертера есть удобное расширение для Chrome. 40 расширений для Google Chrome, необходимых в работе интернет-маркетолога Как защитить pdf Базовые функции защиты документа тоже можно найти в бесплатных десктопных программах или веб-приложениях. Например, поставить или убрать пароль можно практически в любом онлайн-редакторе PDF. Что касается добавления водяных знаков, тут снова могу посоветовать в первую очередь Smart PDF – встроенный инструмент позволяет создавать самые разные вотермарки или загружать собственные. Вот, например, что у меня получилось: Некоторые редакторы позволяют также подписывать документы. Например, HIPDF. В Foxit Reader тоже можно поставить подпись. Причем здесь для этого гораздо больше различных опций. Есть даже кнопка «Подписать с помощью DocuSign», но из-за проблем с совместимостью воспользоваться функцией пока нельзя. В приложении Soda есть инструмент E-Sign, в котором можно подготавливать и отправлять документы для электронной подписи, предварительно зарегистрировавшись. Как видите, некоторые нужные опции платных программ можно найти и в бесплатном варианте. Пусть и в разных местах, зато не нужно переплачивать за лишние возможности. Выводы Если вы редко работаете с PDF и вам хватает базовых функций редактирования, не спешите оплачивать дорогостоящее ПО. Перечисленных в статье способов хватит, чтобы закрыть большую часть потребностей рядового пользователя. Если же взаимодействие с форматом происходит постоянно и требуются дополнительные возможности вроде распознавания текста, стоит посмотреть в сторону профессиональных редакторов и протестировать их функции в бесплатном режиме. Тот же OCR, к примеру, показывает разные результаты в разных программах. Поэтому без тестирования выбирать наугад pdf-редактор не совсем разумно. Надеюсь, статья получилась полезной. А какие программы для работы с PDF используете вы?

Формат Portable Document Format является одним из главных нововведений в области настольных издательских систем и автоматизации делопроизводства.

Он также широко используется в веб-публикациях, но, к сожалению, очень часто неправильным образом — как, например, использование его для замены содержимого, которое должно было быть построено на HTML. Это вызывает много проблем, касающихся юзабилити, доступности, SEO и так далее.

Однако в некоторых случаях требуются файлы PDF: когда документ необходимо архивировать и использовать за пределами сети (например, счет-фактура) или когда вам необходим глубокий контроль над печатью.

Именно необходимость контролировать печать привела меня к поиску способа создания PDF-файла.

Цель этой статьи — не просто объяснить, как можно создать PDF (есть много простых способов сделать это), но также сосредоточиться на обстоятельствах, когда файл PDF может решить проблему , и на том, как простой инструмент, такой как jsPDF могу помочь с этим.

Работа с печатью

Любой, кто имел дело с правилами печати CSS, знает, как трудно добиться достойного уровня кроссбраузерной совместимости (посмотрите, например, на таблицу поддержки разрыва страницы в «Можно ли использовать»). Поэтому, когда мне нужно создать что-то, что должно быть напечатано, я всегда стараюсь избегать CSS, и самое простое решение — использовать PDF.

Я не говорю здесь о простом преобразовании HTML в PDF. (Я попробовал несколько инструментов такого типа, но ни один из них не удовлетворил меня полностью.) Моя цель — полностью контролировать расположение и размер элементов, разрывы страниц и так далее.

В прошлом я часто использовал FPDF , инструмент PHP, который может легко предоставить вам такие элементы управления и который может быть легко расширен с помощью многих плагинов .

К сожалению, библиотека, похоже, заброшена (ее последняя версия датируется 2011 годом) (обновление: фактически, последняя версия, по-видимому, относится к декабрю 2015 года ), но благодаря некоторым библиотекам JavaScript у нас теперь есть возможность напрямую создавать файлы PDF. у клиентов (тем самым ускоряя их генерацию).

Когда я начал свой проект, несколько месяцев назад я искал библиотеку JS и, наконец, нашел двух кандидатов: jsPDF и pdfmake . Кажется, pdfmake хорошо документирован и очень прост в использовании, но, поскольку это была бета-версия, я решил использовать jsPDF.

PDF Сборка с помощью jsPDF

Документация jsPDF довольно минимальна, состоит из одной страницы вместе с некоторыми демонстрациями и немного больше информации в исходном файле (или на его страницах jsDoc ), поэтому имейте в виду, что использование его для сложных проектов может быть немного сложным в начало.

В любом случае, jsPDF очень прост для создания базовых файлов PDF. Взгляните на простой пример «Hello World»:

<</span>!DOCTYPE html> <</span>html lang="en"> <</span>head> <</span>meta charset="utf-8"> <</span>title>Hello world<</span>/title> <</span>/head> <</span>body> <</span>h1>Hello world<</span>/h1> <</span>script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"><</span>/script> <</span>script type="text/javascript"> var pdf = new jsPDF(); pdf.text(30, 30, 'Hello world!'); pdf.save('hello_world.pdf'); <</span>/script> <</span>/body> <</span>/html> 

Эта HTML-страница генерирует одностраничный PDF-файл и сохраняет его на вашем компьютере. Сначала необходимо связаться с библиотекой jsPDF (в данном случае с cdnjs.com ), затем создается экземпляр jsPDF, добавляется строка текста и результат сохраняется как hello_world.pdf .

Обратите внимание, что я использовал версию 1.0.272, и она не самая последняя: на момент написания этой статьи самой последней версией была версия 1.1.135, но у нее много проблем, поэтому я все еще использую предыдущую. ,

Вы можете увидеть, насколько просто создать базовый файл PDF (вы можете найти больше примеров на сайте jsPDF).

Давайте попробуем построить что-то сложнее.

Flyer Project

Несколько месяцев назад меня попросили создать приложение для создания простых листовок. Это было частью более крупного проекта, который имел дело с некоторыми услугами для туристических агентств, и настоящая информация была частично заполнена некоторыми данными JSON.

Основная цель флаера состояла в том, чтобы предоставить простой способ показа специальных предложений, которые будут выставлены в витрине туристического агентства.

Я переставил это приложение для этой статьи, удалив все функциональные возможности на стороне сервера, упростив дизайн флаера, избавившись от совместимости с устаревшими браузерами и создав очень простой интерфейс с Bootstrap 3 и jQuery.

Демонстрация хорошо работает с Firefox и Chrome, в то время как Explorer (или Edge) не позволяет отображать предварительный просмотр, но только для загрузки созданного PDF.

Это пример PDF, созданного с помощью приложения (фото предоставлено Rafael Leão / Unsplash )

Функциональная демонстрация доступна в конце этой статьи или непосредственно в CodePen . Обратите внимание, что, поскольку CodePen загружает страницу результатов в iframe, предварительный просмотр PDF — который также загружается в iframe — имеет некоторые проблемы с Chrome и Safari, которые препятствуют отображению предварительного просмотра. (Используйте Firefox, если можете, или попробуйте демо на моем личном сайте ).

Flyer Builder

Пользовательский интерфейс позволяет пользователю вводить некоторые основные данные (заголовок, реферат и цену). При желании можно добавить изображение, в противном случае отображается заголовок Специального предложения в серой рамке.

Другие данные (название агентства, URL-адрес его веб-сайта и логотип) включены в код приложения.

PDF можно предварительно просмотреть в iframe (кроме Explorer или Edge) или загрузить напрямую.

При нажатии кнопки «Просмотр предварительного просмотра» или « Загрузка» файл PDF генерируется с использованием jsPDF и передается в iframe в виде строки URI данных или сохраняется на диск, как в примере выше.

Генерация PDF сначала создает новый экземпляр объекта jsPDF со следующими параметрами: книжная ориентация ( p ), миллиметровые единицы ( mm ), формат «A4».

 var pdf = new jsPDF('p', 'mm', 'a4'); 

Изображения добавляются с addImage функции addImage . Обратите внимание, что каждый объект, размещенный на странице PDF, должен быть точно расположен. Вы должны заботиться о координатах каждого объекта, используя объявленные единицы измерения.

 // pdf.addImage(base64_source, image format, X, Y, width, height) pdf.addImage(agency_logo.src, 'PNG', logo_sizes.centered_x, _y, logo_sizes.w, logo_sizes.h); 

Изображения должны быть в кодировке Base64: логотип агентства встраивается в сценарий в этом формате, а загруженное пользователем изображение кодируется с использованием метода readAsDataURL в readAsDataURL $('#flyer-image').change .

Заголовок добавляется с textAlign функции textAlign . Обратите внимание, что эта функция не является частью ядра jsPDF, но, как было предложено автором в его примерах, библиотека может быть легко расширена с помощью ее API . Вы можете найти textAlign() в верхней части скрипта флаера:

 pdf.textAlign(flyer_title, {align: "center"}, 0, _y); 

Эта функция вычисляет координату X текстовой строки, чтобы сделать ее центрированной, а затем вызывает собственный метод text() :

 pdf.text(text string, X, Y); 

Чтобы изменить свойства текста, вы можете использовать setFontSize() , setFont() , setTextColor() и setFontType() .

Например, чтобы установить красную строку размером 20pt Times Bold, вам нужно набрать:

 pdf.setFontSize(20); pdf.setFont("times"); pdf.setFontType("bold"); pdf.setTextColor(255, 0, 0); pdf.text(10,10, 'This is a 20pt Times Bold red string'); 

В сером поле Специального предложения и ценовом круге используются два аналогичных метода: roundedRect() и circle() . Для обоих из них требуются верхние левые координаты, значения размеров (ширина и высота в первом случае и радиус во втором):

 pdf.roundedRect( X, Y, width, height, radius along X axis, radius along Y axis, style); pdf.circle( X, Y, radius, style); 

Параметры style относятся к свойствам заполнения и обводки объекта. Допустимые стили: S [по умолчанию] для обводки, F для заливки и DF (или FD ) для заливки и обводки.

Свойства заливки и обводки должны быть установлены заранее, используя setFillColor и setDrawColor , для которых требуется значение RGB, и setDrawColor , для которого требуется значение ширины линии в единицах измерения, объявленных в начале документа PDF.

Полный код доступен в демоверсии CodePen:

Вывод

Этот базовый пример показывает, как можно создать очень простой флаер с jsPDF.

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

Я все еще ищу другие решения, следя за другими, такими как pdfmake. Но в конечном счете, я думаю, что единственным действительно окончательным решением может быть лучшая поддержка браузером для печати правил CSS!

Вы использовали jsPDF или что-то подобное? Каким был ваш опыт? Дай мне знать в комментариях.

Я даю ссылку на pdf-файл на моей веб-странице для загрузки, как показано ниже

Download Brochure 

проблема, когда пользователь нажимает на эту ссылку, то

  • если пользователь установил Adobe Acrobat, то он открывает файл в том же окне браузера в Adobe Reader.
  • если Adobe Acrobat не установлен, то он всплывает к пользователю для загрузки файла.

но я хочу, чтобы он всегда всплывал к пользователю для загрузки, независимо от “Adobe acrobat” установлен или нет.

Пожалуйста, скажите мне, как я могу это сделать?

861   12  

12 ответов:

вместо ссылки на .PDF файл, вместо этого сделать что-то вроде

Download my eBook 

который выводит пользовательский заголовок, открывает PDF (binary safe) и печатает данные в браузере пользователя, а затем они могут выбрать, чтобы сохранить PDF, несмотря на их настройки браузера. В pdf_server.PHP должен выглядеть так:

header("Content-Type: application/octet-stream");  $file = $_GET["file"] .".pdf"; header("Content-Disposition: attachment; filename=" . urlencode($file));    header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer");             header("Content-Length: " . filesize($file)); flush(); // this doesn't really matter. $fp = fopen($file, "r"); while (!feof($fp)) {     echo fread($fp, 65536);     flush(); // this is essential for large downloads }  fclose($fp);  

PS: и, очевидно, запустить некоторые проверки здравомыслия на переменную “файл”, чтобы предотвратить людей от кражи файлов, таких как не принимать расширения файлов, запретить косые черты, добавить .pdf к значению

Это распространенная проблема, но мало кто знает, что есть простое решение HTML 5:

Download the pdf 

здесь newfilename является предлагаемым именем файла для пользователя, чтобы сохранить файл. Или это будет по умолчанию имя файла на стороне сервера, если вы оставите его пустым, например:

Download the pdf 

совместимость: я тестировал это на Firefox 21 и Iron, оба работали нормально. Он может не работать в HTML5-несовместимых или устаревших браузерах. Единственный браузер, который я тестировал, который не заставлял загружать, – это ТО ЕСТЬ…

проверьте совместимость здесь:http://caniuse.com/#feat=download

Не петли через каждую строку файла. Используйте readfile вместо этого, его быстрее. Это вне сайта php: http://php.net/manual/en/function.readfile.php

$file = $_GET["file"]; if (file_exists($file)) {     header('Content-Description: File Transfer');     header('Content-Type: application/octet-stream');     header("Content-Type: application/force-download");     header('Content-Disposition: attachment; filename=' . urlencode(basename($file)));     // header('Content-Transfer-Encoding: binary');     header('Expires: 0');     header('Cache-Control: must-revalidate, post-check=0, pre-check=0');     header('Pragma: public');     header('Content-Length: ' . filesize($file));     ob_clean();     flush();     readfile($file);     exit; } 

убедитесь, что вы очистили свою переменную get, так как кто-то может загрузить некоторые файлы php…

вместо того, чтобы использовать php-скрипт, чтобы прочитать и очистить файл, более аккуратно переписать заголовок с помощью .htaccess. Это позволит сохранить” хороший ” URL (myfile.pdf вместо download.php?myfile).

 ForceType applicaton/octet-stream Header set Content-Disposition attachment  

Я нашел способ сделать это с помощью простого старого HTML и JavaScript/jQuery, который изящно деградирует. Протестировано в IE7-10, Safari, Chrome и FF:

HTML для ссылки на скачивание:

Thanks for downloading! If your download doesn't start shortly,  click here. 

jQuery (чистый код JavaScript был бы более подробным), который имитирует нажатие на ссылку после небольшой задержки:

var delay = 3000; window.setTimeout(function(){$('#downloadLink')[0].click();},delay); 

чтобы сделать это более надежным, вы можете добавить обнаружение функций HTML5, и если его там нет, используйте window.open() открыть новое окно с файлом.

это ключ:

header("Content-Type: application/octet-stream"); 

Content-type application/x-pdf-документ или приложение / pdf отправляется при отправке PDF-файла. Adobe Reader обычно устанавливает обработчик для этого типа MIME, поэтому браузер будет передавать документ в Adobe Reader при получении любого из типов PDF MIME.

в HTML5 есть более простой способ: добавить

Я знаю, что я очень поздно, чтобы ответить на этот вопрос, но я нашел хак, чтобы сделать это в javascript.

function downloadFile(src){     var link=document.createElement('a');     document.body.appendChild(link);     link.href= src;     link.download = '';     link.click(); } 

попробуйте это:

Download my eBook

код внутри pdf_server_with_path.php это:

header("Content-Type: application/octet-stream");  $file = $_GET["file"] .".pdf"; $path = $_GET["path"]; $fullfile = $path.$file;  header("Content-Disposition: attachment; filename=" . Urlencode($file));    header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer");             header("Content-Length: " . Filesize($fullfile)); flush(); // this doesn't really matter. $fp = fopen($fullfile, "r"); while (!feof($fp)) {     echo fread($fp, 65536);     flush(); // this is essential for large downloads }  fclose($fp); 

вот другой подход. Я предпочитаю вместо того, чтобы полагаться на поддержку браузера или обращаться к этому на уровне приложения, использовать логику веб-сервера.

Если вы используете Apache, и может положить .файл htaccess в соответствующем каталоге вы можете использовать приведенный ниже код. Конечно, вы можете поместить это в httpd.conf также, если у вас есть доступ к этому.

   Header set Content-Disposition attachment  

директива FilesMatch-это просто регулярное выражение, поэтому ее можно установить так же подробно, как вы хотите, или вы можете добавить другие добавочные номера.

строка заголовка делает то же самое, что и первая строка в скриптах PHP выше. Если вам также нужно установить строки типа контента, вы можете сделать это таким же образом, но я не нашел это необходимым.

Я решил мой, используя весь url-адрес PDF-файла (вместо того, чтобы просто поместить имя файла или местоположение в href): a href=”домен . com / pdf / filename.PDF-файл”

в приложении Ruby on Rails (особенно с чем-то вроде Prawn gem и плагина Prawnto Rails) вы можете выполнить это немного проще, чем полный сценарий (например, предыдущий пример PHP).

в вашем контроллере:

def index   respond_to do |format|    format.html # Your HTML view    format.pdf { render :layout => false }  end end 

render: layout = > false часть говорит браузеру, чтобы открыть “Вы хотели бы загрузить этот файл?”запрос вместо того, чтобы пытаться отобразить PDF. Тогда вы сможете нормально ссылаться на файл: http://mysite.com/myawesomepdf.pdf

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

Как сохранить в PDF-формате любой документ: стандартная методология

Многие пользователи компьютеров об универсальной методике могут и не знать. Если вы работаете с Windows десятой модификации, вопрос того, как сохранить документ в формате PDF (причем независимо от типа исходного файла), решается совершенно элементарно, даже без использования сторонних средств или дополнительных инструментов.

image

Для этого можно использовать интегрированный в Windows 10 виртуальный принтер Microsoft Print to PDF. Тут главное условие – наличие программы для открытия начального файла. Что в офисных приложениях, что в графических редакторах, сначала необходимо открыть нужный файл и отправить его на печать. При выборе печатающего устройства как раз и нужно указать виртуальный принтер. Далее настройте выходные параметры с указанием файла в качестве выходного объекта (если это нужно), присвойте создаваемому файлу имя, выберите место сохранения и активируйте старт печати. По окончании процесса в указанной локации и получите объект PDF-формата.

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

Файл в формате PDF: как сохранить в «Ворде» 2010 и выше?

Поскольку текстовый редактор Word является среди пользователей особо популярным при создании разного рода документации, разработчики позаботились о том, чтобы применять сторонние программы не было необходимости. Тут есть собственные инструменты.

image

Так, например, вопрос того, как сохранить документ Word в формате PDF, решается самым стандартным способом. Нужно всего лишь открыть или создать текстовый файл, а затем при сохранении в типе документа выбрать формат PDF и указать нужное месторасположение сохраняемого объекта.

Сохранение документа в «Ворде» 2003

С версиями редактора ниже 2010, проблема того, как в Word сохранить формат PDF, решается не менее просто, хотя методика несколько и отличается.

image

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

image

Кстати сказать, точно такая же функция имеется и более поздних версиях офисных программ, только там она вызывается путем активации экспорта.

Сторонние программы для сохранения

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

Проблема того, как сохранить в PDF-формате документ любого типа, имеет универсальное решение, которое состоит в том, чтобы использовать систему распознавания ABBYY FineReader. Только сканировать нужно не печатный материал, а указать открытие из файла, а после распознавания сохранить документ в нужном формате.

image

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

Использование конвертеров и онлайн-сервисов

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

Недостаток в том, что какого-то одного универсального конвертера для преобразования файлов любого типа в PDF нет, поэтому для графики придется устанавливать одно приложение, для Word – другое, для Excel –третье, и т. д. по списку. Зато преимущество состоит в том, что можно использовать пакетное конвертирование, когда для обработки задается одновременно несколько файлов одного исходного формата.

Можно, конечно, воспользоваться и онлайн-сервисами, которые сегодня в интернете рекламируются достаточно активно, но обработка будет слишком медленной, файлы добавлять придется по одному, затем их потребуется скачать на компьютер, а это все – время. В общем, неудобно, и приводится такое решение исключительно в ознакомительных целях, чтобы осветить основной вопрос в полном объеме.

Что использовать?

Вот и все основные методы, позволяющие совершенно просто решить вопрос того, как в PDF-формате сохранить документ любого исходного типа. Что использовать в качестве оптимального решения? Само собой разумеется, что пользователям десятой версии Windows можно обойтись только виртуальным принтером (это и быстрее, и проще). В случае систем более низкого ранга можно воспользоваться средствами «Офиса», на крайний случай – системой распознавания текста или изображений. А вот применение конвертеров оправдано только в том случае, когда требуется пакетная обработка однотипных файлов. Об использовании онлайн-сервисов, как уже понятно, речь не идет вообще. Впрочем, в зависимости от ситуации, и следует принимать решение по поводу применения вышеописанных методик, поскольку для разных случаев разнящиеся между собой конечной целью способы могут оказаться или более, или менее подходящими.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий