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

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

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

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

Q&A

0回答

4643閲覧

PDFBoxでのpdfのテキスト(改行単位での)読み取りについて

hirdd

総合スコア50

Java

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

0グッド

0クリップ

投稿2017/03/12 11:33

PDFBoxライブラリを使用して、pdfに記載されたテキストを改行単位で取得しようと試みているものです。以下にあるjavaソースを用いて、1ページ目のテキストを取得して見たところ、pdf上で見た目上一行になっている箇所で改行が入っていることに気づきました。しかし、そうではなくて、以下の例のような状態で文字列を取得したいのです。

例:
■pdf
これがpdfに記載してある文章で
す。"〜文章で"の後で改行が入る
のは望んでいる状態ではありませ
ん。
上の文の"ん。"で初めて改行が入
って欲しいのです。

■java上の文字列(やりたい事)
これがpdfに記載してある文章です。"〜文章で"の後で改行が入るのは望でいる状態ではありません。\n
上の文の"ん。"で初めて改行が入って欲しいのです。\n

PDFBoxを用いて上のような文字列取得を行う方法はありますでしょうか。ご存知の方、ご教授いただけませんでしょうか??よろしくお願いいたします。

-PDFBoxのバージョン
2.0.4

java

1 1 import java.io.FileInputStream; 2 2 import java.io.File; 3 3 import java.io.IOException; 4 4 import org.apache.pdfbox.text.PDFTextStripper; 5 5 import org.apache.pdfbox.pdfparser.PDFParser; 6 6 import org.apache.pdfbox.pdmodel.PDDocument; 7 7 import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException; 8 8 9 9 10 10 public class CreateCsvFromPdf { 11 11 12 12 public static void main(String[] args) { 13 13 14 14 System.out.println("Start CreateCsvFromPdf"); 15 15 // インプット用のpdfファイル 16 16 String input = args[0]; 17 20 //pdfを読み込む準備 18 21 PDDocument pdf = null; 19 28 20 29 try { 21 30 22 31 PDDocument pdfDocument = PDDocument.load(new File(input)); 23 32 int pageNums = pdfDocument.getNumberOfPages(); 24 33 25 34 PDFTextStripper textStripper = new PDFTextStripper(); 26 35 27 36 //ひとまず、1ページ目の情報を取得してみる。 28 37 int currentPage = 1; 29 38 30 40 textStripper.setStartPage(currentPage); 31 41 textStripper.setEndPage(currentPage); 32 42 33 43 String textOfPdf = textStripper.getText(pdfDocument); 34 44 35 46 System.out.println(textOfPdf); 36 47 37 51 pdfDocument.close(); 38 52 39 53 }catch(InvalidPasswordException e){ 40 54 41 55 System.out.println("InvalidPasswordExceptionが出たよ。"); 42 56 System.out.println(e); 43 61 } 44 62 } 45 63 }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問