#この記事の動作環境:Windows7 システム、PHP7.1 バージョン、DELL G3 パソコンphp のオンラインデモ機能の実装方法: 1. OpenOffice を使用して他の形式の文書を PDF 形式の文書に変換する; 2. swftools を使用して PDF 形式の文書を swf 形式の文書に変換する; 3. flexpaper を使用して swf 形式を表示するドキュメントを複数の形式でプレビューできるようになります。
PHP の実装方法オンラインデモ機能?
Windows での php オンライン プレビュー機能の実装
最近、ドキュメントのオンライン プレビュー機能を使用しました。これまで一度も使用したことがありませんでした。すべては、から始まりました。スクラッチして少し時間がかかりましたが、やっと気づいたので、その方法を皆さんにシェアします! 1. 主なアイデア まず、他の形式のドキュメント (オフィス ドキュメント、テキスト、画像など) を OpenOffice を介して PDF 形式のドキュメントに変換し、次に swftools (http://www) を使用します。 .swftools.org/) は、PDF 形式のドキュメントを swf 形式のドキュメントに変換し、最終的に flexpaper を介して swf 形式のドキュメントを表示することで、複数の形式でドキュメントをプレビューできるようにします。 使用されるツールはインターネットからダウンロードされ、簡単に見つけることができます。 2. 実装プロセス 1. 他のドキュメントを PDF に変換します コマンドを使用して OpenOffice を起動します: Run->cmd を入力し、次のコマンドcd /d E:/openoffice/program & soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizardまたは、cmd でプログラム ディレクトリを入力し、
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizardPHP 実装コードを入力します。
set_time_limit(0); function MakePropertyValue($name,$value,$osm){ $oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue"); $oStruct->Name = $name; $oStruct->Value = $value; return $oStruct; } function word2pdf($doc_url, $output_url){ $osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.n"); $args = array(MakePropertyValue("Hidden",true,$osm)); $oDesktop = $osm->createInstance("com.sun.star.frame.Desktop"); $oWriterDoc = $oDesktop->loadComponentFromURL($doc_url,"_blank", 0, $args); $export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm)); $oWriterDoc->storeToURL($output_url,$export_args); $oWriterDoc->close(true); } $doc_file = 'D:/wamp/www/onlineread/uploads/docfile.doc'; $output_file = 'D:/wamp/www/onlineread/uploads/pdffile.pdf'; $doc_file = "file:///" . $doc_file; $output_file = "file:///" . $output_file; word2pdf($doc_file,$output_file);2. PDF を swf に変換し、 を表示します。 PHP 実装コード:
<div style="width:100%;height:800px;display:block;margin-left: auto;margin-right: auto; margin-top: 20px;"> <a id="viewerPlaceHolder" style="width:100%;height:800px;display:block;"></a> <script type="text/javascript"> var path="/<?=$convert?>";//调用php的变量,如果不能实现可考虑下一句的写法 //var path="/<?php echo $convert?>"; var fp = new FlexPaperViewer( '__PUBLIC__/FlexPaper/FlexPaperFlash/FlexPaperViewer', 'viewerPlaceHolder', { config : {//配置参数,可自行修改成自己想要的 SwfFile : escape(path), Scale : 1, ZoomTransition : 'easeOut', ZoomTime : 0.5, ZoomInterval : 0.2, FitPageOnLoad : false, FitWidthOnLoad : false, PrintEnabled : true, FullScreenAsMaxWindow : false, ProgressiveLoading : false, MinZoomSize : 0.2, MaxZoomSize : 5, SearchMatchAll : false, InitViewMode : 'Portrait', ViewModeToolsVisible : true, ZoomToolsVisible : true, NavToolsVisible : true, CursorToolsVisible : true, SearchToolsVisible : true, localeChain: 'en_US' }}); </script> </div>3. 実行前の準備 まず以下の設定をしておかないと、動作中にエラーが発生する可能性があります。 [コントロール パネル] - [管理ツール] - [コンポーネント サービス] - [コンピューター] - [マイ コンピューター] - [DOCM 構成] で、OpenOffice Service Manager (Ver 1.0) の右クリック プロパティを見つけて、次のように構成します。 次のように: 図に示すように、OpenOffice Service Manager (Ver 1.0) を見つけます: ポップアップ ボックスで [セキュリティ] を選択し、[スタートアップとアクティベーションのアクセス許可] を編集します。 ' と 'アクセス権限' それぞれ:
## 「スタートアップとアクティベーションの権限」ポップアップボックスで「追加」をクリックし、「Everyone:
#」と入力します。##Everyone のアクセス許可を設定します:
## ポップアップ ボックスで [追加] をクリックし、Everyone:
と入力します## 全員の権限を設定します:
COM クラスのインスタンス化の失敗の問題が発生した場合は、php 構成ファイルを開き、com.allow_dcom=true の前のセミコロンを削除し、extension=php_com_dotnet.dll を追加します。これは、php5.4 以降では com が埋め込まれないためです。
設定後はサービスを再起動することを忘れないでください。
推奨学習: 「PHP ビデオ チュートリアル
」以上がphpオンラインデモ機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。