Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アプリでPDF機能を実装してダウンロードしてみた

 アプリでPDF機能を実装してダウンロードしてみた

2b67c3578e104daca8c6609e5be43d8d?s=128

balconia.inc

June 29, 2021
Tweet

Transcript

  1. アプリで1%'機能を実装して ダウンロードしてみた。

  2. 2 アプリでPDF機能を実装してダウンロードしてみた。 ▪⽬次 1. ⾃⼰紹介 2. 概要 3. Webの実装で躓いた点 4.

    他の躓いた点
  3. 3 ▪⾃⼰紹介 出⾝は⾹川県 2018年に新卒で⼊社して、現在4年⽬。 主な担当 • Javaを使ったサーバサイドの開発 • Androidアプリの開発など(勉強中) アプリでPDF機能を実装してダウンロードしてみた。

  4. 4 ▪概要 ・スマホやWebで帳票データをPDF表⽰する機能の実装 アプリでPDFダウンロード Web画⾯でPDFを表⽰ iOS, Android swift, kotlin Web

    HTML, CSS, jQuery サーバ Java, Spring, JasperReport アプリでPDF機能を実装してダウンロードしてみた。
  5. 5 ▪Web躓いた点 仕様 Webでは、PDFはダウンロードではなく画⾯に表⽰させたい。 作り SPA、画⾯遷移する時にパスを指定してないので更新したらログ イン画⾯(最初に表⽰させいる画⾯)まで戻ってしまう。 →同⼀タブでPDFを表⽰したら元の画⾯に戻れなくなるため Window.open()使って別タブに表⽰する必要がある。 PDFボタン

    帳票画⾯ 帳票PDF 初期画⾯ (ログイン) アプリでPDF機能を実装してダウンロードしてみた。
  6. 6 ▪Web躓いた点 Window.open()では、 GETするとリクエストURLにユーザIDがブラウザのアドレスバーに表⽰ されてしまう。 カスタムリクエストヘッダーを送れない。 アプリでPDF機能を実装してダウンロードしてみた。 知らんかった🥺

  7. 7 ▪Web躓いた点 GETダメなので、formタグを埋め込んでPOST送信にする必要があった。 formの場合、 コンテントタイプでapplication/jsonがない。 →application/x-www-form-urlencodedを指定。 (サーバサイドではMultiValueMap<String, String>で受け取る。) アプリでPDF機能を実装してダウンロードしてみた。

  8. 8 ▪他の躓いた点 サーバ • Jasper Studtoが重たすぎて全然機能しない→jrxmlを直接編集した。 • PDFは⽂字数でのサイズの調整実装した。Javaのserviceクラスから XMLのタグに属性の付与苦労した。 •

    GETのURLをLineとかに貼り付けてURLをクリックしたりとかのテス トが⾜りてなかった。 アプリでPDF機能を実装してダウンロードしてみた。
  9. 9 ▪他の躓いた点 アプリ • iOS,Android共にファイルダウンロード⽤のhttpClientがなかった。 →両OS共に元々Jsonでの通信のみを想定た作りだった。 • Androidは特に、フォルダへのアクセス権限とか、クッキー情報の受 け渡しの実装が結構⼤変だった。 アプリでPDF機能を実装してダウンロードしてみた。

    勉強の材料になるので⼀⼈で黙々と読んでいきたい。
  10. 10 結論︓ ファイルのダウンロード系は⼤変。 PDF作るのは根気がいる。 アプリでPDF機能を実装してダウンロードしてみた。

  11. 11 以上です︕ アプリでPDF機能を実装してダウンロードしてみた。