[JAVASCRIPT] PDFをWebブラウザに簡単に表示する方法

PDFをWebブラウザに簡単に表示する備忘録です。

  1. <embed src=”XXX.pdf”></embed>で表示する方法
  2. <object classid=”CLSID:CA8A9780-280D-11CF-A24D-444553540000″ src=”XXX.PDF”></object>で表示する方法

他にも有るかも知れませんが、とりあえず上の2つが簡単です。

ちなみに、動的にPDFファイルを変更して表示したい場合は、JAVASCRIPTを使う事になり、このタグのテーマにやっと沿えます^^;

例は、objectを利用して表示するPDFを動的に表示方法とembedを利用して利用してPDFを動的にする方法を載せています。
適宜簡単な説明が入っているのでなんとなくわかると思います。

ちなみに、objectを利用して表示する方はIEでしか動きません。
embedはIE,chrome共に動きました。

<html>
<head>
  <title>pdftest</title>
  <script type="text/javascript">
    onload = function () {
      var btn1 = document.getElementById("button1");
      btn1.onclick = function () {
        //Divの中身をクリア
        var element = document.getElementById("div_PDF").childNodes[0];
        if(element!=undefined){
          document.getElementById("div_PDF").removeChild(element);
        }

        //OBJECTタグを作成
        var obj = document.createElement('object');
        obj.setAttribute('id', 'objPdf');
        obj.setAttribute('classid', 'clsid:CA8A9780-280D-11CF-A24D-444553540000'); // PDFのクラスID(固定値)
        obj.setAttribute('style', 'width:500px; height:700px;');

        //PDFのソースを設定
        var param = document.createElement('param');
        param.setAttribute('name', 'src');
        param.setAttribute('value', 'http://www.pref.gifu.lg.jp/kurashi/zeikin/kenzei/zeimoku/kojin.data/kifukinkoujo.pdf');
        //param.setAttribute('value', 'PDFのURLを記述');
        obj.appendChild(param);

        //作成したOBJECTタグをDIVタグの中にセット
        var div = document.getElementById("div_PDF");
        div.appendChild(obj);
      }

      var btn2 = document.getElementById("button2");
      btn2.onclick = function () {
        //Divの中身をクリア
        var element = document.getElementById("div_PDF").childNodes[0];
        if (element != undefined) {
          document.getElementById("div_PDF").removeChild(element);
        }

        var emb = document.createElement('embed');
        emb.setAttribute('width', '500');
        emb.setAttribute('height', '700');
        emb.src = "https://www.nta.go.jp/shiraberu/ippanjoho/pamph/inshi/pdf/zeigaku_ichiran.pdf";
        //emb.src ="PDFのURLを記述";

        //作成したOBJECTタグをDIVタグの中にセット
        var div = document.getElementById("div_PDF");
        div.appendChild(emb);
      } 
    }
  </script>
</head>
<body>
  <form id="form1">
    <div id="div_PDF" style="width:520px; height:780px; background:#ccc"></div>
    <input type="button" id="button1" onclick="button1_click" value="object PDF表示" />
    <input type="button" id="button2" onclick="button1_click" value="embed PDF表示"/>
  </form>
</body>
</html>

[ASP.NET] Windows7でIIS Webサーバを利用する

今までは、Windows7でVS2010を使用してWebアプリを開発していた時、他のPCから確認する際はテストサーバに発行してから他のPCで確認する方法を取っていました。
今回、開発PCに直接アクセスするケースが想定されたため、Windows7のIISを利用することしにました。
開発PCに発行するという手も有ったのですが、アクセスしてきたPCの情報確認を取りたかったため、デバッグができる方がよいと考え、そのようにしました。

そこで、Windows7でVS2010からIISをWebサーバにしてデバッグを行う設定を開発備忘録としてメモっておきます。
といっても、実は、途中メモを取らなかったので。。。。

とりあえず、確実にしたことは、
1)IISのインストール
〔コントロールパネル〕→
〔プログラムと機能〕→
〔Windows機能の有効化または無効化〕→
インターネットインフォメーションサービス
デフォルト以外でチェックした項目
・IIS6と互換性のある管理→IISメタベースおよびIIS6構成との互換性
・World Wide Web サービス→ Windows認証

2)Windowsファイアウォールの設定
〔コントロールパネル〕→
〔Windowsファイアウォール〕→
〔Windowsファイアウォールを介したプログラムまたは機能を許可する〕
設定画面が表示されるので、右上の設定の変更ボタンをクリック
一覧の中からWorld Wide Web サービス(HTTP)を探し、許可する
下段のOKボタンをクリック

以上で、他のPCからでもIISへアクセスできるようになり、デバッグも可能となります。

[WinCDEmu] 仮想CD/DVDマウントできない

MSDNやTechNetのISOファイルをインストールする時にお世話になっているWinCDEnumですが、1ファイルだけマウントできない現象に見舞われました。。。

よくよく見ると、ファイル名がマウントできているファイルより長いのがわりました。
そこで、ファイル名を変更し、短くしたところ、マウントできるようになりました^^
良かった良かった^^

[SQLSERVER] SQL SERVER 2012

やっと、SQLSERVER2012をインストールしました。
まだ、使っていませんが、インストールに関してはノーマルインストールでしたのでストレスなくスムーズに出来ました。

使用する予定はしばらくないのですが、どんな感じか確かめるのが楽しみです。

そう言えば、インストールの内容なのか、インストール済のソフトウェアの構成なのか、途中でVisual Studio 2010のDVDを要求されました。なんでかな?

[ASP.NET] ASP.NETのセッションタイムアウトについて

ASP.NETアプリケーションでは必要に応じて、実行時の状態(変数の値)を次回のポストバックの為にSessionプロパティに値を格納
していると思いますが、そのセッションのアイドル状態が何分続くと破棄するかを決めているのがセッションタイムアウトです。

セッションタイムアウトは以下のように指定することができます。

指定の仕方で優先が決まります。下位の設定は上位の設定で上書きされます。
単位は「分」です。

優先1:ページへの記述による設定
    影響範囲は、そのセッション中。ページ毎に上書きも可。もちろん上書き優先。
    aspxに記述        <% Session.Timeout = 120%>
    CodeBehind側に記述  Session.Timeout=120

優先2:global.asaxによる設定
    影響範囲:そのセッション
    Application_Startメソッドに記述
    ※Session_Startメソッド以降の記述は有効化どうか未検証。試した方教えてください。
    Session.Timeout=120

優先3:Web.configによる設定
    影響範囲:そのWebアプリケーション
    <sessionState mode=”InProc” timeout=”120″/>
    modeは、既定値はInProcですが、SQLServerやStateServerなど適宜変更して下さい。
    Offはセッション状態無効です。

優先4:Machine.Config
    影響範囲:マシン全体
 記述はWeb.configと同じ

※WebConfig及びMachine.configの既定の構成
 次の既定の <sessionState> 要素は、Machine.config ファイルまたはルートのWeb.configファイルでは明示的に構成されません。
 ただし、取得を行うと以下の値が返されます。すなわち既定の構成となっています。

 <sessionState
  mode=”InProc”
  stateConnectionString=”tcpip=127.0.0.1:42424″
  stateNetworkTimeout=”10″
  sqlConnectionString=”data source=127.0.0.1;Integrated Security=SSPI”
  sqlCommandTimeout=”30″
  customProvider=””
  cookieless=”UseCookies”
  cookieName=”ASP.NET_SessionId”
  timeout=”20″
  allowCustomSqlDatabase=”false”
  regenerateExpiredSessionId=”true”
  partitionResolverType=””
  useHostingIdentity=”true”>
  <providers>
    <clear />
  </providers>
 </sessionState>

 WebConfig及びMachine.configの既定値で「timeout=”20″ 」となっています。
 何も設定しないとセッションが20分で切れるのはこのためです。

※セッション timeout 構成設定は ASP.NET ページだけに適用されます。ASPページは影響しません。
※ちなみに、「Timeout プロパティを、525,600 分 (1 年) を超える値に設定することはできません。」だそうです。

[ASP.NET] NuGetにつて

NuGetについて

NuGetは、公開されているモジュールを簡単にダウンロード、インストールするパッケージ・マネージャ機能アプリケーションです。
少し言い換えるとNuGetは、「NuGet gallery」で公開されているソフトウェアやライブラリのパッケージを検索、インストール、更新、アンインストールなどを行うためのアプリケーションです。

例えば、公開されているWebアプリケーションを自分で作成しているWebアプリケーションに組み込みたい時に、公開されているWebアプリケーションをNuGetでインストールすると、他に作業を行うこと無く利用可能な環境にしてくれます。
手動でできるからNuGet利用しなくても良いというわけでなく、環境を適切にインストールし、参照パッケージに更新が有った場合も更新してくれるなど人が依るより確実に実施・管理してくれるのが特徴ですので、公開されているパッケージを利用したい場合は利用しない手はないです。

インストールや利用方法は、ネットで検索するといろいろ出てきますので、開発に携わってる方は覗くいて見ることをお勧めします。

Windows7 32bit 利用できないメモリをRamDisk化。。。と思ったら。。。

Windows7 32bit 利用できないメモリをRamDisk化するには、いろいろ手があるみたいだけど、
Free Editionならタダだしー^^「VSuite Ramdisk」が良いみたいと思ったのですが。。。。

で、窓の杜から落とそうとしたら。
   http://www.forest.impress.co.jp/lib/sys/hardcust/virtualdrv/vsuiteramdsk.html
OSがWindows7は対象になっていないようですが??
でここ 「http://www.romexsoftware.com/en-us/index.html」 のDetailsで見ると、

Supported OS
 Supports Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 2008, Windows 7, Window  2008 R2.
 Supports both 32-bit and 64-bit of Windows OSs.
 note: Free Edition only supports Windows 2000/XP(32-bit)/2003(32-bit).

となっているではないですか(TT);

まぁ、慌てていないので、そのうちほかっておいた領域をRamDisk化したいと思います^^
とりあえず、失敗談でした・・・・

[SQL SERVER] SQL SERVER 2012

「SQL SERVER 2012」が発売されました。
TechNetでは事前にダウンロードが出来ましたので、私も早速ダウンロードをしてましたが。。。インストールできるPCが無い^^;
今のところ特に使用する予定は無いけど、新しい物は試したくなりますよね。

「SQL SERVER 2008 R2」を削除してインストールする予定です^^