質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

解決済

1回答

4021閲覧

PDFにダウンロードする処理を書きたい

y_matsumoto

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

0グッド

0クリップ

投稿2017/08/07 07:42

前提・実現したいこと
PDFに処理内容を書き込み、書き込んだ内容をダウンロードする処理を書きたいです。
書き込み処理は書くことができましたが、PDFのダウンロード処理は、
うまく書くことができず、ダウンロードすることができませんでした。
申し訳ありませんが何が原因でダウンロードができないか、ご教授いただきたく存じます。

該当のソースコード

java

1 File file = new File("c:\\sample.pdf"); 2 BufferedInputStream in = null; 3 BufferedOutputStream out = null; 4 try { 5 //HTTPヘッダの出力 6 res.setContentType("application/octet-stream"); 7 res.setHeader("Content-disposition", "attachment; filename=sample.pdf"); 8 9 in = new BufferedInputStream(new FileInputStream(file)); 10 out = new BufferedOutputStream(res.getOutputStream()); 11 byte buf[] = new byte[1024]; 12 int len; 13 14 while ((len = in.read(buf)) != -1) { 15 out.write(buf, 0, len); 16 } 17 18 } catch (SocketException e) { 19 20 } catch (Exception e) { 21 //ファイルダウンロード用のHTTPヘッダをリセットします。 22 res.reset(); 23 res.sendError(HttpURLConnection.HTTP_INTERNAL_ERROR, e.toString()); 24 } finally { 25 if (in != null) { 26 in.close(); 27 } 28 if (out != null) { 29 out.flush(); 30 out.close(); 31 } 32 }

補足情報(言語/FW/ツール等のバージョンなど)
コンソールにて、エラーメッセージはでておりません。

Java8 eclipse4.5で開発しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

num79kill

2017/08/07 10:55

エラーを握りつぶす場合、コンソールなどに出力してください
guest

回答1

0

ベストアンサー

お疲れさまです。
PDF形式で保存した"sample.pdf"を上記のプログラムを使って読む、ということでしょうか。
それだと無理だと思います。発想は斬新ですが。

一般的にプログラムに関する設定データなどは一定のフォーマット(データの並び順)で記載します。そしてこのファイルはバイナリエディタなどのソフトを使えば、読んで内容を把握することができます。(できないのものありますが。)

しかし、仮に1行だけのデータをpdf形式に保存した場合でも、バイナリエディタで読むことは可能でも、内容を把握することは不可能だと思います。
想像ですが、pdf形式で保存したファイルは少なくともA4一枚分などのデータとして保存し、「adobe reader」など専用のソフトウェアで「内容を表示する」。その表示されたものを人が見て初めて内容を把握すること(人間が理解すること)が可能になると思います。したがって画像ファイルと同じようなものとも考えられます。(pdf形式についてうまく説明できません。)
このようなことから上記のプログラムでpdfファイルを読むことは難しいと思います。

ただ、翻訳ソフトなどでは看板などにカメラを向けると自動的に翻訳してくれる機能もあるので、頑張ればできるかもしれません。

投稿2017/08/10 00:20

senior_golfer

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問