/* Antenna House PDF Tool API V8.0 C++ Interface sample program 概要:テキスト抽出(末尾に改行コード挿入) Copyright 2018-2025 Antenna House, Inc. */ #include#include using namespace PdfTk; void extractTextInsertReturn(PtlPage& page); int main(int argc, char* argv[]) { if (argc < 2) { printf("usage: ExtractText.exe in-pdf-file\n"); return 1; } try { PtlParamInput input(argv[1]); PtlPDFDocument doc; // PDFファイルをロードします。 doc.load(input); // ページコンテナの取得 PtlPages& pages = doc.getPages(); if (pages.isEmpty()) { printf("ページコンテナが空\n"); return 1; } // 先頭ページの取得 PtlPage page = pages.get(0); // テキスト抽出 extractTextInsertReturn(page); printf("\n完了!\n"); } catch (const PtlException& e) { fprintf(stderr, "Error code : %d\n %s\n", e.getErrorCode(), e.getErrorMessage().c_str()); return 1; } return 0; } void extractTextInsertReturn(PtlPage& page) { // ページサイズ PtlSize pageSize = page.getSize(); // ページコンテントの取得 PtlContent& content = page.getContent(); // テキスト抽出パラメータ PtlParamExtractText paramExtractText; // 抽出するテキストのタイプを設定(改行はTEXT_SORTの場合のみ有効 paramExtractText.setTextType(PtlParamExtractText::TEXT_TYPE::TEXT_SORT); //改行の挿入を設定 paramExtractText.setInsertReturn(true); // テキスト抽出 PtlParamString text = content.extractText(paramExtractText); printf(text.c_str()); }
PDF Tool APIサンプルコード:行の末尾に改行コード挿入
改行コードを挿入して指定の矩形からテキストを抽出します。
概要
サンプルコードの概要
行の末尾に改行コード挿入してテキスト抽出します。
- PtlContent: ページに描画される内容(コンテント)を表現するクラス
- PtlParamExtractText: ページコンテントからのテキスト抽出処理のパラメータを表現したクラス
- PtlParamExtractText.setTextType(PtlParamExtractText::TEXT_TYPE::TEXT_SORT): 抽出するテキストのタイプを設定
- PtlParamExtractText.setInsertReturn(bool): ページコンテントからのテキスト抽出処理のパラメータを表現したクラス
PtlParamExtractText.setTextTypeでTEXT_SORTを設定した場合のみ有効 - PtlExtractTextResult.getText(): テキスト抽出で指定した矩形内にあった文字を取得
- PtlContent.extractTexts(PtlParamExtractText): コンテントからテキストを抽出
サンプルコード
/*
Antenna House PDF Tool API V8.0
Java Interface sample program
概要:テキスト抽出
Copyright 2025- Antenna House, Inc.
*/
package Sample;
import jp.co.antenna.ptl.PtlContent;
import jp.co.antenna.ptl.PtlException;
import jp.co.antenna.ptl.PtlPDFDocument;
import jp.co.antenna.ptl.PtlPage;
import jp.co.antenna.ptl.PtlPages;
import jp.co.antenna.ptl.PtlParamExtractText;
import jp.co.antenna.ptl.PtlParamInput;
import jp.co.antenna.ptl.PtlSize;
public class ExtractTextInsertReturn {
public static void main(String[] args) {
if (args.length < 1)
{
System.out.println("usage: java ExtractText in-pdf-file");
return;
}
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlPDFDocument doc = new PtlPDFDocument())
{
// PDFファイルをロードします。
doc.load(inputFile);
try (PtlPages pages = doc.getPages()) // ページコンテナの取得
{
// ページコンテナが空かどうか
if (pages.isEmpty())
{
System.out.println("ページコンテナが空");
return;
}
// 1ページ目の取得
try (PtlPage page = pages.get(0))
{
// テキスト抽出
extractTextInsertReturn(page);
}
}
}
catch (PtlException pex) {
System.out.println("PtlException : ErrorCode = " + pex.getErrorCode() + "\n " + pex.getErrorMessage());
}
catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
catch (Error ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally {
System.out.println("-- 完了 --");
}
}
public static void extractTextInsertReturn(PtlPage page) throws PtlException, Exception, Error
{
try (PtlSize pageSize = page.getSize(); // ページサイズの取得
PtlContent content = page.getContent(); // ページコンテントの取得
PtlParamExtractText paramExtractText = new PtlParamExtractText()) // テキスト抽出パラメータ
{
// 抽出するテキストのタイプを設定(改行はTEXT_SORTの場合のみ有効
paramExtractText.setTextType(PtlParamExtractText.TEXT_TYPE.TEXT_SORT);
//改行の挿入を設定
paramExtractText.setInsertReturn(true);
// テキスト抽出
String text = content.extractText(paramExtractText);
System.out.println(text);
}
}
}
/*
Antenna House PDF Tool API V8.0
.NET Interface sample program
概要:テキスト抽出:行の末尾に改行コード挿入
Copyright 2025- Antenna House, Inc.
*/
using System;
using PdfTkNet;
namespace ExtractTextInsertReturn
{
internal class ExtractTextInsertReturn
{
static void Main(string[] args)
{
if (args.Length < 1)
{
Console.WriteLine("usage: ExtractTextInsertReturn.exe in-pdf-file");
return;
}
try
{
using (PtlParamInput inputFile = new PtlParamInput(args[0])) //元PDF
using (PtlPDFDocument doc = new PtlPDFDocument())
{
// PDFファイルをロードします。
doc.load(inputFile);
using (PtlPages pages = doc.getPages())
{
//ページコンテナが空かどうか
if (pages.isEmpty())
{
Console.WriteLine("ページコンテナが空");
return;
}
using (PtlPage page = pages.get(0)) // 先頭ページ
{
// テキスト抽出
extractTextInsertReturn(page);
}
}
}
}
catch (PtlException pex)
{
Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP());
pex.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("-- 完了 --");
}
}
static void extractTextInsertReturn(PtlPage page)
{
using (PtlSize pageSize = page.getSize()) // ページサイズの取得
using (PtlContent content = page.getContent()) // ページコンテントの取得
using (PtlParamExtractText paramExtractText = new PtlParamExtractText()) // テキスト抽出パラメータ
{
// 抽出するテキストのタイプを設定(改行はTEXT_SORTの場合のみ有効
paramExtractText.setTextType(PtlParamExtractText.TEXT_TYPE.TEXT_SORT);
//改行の挿入を設定
paramExtractText.setInsertReturn(true);
// テキスト抽出
String text = content.extractText(paramExtractText);
Console.WriteLine(text);
}
}
}
}
実行例
コマンドラインでの実行例
ExtractTextInsertReturn.exe C:\in\wag.pdf
吾輩(わがはい)は猫である。名前はまだ無い。
どこで生れたかとんと見当(けんとう)がつかぬ。
何でも薄暗いじめじめした所でニャーニャー泣いて
いた事だけは記
憶している。吾輩
はここで始めて
人間というもの
を見た。しかもあ
とで聞くとそれ
は書生という人
間中で一番獰悪
(どうあく)な種
族であったそう
だ。この書生とい
うのは時々我々
を捕(つかま)えて煮(に)て食うという話である。
しかしその当時は何という考もなかったから別段恐
しいとも思わなかった。ただ彼の掌(てのひら)に載
せられてスーと持ち上げられた時何だかフワフワし
た感じがあったばかりである。掌の上で少し落ちつい
て書生の顔を見たのがいわゆる人間というものの見
始(みはじめ)であろう。この時妙なものだと思った
感じが今でも残っている。第一毛をもって装飾されべ
きはずの顔がつるつるしてまるで薬缶(やかん)だ。
その後(ご)猫にもだいぶ逢(あ)ったがこんな片輪
(かたわ)には一度も出会(でく)わした事がない。
のみならず顔の真中があまりに突起している。そうし
てその穴の中から時々ぷうぷうと煙(けむり)を吹く。
どうも咽(む)せぽくて実に弱った。これが人間の飲
む煙草(たばこ)というものである事はようやくこの
頃知った。
この書生の掌の裏(うち)でしばらくはよい心持に
坐っておったが、しばらくすると非常な速力で運転し
始めた。書生が動くのか自分だけが動くのか分らない
が無暗(むやみ)に眼が廻る。胸が悪くなる。到底(
夏目漱石吾輩は猫である
我儘(わがまま)で思い出したからちょっと吾輩の家の主人がこの我儘で失敗した話をしよう・元来この主人は何といって人に勝
(すぐ)れて出来る事もないが・何にでもよく手を出したがる・俳句をやってほととぎすへ投書をしたり・新体詩を明星へ出したり・
間違いだらけの英文をかいたり・時によると弓に凝(こ)ったり・謡(うたい)を習ったり・またあるときはヴァイオリンなどをブー
ブー鳴らしたりするが・気の毒な事には・どれもこれも物になっておらん・
と
・それから・とてもなめくじや蛙は食
おうっても食えやしないから・まあト
チメンボーくらいなところで負けとく
事にしようじゃないか君と御相談なさ
るものですから・私はつい何の気なし
に・それがいいでしょう・といってしま
ったので・・へー・とちめんぼうは妙で
すな・
完了!
java -jar ExtractTextInsertReturn.jar C:\in\wag.pdf 吾輩(わがはい)は猫である。名前はまだ無い。 どこで生れたかとんと見当(けんとう)がつかぬ。 何でも薄暗いじめじめした所でニャーニャー泣いて いた事だけは記 憶している。吾輩 はここで始めて 人間というもの を見た。しかもあ とで聞くとそれ は書生という人 間中で一番獰悪 (どうあく)な種 族であったそう だ。この書生とい うのは時々我々 を捕(つかま)えて煮(に)て食うという話である。 しかしその当時は何という考もなかったから別段恐 しいとも思わなかった。ただ彼の掌(てのひら)に載 せられてスーと持ち上げられた時何だかフワフワし た感じがあったばかりである。掌の上で少し落ちつい て書生の顔を見たのがいわゆる人間というものの見 始(みはじめ)であろう。この時妙なものだと思った 感じが今でも残っている。第一毛をもって装飾されべ きはずの顔がつるつるしてまるで薬缶(やかん)だ。 その後(ご)猫にもだいぶ逢(あ)ったがこんな片輪 (かたわ)には一度も出会(でく)わした事がない。 のみならず顔の真中があまりに突起している。そうし てその穴の中から時々ぷうぷうと煙(けむり)を吹く。 どうも咽(む)せぽくて実に弱った。これが人間の飲 む煙草(たばこ)というものである事はようやくこの 頃知った。 この書生の掌の裏(うち)でしばらくはよい心持に 坐っておったが、しばらくすると非常な速力で運転し 始めた。書生が動くのか自分だけが動くのか分らない が無暗(むやみ)に眼が廻る。胸が悪くなる。到底( 夏目漱石吾輩は猫である 我儘(わがまま)で思い出したからちょっと吾輩の家の主人がこの我儘で失敗した話をしよう?元来この主人は何といって人に勝 (すぐ)れて出来る事もないが?何にでもよく手を出したがる?俳句をやってほととぎすへ投書をしたり?新体詩を明星へ出したり? 間違いだらけの英文をかいたり?時によると弓に凝(こ)ったり?謡(うたい)を習ったり?またあるときはヴァイオリンなどをブー ブー鳴らしたりするが?気の毒な事には?どれもこれも物になっておらん? と ?それから?とてもなめくじや蛙は食 おうっても食えやしないから?まあト チメンボーくらいなところで負けとく 事にしようじゃないか君と御相談なさ るものですから?私はつい何の気なし に?それがいいでしょう?といってしま ったので??へー?とちめんぼうは妙で すな? -- 完了 --
ExtractTextInsertReturn.exe C:\in\wag.pdf 吾輩(わがはい)は猫である。名前はまだ無い。 どこで生れたかとんと見当(けんとう)がつかぬ。 何でも薄暗いじめじめした所でニャーニャー泣いて いた事だけは記 憶している。吾輩 はここで始めて 人間というもの を見た。しかもあ とで聞くとそれ は書生という人 間中で一番獰悪 (どうあく)な種 族であったそう だ。この書生とい うのは時々我々 を捕(つかま)えて煮(に)て食うという話である。 しかしその当時は何という考もなかったから別段恐 しいとも思わなかった。ただ彼の掌(てのひら)に載 せられてスーと持ち上げられた時何だかフワフワし た感じがあったばかりである。掌の上で少し落ちつい て書生の顔を見たのがいわゆる人間というものの見 始(みはじめ)であろう。この時妙なものだと思った 感じが今でも残っている。第一毛をもって装飾されべ きはずの顔がつるつるしてまるで薬缶(やかん)だ。 その後(ご)猫にもだいぶ逢(あ)ったがこんな片輪 (かたわ)には一度も出会(でく)わした事がない。 のみならず顔の真中があまりに突起している。そうし てその穴の中から時々ぷうぷうと煙(けむり)を吹く。 どうも咽(む)せぽくて実に弱った。これが人間の飲 む煙草(たばこ)というものである事はようやくこの 頃知った。 この書生の掌の裏(うち)でしばらくはよい心持に 坐っておったが、しばらくすると非常な速力で運転し 始めた。書生が動くのか自分だけが動くのか分らない が無暗(むやみ)に眼が廻る。胸が悪くなる。到底( 夏目漱石吾輩は猫である 我儘(わがまま)で思い出したからちょっと吾輩の家の主人がこの我儘で失敗した話をしよう?元来この主人は何といって人に勝 (すぐ)れて出来る事もないが?何にでもよく手を出したがる?俳句をやってほととぎすへ投書をしたり?新体詩を明星へ出したり? 間違いだらけの英文をかいたり?時によると弓に凝(こ)ったり?謡(うたい)を習ったり?またあるときはヴァイオリンなどをブー ブー鳴らしたりするが?気の毒な事には?どれもこれも物になっておらん? と ?それから?とてもなめくじや蛙は食 おうっても食えやしないから?まあト チメンボーくらいなところで負けとく 事にしようじゃないか君と御相談なさ るものですから?私はつい何の気なし に?それがいいでしょう?といってしま ったので??へー?とちめんぼうは妙で すな? -- 完了 --
出力結果イメージ
出力された文章が改行されています。


