How to create PDF File on Share Point Online (Office365)

Seiji Noro
Seiji NoroChief Marketing Officer at Exceedone Co., Ltd
SharePoint Online サンドボックスソリューション開発(PDF編)
                     株式会社エクシード・ワン 野呂清二
   野呂 清二 (のろ せいじ)

   Facebook
    ◦ http://www.facebook.com/home.php#!/seiji.noro

   この資料の場所 Techブログ(Office365アプリ開発)
    ※このアプリのデモサイトについては以下に記載
    ◦ http://tech.exceedone.co.jp/office365-application-develop/

   所属会社
    ◦ 株式会社エクシード・ワン
       http://www.exceedone.co.jp/
    ◦ 最近作った製品:
       http://fad.exceedone.co.jp/

   技術興味
    ◦ アンドロイドラジコン(Android +飛行船+ラジコン制御)
    ◦ Facebook アンドロイドラジコン
       http://www.facebook.com/pages/%E3%82%A2%E3%83%B3%E3%83%89%E3%83
        %AD%E3%82%A4%E3%83%89%E3%83%A9%E3%82%B8%E3%82%B3%E3%83%B3-
        Android-radio-control/215760341816024
   サーバサイドで複雑な処理ができない(サンドボックス)
    ◦   Excelファイルを開いたり、直接SQLサーバへデータの読み書きができない。(SPオブジェクトにしかアクセスできない。)

    ◦   解決案  クライアントサイドでアプリ(Silverlight/JavaScript)を実装し、SPOで不足している機能は外部Webサービスで必要
        な機能を実装する。

   リストのロック(排他制御)ができないので連番の一貫性が保てない (SharePointオンプレミスでも同じ)
    ◦   伝票番号等の連番を取得するときに、同時に複数人からリクエストされるとリストロックできないので同じ番号を取得する可能性
        がある。
    ◦   IDはリストのデータ移行をすると変わるので、他のリストとIDでリレーションする項目には使えない。(サイトテンプレートして保存
        は可能ですが不便)

    ◦   解決案  リストロックをして連番を作る仕組みを作りました。
        http://tech.exceedone.co.jp/office365-application-develop/sharepoint-list-lock-for-sequential-numbe-auto-generator/


   印刷
    ◦   きれいに整形(伝票形式等)したフォーマットで印刷や添付したい。

    ◦   解決案  今回はここを詳しくやります。

   レスポンス
    ◦   クラウドはオンプレミスより遅い。

    ◦   解決案  クライアントサイド(Silverlight/JavaScript)でデータだけ更新するようにする。

   モバイル対応
    ◦   i-phone, Android に対応する方法。(研究中)
   SPOできれいに整形(伝票形式等)したフォーマットで印刷
    や添付したい!けど
    ◦ WebブラウザーにTableタグで作った帳票は印刷がずれる
    ◦ InfopathでPDF添付ファイル作れるの?

   といろいろ考えた結果

   だったらExcelからPDFを作ればいいのでは!
    ◦ と思ったらSPOは制限がきつい、Office365のサンドボックスプロ
      セス上では、SPオブジェクトのアクセスコードしか書けない。

   どうしたらPDFを作れる?
    ◦ 調査を開始したが、世の中にあるSPの資料が、オンプレミスの資料
      がほとんど。あっても英語ばかり。
How to create PDF File on Share Point Online (Office365)
   SharePoint Onlineでサンドボックスソリューションで開発してみたが制限が
    きつかった。
    ◦ サーバサイドPGでは
       ローカルリソース(ファイル等)にアクセスできない
       つまりSharepointオブジェクト以外にはアクセスできない
    ◦ 配置(Deploy)
       サイト定義が使えないサイトTemplateが使えた

   PDFを作成する方法
    ◦ 検索しても方法が見つからないので、諦めて自作することに。Silverlightから外部Web
      サービスアクセス連携を模索してみた。
    ◦ 外部Webサービスは、IIS+Excelなら簡単そうだが、試しにオープンソース
      (Apache+OpenOffice)で作ってみた。
       Apache Basic認証でSilverlightが認証できない独自に認証を作った。

   IE9+SilverlightのWebサービス(SSL)のアクセスエラーにはまる。
    ◦ IE9+SilverlightからWebサービス(SSL)のアクセス中に「クロスドメイン~というエラー」
      がでてはまる正式なSSL証明書を取得して設定したらOKになった。(IE9のセキュリティ
      がきつい)
How to create PDF File on Share Point Online (Office365)
   Office365+Silverlight+外部Web(PDF)サービス
   Office365(MSクラウドサービス)
    ◦ サンドボックスソリューションを配置(WSP)
       サーバサイド
           サンドボックスソリューションオブジェクトモデル
       クライアントサイド
           見積アプリ Webパーツ
             クライアントオブジェクトモデル(Client Object Model)
               Javascript(ECMAScript)
               Silverlight5(C#.NET Managed Code) with Visual Studio2012
             WebサービスASP.NET REST
             外部のデータまたはWebサ-ビス(PDF Webサービスにアクセス)



   PDF Webサービス(自作Webサービス)
           Linux+Apache+OpenSSL+Tomcat+AXIS(WSDL)+自作JAVAプログラム+OpenOffice

   クライアントPC
    ◦ Windows7+IE9.0
1 of 9

More Related Content

More from Seiji Noro(20)

20180630  it engineer_summit20180630  it engineer_summit
20180630 it engineer_summit
Seiji Noro70 views
Ace 20180215Ace 20180215
Ace 20180215
Seiji Noro507 views
20171216 netラボ20171216 netラボ
20171216 netラボ
Seiji Noro88 views
Azure IoT updatesAzure IoT updates
Azure IoT updates
Seiji Noro616 views
How to register connpassHow to register connpass
How to register connpass
Seiji Noro117 views
Ace 20171017Ace 20171017
Ace 20171017
Seiji Noro192 views
Enginner summit201509 snoroEnginner summit201509 snoro
Enginner summit201509 snoro
Seiji Noro1.3K views
Apps for sharePointApps for sharePoint
Apps for sharePoint
Seiji Noro1K views
Office365 api dev 20140802Office365 api dev 20140802
Office365 api dev 20140802
Seiji Noro1.2K views
Office365 api dev_20140624Office365 api dev_20140624
Office365 api dev_20140624
Seiji Noro991 views
20140517 knockoutjs hands-on20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
Seiji Noro3.1K views

How to create PDF File on Share Point Online (Office365)

  • 1. SharePoint Online サンドボックスソリューション開発(PDF編) 株式会社エクシード・ワン 野呂清二
  • 2. 野呂 清二 (のろ せいじ)  Facebook ◦ http://www.facebook.com/home.php#!/seiji.noro  この資料の場所 Techブログ(Office365アプリ開発) ※このアプリのデモサイトについては以下に記載 ◦ http://tech.exceedone.co.jp/office365-application-develop/  所属会社 ◦ 株式会社エクシード・ワン  http://www.exceedone.co.jp/ ◦ 最近作った製品:  http://fad.exceedone.co.jp/  技術興味 ◦ アンドロイドラジコン(Android +飛行船+ラジコン制御) ◦ Facebook アンドロイドラジコン  http://www.facebook.com/pages/%E3%82%A2%E3%83%B3%E3%83%89%E3%83 %AD%E3%82%A4%E3%83%89%E3%83%A9%E3%82%B8%E3%82%B3%E3%83%B3- Android-radio-control/215760341816024
  • 3. サーバサイドで複雑な処理ができない(サンドボックス) ◦ Excelファイルを開いたり、直接SQLサーバへデータの読み書きができない。(SPオブジェクトにしかアクセスできない。) ◦ 解決案  クライアントサイドでアプリ(Silverlight/JavaScript)を実装し、SPOで不足している機能は外部Webサービスで必要 な機能を実装する。  リストのロック(排他制御)ができないので連番の一貫性が保てない (SharePointオンプレミスでも同じ) ◦ 伝票番号等の連番を取得するときに、同時に複数人からリクエストされるとリストロックできないので同じ番号を取得する可能性 がある。 ◦ IDはリストのデータ移行をすると変わるので、他のリストとIDでリレーションする項目には使えない。(サイトテンプレートして保存 は可能ですが不便) ◦ 解決案  リストロックをして連番を作る仕組みを作りました。 http://tech.exceedone.co.jp/office365-application-develop/sharepoint-list-lock-for-sequential-numbe-auto-generator/  印刷 ◦ きれいに整形(伝票形式等)したフォーマットで印刷や添付したい。 ◦ 解決案  今回はここを詳しくやります。  レスポンス ◦ クラウドはオンプレミスより遅い。 ◦ 解決案  クライアントサイド(Silverlight/JavaScript)でデータだけ更新するようにする。  モバイル対応 ◦ i-phone, Android に対応する方法。(研究中)
  • 4. SPOできれいに整形(伝票形式等)したフォーマットで印刷 や添付したい!けど ◦ WebブラウザーにTableタグで作った帳票は印刷がずれる ◦ InfopathでPDF添付ファイル作れるの?  といろいろ考えた結果  だったらExcelからPDFを作ればいいのでは! ◦ と思ったらSPOは制限がきつい、Office365のサンドボックスプロ セス上では、SPオブジェクトのアクセスコードしか書けない。  どうしたらPDFを作れる? ◦ 調査を開始したが、世の中にあるSPの資料が、オンプレミスの資料 がほとんど。あっても英語ばかり。
  • 6. SharePoint Onlineでサンドボックスソリューションで開発してみたが制限が きつかった。 ◦ サーバサイドPGでは  ローカルリソース(ファイル等)にアクセスできない  つまりSharepointオブジェクト以外にはアクセスできない ◦ 配置(Deploy)  サイト定義が使えないサイトTemplateが使えた  PDFを作成する方法 ◦ 検索しても方法が見つからないので、諦めて自作することに。Silverlightから外部Web サービスアクセス連携を模索してみた。 ◦ 外部Webサービスは、IIS+Excelなら簡単そうだが、試しにオープンソース (Apache+OpenOffice)で作ってみた。  Apache Basic認証でSilverlightが認証できない独自に認証を作った。  IE9+SilverlightのWebサービス(SSL)のアクセスエラーにはまる。 ◦ IE9+SilverlightからWebサービス(SSL)のアクセス中に「クロスドメイン~というエラー」 がでてはまる正式なSSL証明書を取得して設定したらOKになった。(IE9のセキュリティ がきつい)
  • 8. Office365+Silverlight+外部Web(PDF)サービス
  • 9. Office365(MSクラウドサービス) ◦ サンドボックスソリューションを配置(WSP)  サーバサイド  サンドボックスソリューションオブジェクトモデル  クライアントサイド  見積アプリ Webパーツ  クライアントオブジェクトモデル(Client Object Model)  Javascript(ECMAScript)  Silverlight5(C#.NET Managed Code) with Visual Studio2012  WebサービスASP.NET REST  外部のデータまたはWebサ-ビス(PDF Webサービスにアクセス)  PDF Webサービス(自作Webサービス)  Linux+Apache+OpenSSL+Tomcat+AXIS(WSDL)+自作JAVAプログラム+OpenOffice  クライアントPC ◦ Windows7+IE9.0