1 2 前へ 次へ 17 返信 最新の回答 日時: Jul 4, 2011 1:50 AM ユーザー:AK_1

    インスタントWEB公開でPDF表示

    AK_1

      タイトル

      インスタントWEB公開でPDF表示

      フォーラムに投稿

      手書きなどのペーパーメディアをPDF化し各顧客情報(レコード)にリンクさせようとしています。

      その際、Windows7をホストとし、インスタントWEB公開でクライアントからPDF表示をさせようと思っています。

      具体的には、ファイルをクリックすることで、各クライアントのブラウザ内に、PDFの内容が表示(ダウンロードしない)というのを目指しています。

      (PDF表示専用の「レイアウト」を作成し、当該レコードのレイアウト表示を切り替えたら直ぐにプレビューできたら尚良いのですが。。。)

      一応ホストマシンにはAcrobat 9 standardをインストールしてあります。

      どなたか、ご教示ください。

        • 1. Re: インスタントWEB公開でPDF表示
          YODA

          A K さん、こんにちは。

          インスタント Web 公開元の FileMaker Pro のインストール先にある[Web]フォルダか、任意の Web サーバー上に PDF 化されたドキュメントが保存されていれば、該当のドキュメントを表示させる為のパスをWeb ビューアに設定する事で、FMのレイアウト上で PDFファイルの表示が可能です。

          1) PDFのファイルパスを格納する URL のフィールドを作成します。

          2) レイアウト上に Web ビューアを作成し、Webアドレスに 1) のURLフィールドを指定します。

          3) 1) の URL フィールドに、http://<ホストのIP>/ドキュメント名 を入力すると、Web ビューアにPDFが表示されます。

          ※ クライアントマシン(のWebブラウザ)に、Adobe Reader のプラグインがインストールされている必要があります。

          • 2. Re: インスタントWEB公開でPDF表示
            AK_1

            YODA様。毎度お世話になります。

            1)と2)を具体的にどう書けば良いか…Macだとシステム環境設定でWeb共有してから「~/Sites/」とかだと思うのですが,Windowsの場合どこからどう書けば良いのでしょうか。

            パスは「¥」だと思うのですが,Dドライブから書くのであれば「D:」となるのでしょうか?

            よろしくお願いいたします。

            • 3. Re: インスタントWEB公開でPDF表示
              YODA

              A K さん、こんにちは。

              Web ビューアに与えるパスの文字列については、基本的に OS を考慮する必要は無く、http://192.168.0.10/Read Me.pdf のような記述をテキストフィールドに入力(または計算フィールドに文字列を生成)すれば OK です。

              PDFの共有に FileMaker Pro の静的な Web 公開機能を使用する場合は、C:¥Program Files¥FileMaker¥FileMaker Pro 11¥Web フォルダ配下に PDF ファイルを格納しておき、例えば、公開元の FileMaker Pro が動いている PC の IPアドレスが 192.168.0.10 で、C:¥Program Files¥FileMaker¥FileMaker Pro 11¥Web フォルダに Read Me.pdf ファイルが存在していれば、 上記のURLで Web ビューアに PDFが表示されます。(実際には Read Me.pdf ファイルはデフォルトで存在しています。)

              ※ FMP の IWP で、ポート番号を変更している場合は、URLに http://192.168.0.10:591/Read Me.pdf などのポート指定も追加する必要があります。 

              PDFを、Windows の IIS で共有している場合には、Web サーバーのドキュメントの保存先のルートが C:¥inetpub¥wwwroot フォルダ配下になりますので、PDFファイルを wwwroot フォルダに直接配置している場合は、http://<サーバーのアドレス>/<PDFファイル名>.pdf というパスを作成すれば Webビューアに表示できます。

              wwwroot フォルダ配下にサブフォルダを作成されている場合は、http://<サーバーのアドレス>/<サブフォルダ名>/<PDFファイル名>.pdf というパスを作成すれば OK です。

              • 4. Re: インスタントWEB公開でPDF表示
                AK_1

                YODA様。ありがとうございます。

                「OSを配慮する必要は無く」

                なるほどっっ!この仕組み、凄いですね。

                だだ、もう一点教えてほしいのですが、各レコー毎ド(各お客さんの情報)に、それぞれ違うPDFの表示させる場合、どのようにすればよいのでしょうか。

                (各レコード(お客さん)用のPDFファイルは、別途用意してあります。)

                たとえば「Aさん」というお客さんがいて、「Aさん.pdf」のWebビューアを作成し、ブラウザから表示するとAさん含む全員を対象とした「Aさん.pdf」が別ウインドウで無数に開いてしまいました。

                • 5. Re: インスタントWEB公開でPDF表示
                  YODA

                  A K さん、こんにちは。

                  レコード毎に違う PDF を表示させる場合は、PDFファイルのパス(URL)を各レコードにフィールド値として持っておいて、別々な PDFを表示させることが可能です。

                  例:

                  1) PDFファイルのパスを保存するテキストフィールド「PDF_PATH」をつくる。

                  2) FM のレイアウト上に、Web ビューアを作成し、Web アドレスに、「PDF_PATH」フィールドを指定する。

                  3) レコードを複数作成し、各レコードの「PDF_PATH」フィールドに、http://192.168.0.100/A.pdf、http://192.168.0.100/B.pdf、http://192.168.0.100/C.pdf というようにそれぞれのレコードで表示したいPDFのパス(URL)を入力する。

                  ただし、ここで A K さんにお詫びしなければならないことがあります。こちらで試してみた結果、Windows + IE の環境だと、Webビューアに PDFを表示しようとしても、PDFがダウンロードされて Acrobat で開かれてしまいます。 

                  Mac の場合や、Windows 環境でも FireFox や Safari を IWP のクライアントにした場合は Web ビューア内に PDF が表示されるのですが、XP と IE 6/8、Windows 7 の IE 8 などでは PDF はダウンロードされてしまう仕様みたいです。

                  Windows ユーザ向けに IE が使えませんというのはシステムとしては問題があると思いますので、このアイデアでは要望に合わないみたいです。

                  お役に立てず申し訳ありませんでした。

                  • 6. Re: インスタントWEB公開でPDF表示
                    AK_1

                    YODA様、ありがとうございます。

                    ご教示いただいた、「PDF_PATH」は、オブジェクトフィールドではなくテキストフィールドなんですね?

                    これに、「Webビューアでのリンクを作成する」と。そうすると、「http://192.168.0.100/A.pdf」の「A」の部分は手動で、記入しなければならないと思うのですが、現在、レコード数が3300件を超えており、一人分のレコードには複数のPDFファイルが対応するので、少しつらいものがあります(しかも、PDFファイルは日々追加される)。

                    PDFファイルの置く場所はFMのWEBフォルダ内にするとして、各レコードに追加する際は、オブジェクトフィールドのようにファイルをドロップするというような方法で、実現できないものでしょうか。

                    なお、PDFがダウンロードされるIEの問題はFirefoxを使用することで解決しますので、引き続きアドバイスのほどお願いいたします。

                    • 7. Re: インスタントWEB公開でPDF表示
                      YODA

                      A K さん、こんにちは。

                      クライアントが IWP(ブラウザ)でアクセスしてくるという前提ですと、FMの機能的にはクライアントが個々にPDFをDBに登録することはできず、共有元の FM Pro 上で担当者が PDF の登録を行う必要があると思います。

                      PDF登録フローがこれにそぐわないと他に方法が思いつきませんが、共有元の FM Pro 上で作業を行うとして、

                      PDFファイルの登録を随時行われる場合は、

                      1) 登録者用のレイアウトに、登録作業用に使用するオブジェクトフィールドを用意しておく。

                      2) オブジェクトフィールドに PDF ファイルを挿入する。

                      3) オブジェクトフィールド挿入されたPDFファイルのファイル名を取得して、URLフィールドに計算式でパスを生成する。

                      4) 続けてフィールド内容のエクスポートを行って、FM の Webフォルダに該当のPDFファイルをエクスポートする。

                      5) 上記の 3) 4) を連続して実行するスクリプトを作成して、ボタンかトリガで随時実行する。

                      というような方法が考えられたり、

                      PDFファイルの登録を特定のタイミングで一括で行うのであれば、

                      1) PDF登録用の作業フォルダをOS上に作成しておき、登録する PDFファイル群を保存する。

                      2) 作業フォルダ内のPDFファイル名の一覧をdirコマンドなどでテキストファイルとして書き出した後、FM の Web フォルダに移動するバッチファイルを作成しておき実行する。

                      3) FM Pro 上からレコードのインポートで、2)のテキストファイルを読み込んでファイル名を取得し、URLフィールドに計算式でパスを保存する。

                      4) 上記の2)と3)を連続で実行するスクリプトを作成し、ボタンかトリガで定期的に実行する。

                      というような方法が考えられます。

                      PDFのファイル名が、日付+連番など法則性があるのであればパスを計算だけで生成できるかもしれませんが、そうでない場合には上記の 2 パターンのいづれかでPDFの情報を取得する必要があると思います。

                      サードパーティ製のプラグインや、Webベースの他の画像管理システムと連携した構築などを行えば、もっと良いシステムも作りうると思いますが、FMの機能で作れそうなのは、このような方法ではないでしょうか。

                      • 8. Re: インスタントWEB公開でPDF表示
                        AK_1

                        YODA様。

                        一気に登録というのも、難儀なので、まず当初の目的を達成したいと思います。

                        よって、5月18日付アドバイスの「PDF_PATH」の実現をを四苦八苦しています。

                        ファイルパスの作成は

                        「ファイル」「データベースの管理」「フィールドタブ」で適宜作成だと思うのですが、「タイプ」は「テキスト」でOKですよね。

                        「オプション」には何を設定してやればよいのでしょうか。

                        • 9. Re: インスタントWEB公開でPDF表示
                          YODA

                          A K さん、こんにちは。

                          以下のような前提で、サンプルを作成する手順をまとめてみました。

                          <前提条件>

                          ・公開元は、FileMaker Pro 11 の Windows 版 で インスタント Web 公開を行います。

                          ・公開元のパソコンの IP アドレスが、192.168.0.10 だとします。

                          ・公開元のパソコンでは、IIS や Apache など他の Web サービスを動作させていない状態とします。

                          = IWPのポート番号は、デフォルトの80番だとします。

                          ・PDFの登録作業は、FileMaker Pro で行います。

                          <手順>

                          1) 新規DBファイル(ファイル名「Sample」)を作成し、PDF_NAME と PDF_PATH フィールドを作成(どちらもテキストフィールド)します。

                          2) PDF_PATH フィールドのフィールドオプションで、入力値の自動化で計算値を指定して、以下の計算式を設定します。

                          "http://192.168.0.10/" & PDF_NAME

                          計算式の指定画面で、「式内の全フィールドの値が空欄の時、計算しない」はついていてOKです。

                          入力値の自動化の画面で、「フィールドに既存の値が存在する場合は置き換えない(P)」のチェックは外します。

                          3) データベースの管理画面を閉じて、レイアウトモードに移行します。

                          4) レイアウト上に、Webビューアを作成し、Web ビューアの設定画面で、下の方の Web アドレス(W) の枠の横の「指定」ボタンをクリックします。

                          5) 計算式の指定画面が出てくるので、元々入っている Google Map 用の式を消して、PDF_PATH フィールドを左上から指定します。

                          計算式は、以下のようになります。

                          Sample::PDF_PATH

                          「OK」で Web ビューアの設定画面に戻り、さらに「OK」で Web ビューアの設定画面も閉じます。

                          6)レイアウトを保存して、ブラウズモードに切り替えます。

                          7)ファイルメニューから共有設定 > インスタント Web 公開 を選択します。

                          8) インスタント Web 公開を オン にします。

                          現在開いているファイルの枠から、サンプル ファイルを選択し、すべてのユーザ へのアクセスを許可します。

                          「OK」で設定を保存します。

                          9)エクスプローラーで、C:¥Program Files¥FileMaker¥FileMaker Pro 11¥Web フォルダを開きます。

                          Read Me.pdf ファイルが入っていることを確認します。

                          10) FileMaker 上で、新規レコードを作成し、PDF_NAME フィールドに、 Read Me.pdf を入力します。

                          11) PDF_PATH フィールドに、http://192.168.0.10/Read Me.pdf というパスが表示されることを確認します。

                          12) Web ビューアが反応し、Read Me.pdf ファイルがダウンロードされ、Adpre Reader で表示されることを確認します。

                          13) C:¥Program Files¥FileMaker¥FileMaker Pro 11¥Web フォルダに、任意の PDF ファイルをコピーします。

                          14) FileMaker 上で、新規レコードを作成し、PDF_NAME フィールドに、 13)でコピーした PDF ファイル名を入力します。

                          15) Web ビューアが反応し、13)でコピーした PDF ファイルがダウンロードされ、Adpre Reader で表示されることを確認します。

                          16) 手順 13) 〜 15) をいくつか繰り返します。

                          次からは Web クライアント側での作業です。

                          17) FireFox か Safari を起動して、アドレス欄に、http://192.168.0.10/ を入力します。

                          18) インスタント Web 公開 のホームページが出てくるので、「Sample」ファイルを開きます。

                          アカウントは Admin、パスワードは空欄です。

                          19) ブラウザ内の Web ビューアに、Read Me.pdf ファイルが表示されることを確認します。

                          ※ここで IE だと、PDFがダウンロードされてしまいます。

                          20) レコードを移動して、表示が切り替わることを確認します。 

                          文字ばかりで恐縮ですが、FileMaker Pro のインスタント Web 公開を利用して、Webビューアに PDFを表示させるまでの手順をまとめてみました。  

                          IPアドレス等は、ご利用の環境に合わせて変更する必要があると思いますが、ご参考になれば幸いです。

                          • 10. Re: インスタントWEB公開でPDF表示
                            AK_1

                            YODA様。

                            懇切丁寧なアドバイス、ありがとうございます。

                            いただいた、手順でにやりたいことを実現できました。

                            そこで、最後にプラスの質問なのですが、1つのレコードに対して複数のPDFファイルを対応させたい場合、どのようにすればよいのでしょうか。

                            つまり、

                            1-1つのレコードには複数のPDFが対応。

                            2-Webビューアには一つのPDFを表示。

                            を条件に、複数あるPDFファイルのうち、表示させるPDFを指定する方法をご教示いただけないでしょうか。

                            例えば

                            a)PDF_PATHフィールドを複数用意し(「PDF_PATH2...」や「PDF_NAME2...」)、それに対応するボタンをそれぞれのPDF_PATHフィールドに配置。押したボタンのPDFを一つのWebビューアに表示するという方法

                            b)上記a)をラジオボタンで実現

                            c)ドロップダウンメニューに各PDFをセットしておき、選択したPDFが、Webビューアに表示されるという方法

                            など思いつきますが、どれが実現可能な方法でしょうか。

                            • 11. Re: インスタントWEB公開でPDF表示
                              AK_1

                              タブコントロールツールを利用してみました。

                              1つのレコードに対して複数のPDFファイルを対応させるため、まず、「PDF_PATH」と「PDF_NAME」それぞれに10までの番号を付加し、合計で20個のフィールドを作成しました。

                              「タブ1」には「PDF_PATH」「PDF_NAME」「Webビューア」を「タブ2」には「PDF_PATH 2」「PDF_NAME 2」「(PDF_PATH2に対応した)Webビューア」を作成していき、全部で10個のタブを作成しました。

                              最終的にFM11で動作確認したところ、「タブ1」から「タブ10」は同じ挙動でした(YODA様(6/14)記載の(12)番目の挙動)。

                              ここまでは成功かと思ったのですが、Firefoxで開いたところ「タブ2」以降、PDFファイルをダウンロードして開こうとしてしまいます。

                              なんとか一つの「Webビューア」で対応する複数のPDFファイルを切り替えて表示したいのですが...一応、経過報告まで。

                              • 12. Re: インスタントWEB公開でPDF表示
                                AK_1

                                YODAさま、ご覧の皆様ご報告いたします。

                                直前の書き込みでも書きましたように、フィールドに「PDF_PATH 2」「PDF_NAME 2」と「2」の前にスペースを入れていたのですが、このスペースを外し「PDF_PATH2」「PDF_NAME2」としたところ、うまく表示されるようになりました。

                                本当は、1つのレコードに対しPDFファイルが1つ対応しているのか、2つ対応しているのか、タブで切り替えることなく判別できたら最高なんですけど...。

                                もし、知恵を拝借できましたら、引き続きアドバイスお願いします。

                                • 13. Re: インスタントWEB公開でPDF表示
                                  YODA

                                  A K さん、こんにちは。

                                  1つのレコードに PDFファイルを複数登録し、選択した PDF を1つ Webビューアに表示させる場合ですが、

                                  PDF_NAMEフィールドを必要な数だけ増やし、1〜10まで数字が入っているラジオボタンで表示を切り替えるようにする方法は以下になります。

                                  1) 前の状態から、PDF_NAME2 から PDF_NAME10 までのフィールドを追加します。(これはもう作成済みのようですが。)

                                  2) PDF_SELECT フィールド(テキスト or 数字)を作成します。

                                  3) ラジオボタン用に 1 〜 10 までが改行で区切られたカスタム値による新規値一覧を作成します。

                                  4)レイアウト上に PDF_SELECT フィールドを配置して、コントロールスタイルの「コントロールセット」を[ラジオボタンセット]に、「値一覧」を 3) で作成した数字の値一覧に設定します。

                                  5) PDF_PATH の自動入力に設定した計算式を、以下のように変更します。

                                  Choose ( サンプル::PDF_SELECT - 1 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME1 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME2 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME3 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME4 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME5 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME6 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME7 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME8 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME9 ;

                                  "http://192.168.0.10/" & サンプル::PDF_NAME10 )

                                  この作業で、PDF_SELECT フィールドで任意の数字を選択すると、PDF_PATH フィールドの URL が対応するPDFファイル名で書き変わる状態になり、元々の Webビューアに表示される PDFも変更されると思います。 ※ PDF_SELECT を選択していない場合は、PDF_PATH は空欄になります。

                                  • 14. Re: インスタントWEB公開でPDF表示
                                    AK_1

                                    YODA様。毎度懇切丁寧なアドバイス感謝いたします。

                                    アドバイス頂いた、PDF_SELECTフィールドを使った、ラジオボタンによる1つのWebビューア表示を試したところ、以下のような結果となりました。

                                    1-FM上のWebビューアにおいては、「YODA様(6/14)記載の(12)番目の」挙動

                                    2-インスタントWEB公開機能を利用し、クライアント側Webビューアを覗いたところ、ラジオボタンがグレー表示になり、表示の切り替えができなかった。

                                    3-「2」はFMで、例えば「PDF_NEME2」にラジオボタン・ONにしておくと、インスタントWEB公開でも「PDF_PATH2」に強制表示される。

                                    以上の点を踏まえ、当方の記述に間違えがないか見直したのですが、どうしても間違えが発見できませんでした。

                                    一つ確認なのですが、「PDF_NAME」は1から10まで作成したのですが「PDF_PATH」は1だけでよかったのでしょうか。ラジオボタンで作業中、「PDF_PATH」の2から10までを削除してしまいました。

                                    ほか何か、注意する点はありますでしょうか。

                                    なお、PDFのファイル名は漢字が含まれると、Firefoxでもダウンロードされるようです。

                                    1 2 前へ 次へ