diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-14 00:03:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-14 00:03:51 +0000 |
commit | c093affc0bc3b558c318d29dcc2240a36178a7df (patch) | |
tree | 058635e4fd606688a17fb96be4a0e3e604eb22c4 /Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty | |
parent | fb46da52c21567a3a980ae8827fb52f161c4f5ae (diff) |
flashmovie update (9sep10)
git-svn-id: svn://tug.org/texlive/trunk@19720 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty | 220 |
1 files changed, 147 insertions, 73 deletions
diff --git a/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty b/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty index 051b5971da1..0603e59a3b9 100644 --- a/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty +++ b/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty @@ -1,7 +1,14 @@ %%%%%%%%%%%%% flashmovie.sty %%%%%%%%%%%%% Copyright 2010 Timo Hartmann (thartmann15 at googlemail.com) % -% Version 0.2 +% Version 0.3 +% +% changelog: +% 0.3 : 2010-09-09 : better examples,minor bug fixes, issues with beamer explained +% 0.2 : 2010-04-21 : major overhaul: keyval 'engine', flv-player-engine, +% efficient multiple embedding of files,... +% 0.1 : 2010-04-13 : a bunch of bugfixes +% 0.0 : 2009-12-06 : initial release % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -32,11 +39,6 @@ % - Marco Aurélio Graciotto Silva % - neolao % -% changelog: -% 0.2 : 2010-04-21 : major overhaul: keyval 'engine', flv-player-engine,... -% 0.1 : 2010-04-13 : a bunch of bugfixes -% 0.0 : 2009-12-06 : initial release -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % This package allows direct embedding of flash movies into PDF files. It is @@ -63,8 +65,13 @@ % Both files (the video and the flash-video-player) will be % embedded into the pdf. See example(2) below. % Different video formats (mp4/flv/whatever-the-flash-video-player-accepts/...) -% can be used. Controls are available (depends on the player). +% can be used. Controls are available (depending on the player). % See example (2) below. +% Using the keyword "engine" one can select the method of embedding. +% If you omit it or if you specify "engine=pure-swf" then the file will be +% directly embedded. This works only for swf-files. +% For other possible values of "engine" see the chapter "flash-video-players". +% % % flash-video-players: % There are several flash-video-players available which fit the needs @@ -83,7 +90,7 @@ % supported parameters: % auto=0 --> auto-play off (default) % auto=1 --> auto-play on -% image=some.jpeg --> start-image (not necessary) +% image=someimage.jpeg --> start-image (not necessary) % % - "engine=acropro". This is an commercial player which is distributed with % Acrobat 9 Pro. You have to obtain VideoPlayer.swf and SkinOverPlaySeekStop.swf @@ -93,14 +100,27 @@ % - "engine=jw-player". This is the JW player from http://www.longtailvideo.com/players/jw-flv-player. % You have to obtain player.swf from that site and put it in the working directory in order % to use this module. -% It is NOT included with this distribution. +% It is NOT included in this distribution. % For this player flashmovie.sty only provides rudimentary support. % - "engine=osplayer". This is an open-source player from http://www.osflv.com % You have to obtain OSplayer.swf from that site and put it in the working directory in order % to use this module. -% It is NOT included with this distribution. +% It is NOT included in this distribution. % For this player flashmovie.sty only provides rudimentary support. % +% other options for the "engine"-keyword: +% - "engine=pure-swf" : This directly embedds the file into the PDF without +% any flash-video-player. This is the default option when you omit the +% "engine"-keyword. This works only for swf-files. +% - "engine=blank" : This simply produces an empty rectangle instead of an +% flash animation. This is useful during the creation process of the +% PDF because flash animations inside a PDF can easily crash +% the Adobe reader with the reload (CTRL-R) feature after recompiling +% the tex-file. +% The same effect can be produced if uses "blank=1" as an option +% regardless what the value of "engine" is. +% example: \flashmovie[...,engine=flv-player,blank=1,...]{...} +% % % example (1) % - download a video file to use, for example @@ -141,7 +161,39 @@ % todo: % - make more options of rich-media annotations usable, for example activation by clicking, play-count,... % +% tips: +% - It is in principle possible to insert any flash animation into a PDF. +% One is not restricted to videos. +% - During development of the PDF one can switch of the flash animations which +% is sometimes useful. See "engine=blank" or "blank=1" for more information. +% +% troubleshooting: +% - If you encounter the error message "\pdfminorversion cannot be changed after data is written to the PDF file.", +% then another package is also setting the variable "\pdfminorversion". +% For example the package "beamer" does so. +% There are two solutions: +% - Include the package with the highest "\pdfminorversion" first. +% For example put "\RequirePackage{flashmovie}" on the very first line +% of your file instead of using "\usepackage{flashmovie}" later on. +% Or rearrange the usepackage-commands in the right order. +% - Comment the line "\ifnum\pdfminorversion<7 \pdfminorversion=7\fi" in +% "flashmovie.sty". This will probably leave your PDF with the wrong +% version information, but the Adobe Reader will take it anyway. +% - There seems to be some trouble with the latex package beamer. You can't use +% the flv-player reliably with it. It is prone to crash the acrobat reader while +% changing pages. +% The only reliable way to use beamer is to directly embed the videos as +% flash animations. +% Another option is to use the JW player. It seems to work with beamer, +% but is only rudimentary supported. +% Any competent help on this issue would be appreciated. This might be +% another open source player which works with beamer or a fix of the flv-player +% or something else. +% % warning: +% - It is recommended to use always the latest available version of the Adobe Reader. +% This should be mandatory because in the past many attacks on computers were based +% on 'evil' PDFs which exploited security holes in this software. % - Because the file names of the movies are directly embedded into the PDFs please use only % "normal" file names. More specific use only names compatible with internal PDF strings. % There is even a specification what conforming file names are (see the PDF reference). @@ -161,6 +213,7 @@ \def\flashmovieimage{} \def\flashmovieauto{0} \def\flashmovieengine{} + \def\flashmoviekblank{0} } \define@key{flashmovieparams}{width} {\def\flashmoviewidth {#1}} @@ -168,6 +221,7 @@ \define@key{flashmovieparams}{image} {\def\flashmovieimage {#1}} \define@key{flashmovieparams}{auto} {\def\flashmovieauto {#1}} \define@key{flashmovieparams}{engine} {\def\flashmovieengine {#1}} +\define@key{flashmovieparams}{blank} {\def\flashmoviekblank {#1}} \newlength{\flashmovie@width} \newlength{\flashmovie@height} @@ -228,12 +282,16 @@ \def\flashmovie{\@ifnextchar[\@flashmovie{\@flashmovie[]}} \def\@flashmovie[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \ifx\flashmovieimage\flashmovieengine + + \ifthenelse{\equal{\flashmoviekblank}{\flashmoviezero}} + {}{\def\flashmovieengine{blank}} + + \ifx\flashmovieengine\flashmovieempty \flashmovie@pureswf[#1]{#2} \else \ifthenelse{\equal{\flashmovieengine}{pure-swf}} - {\flashmovie@puresef[#1]{#2}}{} + {\flashmovie@pureswf[#1]{#2}}{} \ifthenelse{\equal{\flashmovieengine}{flv-player}} {\flashmovie@flvplayer[#1]{#2}}{} @@ -247,6 +305,9 @@ \ifthenelse{\equal{\flashmovieengine}{osplayer}} {\flashmovie@osplayer[#1]{#2}}{} + \ifthenelse{\equal{\flashmovieengine}{blank}} + {\flashmovie@blank[#1]{#2}}{} + \fi }} @@ -256,9 +317,9 @@ \def\flashmovie@pureswf{\@ifnextchar[\@flashmovie@pureswf{\@flashmovie@pureswf[]}} \def\@flashmovie@pureswf[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \newcount\configurationnum - \newcount\contentnum - \newcount\settingsnum + \newcount\flashmovie@n@config + \newcount\flashmovie@n@content + \newcount\flashmovie@n@settings \flashmovieembedfile{#2} \edef\flashmovie@e@video{\flashmovieembedded} @@ -273,23 +334,23 @@ >>] /Subtype /Flash >>} - \configurationnum=\pdflastobj + \flashmovie@n@config=\pdflastobj \immediate \pdfobj {<< /Assets << /Names [(#2) \flashmovie@e@video\space 0 R] >> - /Configurations [\the\configurationnum\space 0 R] + /Configurations [\the\flashmovie@n@config\space 0 R] >>} - \contentnum=\pdflastobj + \flashmovie@n@content=\pdflastobj \immediate \pdfobj {<< /Activation << /Type /RichMediaActivation - /Condition /PO - /Configuration \the\configurationnum\space 0 R + /Condition /PV + /Configuration \the\flashmovie@n@config\space 0 R /Animation << /Subtype /Linear /Speed 1 @@ -317,10 +378,10 @@ >> /Deactivation << /Type /RichMediaDeactivation - /Condition /XD + /Condition /PI >> >>} - \settingsnum=\pdflastobj + \flashmovie@n@settings=\pdflastobj \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} @@ -330,19 +391,31 @@ \pdfannot width \flashmovie@width height \flashmovie@height depth 0pt { /Subtype /RichMedia - /RichMediaContent \the\contentnum\space 0 R - /RichMediaSettings \the\settingsnum\space 0 R + /RichMediaContent \the\flashmovie@n@content\space 0 R + /RichMediaSettings \the\flashmovie@n@settings\space 0 R }}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% blank + +\def\flashmovie@blank{\@ifnextchar[\@flashmovie@blank{\@flashmovie@blank[]}} + +\def\@flashmovie@blank[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ + \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} + \settowidth {\flashmovie@width} {\usebox{\flashmovie@content}} + \settoheight{\flashmovie@height}{\usebox{\flashmovie@content}} + \usebox{\flashmovie@content} +}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % player from adobe acrobat pro \def\flashmovie@acropro{\@ifnextchar[\@flashmovie@acropro{\@flashmovie@acropro[]}} \def\@flashmovie@acropro[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \newcount\configurationnum - \newcount\contentnum - \newcount\settingsnum + \newcount\flashmovie@n@config + \newcount\flashmovie@n@content + \newcount\flashmovie@n@settings \flashmovieembedfile{#2} \edef\flashmovie@e@video{\flashmovieembedded} @@ -367,23 +440,23 @@ >>] /Subtype /Flash >>} - \configurationnum=\pdflastobj + \flashmovie@n@config=\pdflastobj \immediate \pdfobj {<< /Assets << /Names [(#2) \flashmovie@e@video\space 0 R (skinover.swf) \flashmovie@e@skin\space 0 R (VideoPlayer.swf) \flashmovie@e@player\space 0 R] >> - /Configurations [\the\configurationnum\space 0 R] + /Configurations [\the\flashmovie@n@config\space 0 R] >>} - \contentnum=\pdflastobj + \flashmovie@n@content=\pdflastobj \immediate \pdfobj {<< /Activation << /Type /RichMediaActivation - /Condition /PO - /Configuration \the\configurationnum\space 0 R + /Condition /PV + /Configuration \the\flashmovie@n@config\space 0 R /Animation << /Subtype /Linear /Speed 1 @@ -411,10 +484,10 @@ >> /Deactivation << /Type /RichMediaDeactivation - /Condition /XD + /Condition /PI >> >>} - \settingsnum=\pdflastobj + \flashmovie@n@settings=\pdflastobj \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} @@ -424,8 +497,8 @@ \pdfannot width \flashmovie@width height \flashmovie@height depth 0pt { /Subtype /RichMedia - /RichMediaContent \the\contentnum\space 0 R - /RichMediaSettings \the\settingsnum\space 0 R + /RichMediaContent \the\flashmovie@n@content\space 0 R + /RichMediaSettings \the\flashmovie@n@settings\space 0 R }}} @@ -435,9 +508,9 @@ \def\flashmovie@flvplayer{\@ifnextchar[\@flashmovie@flvplayer{\@flashmovie@flvplayer[]}} \def\@flashmovie@flvplayer[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \newcount\configurationnum - \newcount\contentnum - \newcount\settingsnum + \newcount\flashmovie@n@config + \newcount\flashmovie@n@content + \newcount\flashmovie@n@settings \flashmovieembedfile{#2} \edef\flashmovie@e@video{\flashmovieembedded} @@ -477,24 +550,24 @@ >>] /Subtype /Flash >>} - \configurationnum=\pdflastobj + \flashmovie@n@config=\pdflastobj \immediate \pdfobj {<< /Assets << /Names [(#2) \flashmovie@e@video\space 0 R (player_flv_maxi.swf) \flashmovie@e@player\space 0 R \flashmovieimagevarii] >> - /Configurations [\the\configurationnum\space 0 R] + /Configurations [\the\flashmovie@n@config\space 0 R] >>} - \contentnum=\pdflastobj + \flashmovie@n@content=\pdflastobj \immediate \pdfobj {<< /Activation << /Type /RichMediaActivation - /Condition /PO - /Configuration \the\configurationnum\space 0 R + /Condition /PV + /Configuration \the\flashmovie@n@config\space 0 R /Animation << /Subtype /Linear /Speed 1 @@ -522,10 +595,10 @@ >> /Deactivation << /Type /RichMediaDeactivation - /Condition /XD + /Condition /PI >> >>} - \settingsnum=\pdflastobj + \flashmovie@n@settings=\pdflastobj \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} @@ -535,8 +608,8 @@ \pdfannot width \flashmovie@width height \flashmovie@height depth 0pt { /Subtype /RichMedia - /RichMediaContent \the\contentnum\space 0 R - /RichMediaSettings \the\settingsnum\space 0 R } + /RichMediaContent \the\flashmovie@n@content\space 0 R + /RichMediaSettings \the\flashmovie@n@settings\space 0 R } }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -545,9 +618,9 @@ \def\flashmovie@jwplayer{\@ifnextchar[\@flashmovie@jwplayer{\@flashmovie@jwplayer[]}} \def\@flashmovie@jwplayer[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \newcount\configurationnum - \newcount\contentnum - \newcount\settingsnum + \newcount\flashmovie@n@config + \newcount\flashmovie@n@content + \newcount\flashmovie@n@settings \flashmovieembedfile{#2} \edef\flashmovie@e@video{\flashmovieembedded} @@ -569,24 +642,24 @@ >>] /Subtype /Flash >>} - \configurationnum=\pdflastobj + \flashmovie@n@config=\pdflastobj \immediate \pdfobj {<< /Assets << /Names [(#2) \flashmovie@e@video\space 0 R (player.swf) \flashmovie@e@player\space 0 R] >> - /Configurations [\the\configurationnum\space 0 R] + /Configurations [\the\flashmovie@n@config\space 0 R] >>} - \contentnum=\pdflastobj + \flashmovie@n@content=\pdflastobj \immediate \pdfobj {<< /Activation << /Type /RichMediaActivation - /Condition /PO - /Configuration \the\configurationnum\space 0 R + /Condition /PV + /Configuration \the\flashmovie@n@config\space 0 R /Animation << /Subtype /Linear /Speed 1 @@ -614,10 +687,10 @@ >> /Deactivation << /Type /RichMediaDeactivation - /Condition /XD + /Condition /PI >> >>} - \settingsnum=\pdflastobj + \flashmovie@n@settings=\pdflastobj \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} @@ -627,8 +700,8 @@ \pdfannot width \flashmovie@width height \flashmovie@height depth 0pt { /Subtype /RichMedia - /RichMediaContent \the\contentnum\space 0 R - /RichMediaSettings \the\settingsnum\space 0 R } + /RichMediaContent \the\flashmovie@n@content\space 0 R + /RichMediaSettings \the\flashmovie@n@settings\space 0 R } }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -637,9 +710,9 @@ \def\flashmovie@osplayer{\@ifnextchar[\@flashmovie@osplayer{\@flashmovie@osplayer[]}} \def\@flashmovie@osplayer[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{ - \newcount\configurationnum - \newcount\contentnum - \newcount\settingsnum + \newcount\flashmovie@n@config + \newcount\flashmovie@n@content + \newcount\flashmovie@n@settings \flashmovieembedfile{#2} \edef\flashmovie@e@video{\flashmovieembedded} @@ -661,24 +734,24 @@ >>] /Subtype /Flash >>} - \configurationnum=\pdflastobj + \flashmovie@n@config=\pdflastobj \immediate \pdfobj {<< /Assets << /Names [(#2) \flashmovie@e@video\space 0 R (OSplayer.swf) \flashmovie@e@player\space 0 R] >> - /Configurations [\the\configurationnum\space 0 R] + /Configurations [\the\flashmovie@n@config\space 0 R] >>} - \contentnum=\pdflastobj + \flashmovie@n@content=\pdflastobj \immediate \pdfobj {<< /Activation << /Type /RichMediaActivation - /Condition /PO - /Configuration \the\configurationnum\space 0 R + /Condition /PV + /Configuration \the\flashmovie@n@config\space 0 R /Animation << /Subtype /Linear /Speed 1 @@ -706,10 +779,10 @@ >> /Deactivation << /Type /RichMediaDeactivation - /Condition /XD + /Condition /PI >> >>} - \settingsnum=\pdflastobj + \flashmovie@n@settings=\pdflastobj \sbox{\flashmovie@content} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}} @@ -719,6 +792,7 @@ \pdfannot width \flashmovie@width height \flashmovie@height depth 0pt { /Subtype /RichMedia - /RichMediaContent \the\contentnum\space 0 R - /RichMediaSettings \the\settingsnum\space 0 R } -}}
\ No newline at end of file + /RichMediaContent \the\flashmovie@n@content\space 0 R + /RichMediaSettings \the\flashmovie@n@settings\space 0 R } +}} + |