Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Отправить swf на виртуальный принтер
Flash Zone Forum > Macromedia Flash > Общие вопросы
user169
Здравствуйте. Есть набор swf-файлов, которые представляют собой страницы электронной книги. Чтобы было понятно, о чем идет речь, приведу пример таких файлов
http://www.knigafund.ru/books/112541/pages/1.swf
http://www.knigafund.ru/books/112541/pages/2.swf
......
http://www.knigafund.ru/books/112541/pages/10.swf
Каждый swf генерировался из оригинального векторного pdf, который был получен от издателя. С просмотром сохраненных файлов через браузер проблем нет. Но хочется книгу конвертировать в djvu для последующего чтения в электронной читалке.
Какие напрашиваются варианты решения проблемы? Очевидно, что нужно повыдергивать ресурсы из swf. Но поскольку есть ограниченное число продуктов, конвертирующих swf в файлы графических форматов и справляющихся с этой задачей очень неважно (декомпиляторы тоже не совсем подходят; они _отдельно_ извлекают текст, картинки и подобные _разрозненные_ элементы,которые должны быть _объединены_ в единое целое как в готовом swf), возникла мысль отправлять swf на печать через виртуальный принтер. Но такой возможности нет, ибо из браузера вывод swf на печать не поддерживается. Задача как раз и заключается в том, чтобы каким-то образом заставить swf выводиться на печать. Если будет использоваться виртуальный принтер, то можно добиться куда лучшего результата конвертации, чем с использованием специального софта. Специальный софт делает что-то типа скриншота (и лишь того фрагмента swf, который помещается в окошко браузера) с ужасно низким разрешением (можно играть с настройками, но качество примерно одинаково низкое; в отличие от этого качество исходного swf - замечательное!!!), а вот печать в файл, по идее, представляется очень хорошей альтернативой. Но это только мысли, а как быть с реализацией, я не знаю. Потому и интересуюсь.
Заранее спасибо.
MustLive
Цитата
Отправить swf на виртуальный принтер, Как это сделать?

user169

Для этого тебе нужно воспользоваться программами, которые умеют отправлять флешки на печать. Например, флеш редактор и стационарный флеш плеер. Если редактор - это платное ПО, то плеер бесплатный и его ты можешь скачать с сайта Адоба. Также у меня на сайте есть подборка разных версий флеш плеера.

Скачай себе флеш плеер, открой в нём swf-файл и отправь его на виртуальный принтер.
chingachgoog
А зачем столько геморра, если есть исходные pdf-файлы, из которых делались swf?
А так да, отправляем на виртуальный принтер (например, pdfFactory), сохряняем в pdf и все, что было векторное в swf будет векторным и в созданном pdf (если только к вектору во флеше не применялись растровые эффекты - тогда увы).
user169
MustLive, chingachgoog
Плейер действительно поддерживает вывод на печать. Но дело в том, что в данном случае мы имеем дело с особенными swf.
Если коротко, то эти swf представляют собой графические копии страниц книг одной из библиотек. Библиотека дает доступ к своему фонду за очень приемлемые деньги. Но сохранить страницы в привычном графическом формате не представляется возможным, т.к. разработчики постарались с так называемой защитой своего контента. Сохраненные swf очень трудно конвертировать в графику (чтобы потом, например, собрать книжку в djvu). Какие в первую очередь возникли мысли относительно конвертации swf в графику?
1. Распотрошить swf декомпилятором и вытащить все ресурсы. Да, ресурсы все извлекаются, но... Если swf был создан из графических форматов, то цельная картинка была перед конвертацией была разбита на фрагменты. Поэтому после декомпиляции файл все равно придется склеивать. А если swf был создан из векторного пдф (представлен издательством), то декомпиляция ничего не даст. Ибо изначально текст страницы - векторный, а все остальные графические фрагменты вставляются как рисунки. Т.е. целостная страница в этом случае точно не получится...
2. Использовать специализированный софт для конвертирования swf в графику. Было протестировано много коммерческого софта (Magic Swf2Avi, Eltima SWF & FLV Toolbox, SWF-AVI-GIF Converter и т.п.). Результат отвратительный!!! Софт либо не справляется с задачей (конвертирует лишь часть, видимую в окне просмотрщика; а ведь есть еще часть, которая находится ниже и появляется при перемещении ползунка прокрутки), либо справляется но с очень-очень низким качеством картинки...
3. Использовать снэпшоты, которые создаются с помощью HyperSnap с функцией захвата окна с прокруткой. Но это очень долго и не всегда работает (захватывается не всегда та часть, которая видна при полном прокручивании swf).
4. Использовать вывод на печать через виртуальный принтер. Но опять траблы с частью, которая не отображается там, где есть прокрутка. Т.е. на печать идет лишь фрагмент swf, видимый до прокручивания.
Такое ощущение, что эта самая прокрутка и есть элемент защиты sad.gif
Если хотите взглянуть на файлы, то вот например доступные бесплатно первые несколько страниц одной из книг.
http://www.knigafund.ru/books/112541/pages/1.swf
http://www.knigafund.ru/books/112541/pages/2.swf
....
http://www.knigafund.ru/books/112541/pages/10.swf
По причине отсутствия гарантированного средства решения проблем в автоматическом режиме или хотя бы более или менее автоматизированно, поиски продолжаются.
Конечно, книги можно там же приобрести за дополнительные деньги. Но их цена значительно выше стоимости доступа к ресурсам sad.gif
MustLive
Цитата
Если хотите взглянуть на файлы

user169, на файлы уже посмотрели. Можешь не повторять ссылки на swf-файлы, достаточно тех ссылок, что ты указал в первом посте.

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

Цитата
Плейер действительно поддерживает вывод на печать. Но дело в том, что в данном случае мы имеем дело с особенными swf.

Так и есть, флешки специфические, как я только что посмотрел. Они специально так сделаны, чтобы затруднить вывод на печать - выводится лишь та часть флешки, что видна на экране (без учёта прокрутки).

Но это решается. Чтобы обойти это ограничение расширь окно флешки таким образом, чтобы она поместилась на экран без прокрутки. Далее посылай на виртуальный принтер и получай целую страницу. Итоговая страница получится с пустыми полями, которые, при необходимости, сможешь вырезать.
user169
MustLive
Цитата
Но это решается. Чтобы обойти это ограничение расширь окно флешки таким образом, чтобы она поместилась на экран без прокрутки. Далее посылай на виртуальный принтер и получай целую страницу.

Да, такой вариант я тоже пробовал. Получается, правда с довольно низким разрешением. И по ощущениям, примерно такой же алгоритм использует специализированный софт для конвертирования swf в файлы графических форматов. И доказательством является тот факт, что в результирующем файле (как и в полученном пдф через виртуальный принтер, так и в полученных файлах графических форматов через спец. софт) присутствует серый фон.
Хотелось бы приблизить качество картинки к оригиналу и добиться автоматизации этого процесса. Ибо затраты времени на ручную возню с конвертированием слишком большие.
Библиотека предлагает доступ к графическим копиям книг (т.е. к пдф-файлам, которые были сверстаны либо на основе сканов, либо на основе оригинальных издательских форматов). Но тут действует другое правило: если доступ к огромному разделу библиотеки за фиксированную символическую плату распространяется на тысячи книг, копии которых можно сохранить в виде swf, то заказ каждого отдельно взятого документа в виде пдф превышает (иногда во много раз) месячную подписку. Тут становится ясно, почему используется подобный подход. Сайт зарабатывает на электронных версиях книг, процент от продажи которых перечисляется издателю. Т.е. сайт продает электронную копию документа, который является объектом авторского права. А  за просмотр документа берет символические деньги, поскольку не предоставляет сам носитель (т.е. сам пдф-файл). Это как в библиотеке: если взял книгу, то можешь ее читать бесплатно сколько угодно, можешь ее ксерить, иногда даже фоткать, но забрать эту книгу домой не имеешь права. Зато имеешь право купить книгу в магазине. Разница лишь в том, какой носитель информации используется: электронный носитель или книга в традиционном бумажном виде.
chingachgoog
Грамотное решение у них smile.gif
100% защиты нет, но достигнут эффект время-деньги. Т.е. на качественный взлом нужно время, которое лень тратить )))

А виртуальный принтер не пашет, потому, что я и говорил: "если только к вектору во флеше не применялись растровые эффекты - тогда увы". ))) Т.е. он честно показывает растрированную картинку, а не вектор.
MustLive
Ребята, описанного мною метода вывода целой страницы через виртуальный принтер вполне может хватить для поставленной задачи - создание одного файла, в том же DJVU формате (чтобы текст читался). Который user169 хотел читать на своей электронной читалке.

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

Цитата
Хотелось бы приблизить качество картинки к оригиналу и добиться автоматизации этого процесса. Ибо затраты времени на ручную возню с конвертированием слишком большие.

Существующие методы решения описаны выше в данной теме. Разные методы требуют различных затрат времени и/или денег, так что выбери наиболее подходящее тебе решение.
Русская версия IP.Board © 2001-2014 IPS, Inc.