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

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

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

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

PDF

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

Q&A

解決済

2回答

4655閲覧

JavaでiTextを使ってPDF出力したいがエラー

KishikawaHideto

総合スコア15

Java

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

PDF

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

0グッド

0クリップ

投稿2018/10/23 07:08

MacでJavaで、iTextを使ってPDF出力しようとしています。
CLASSPATHは、
export CLASSPATH=$CLASSPATH:/Users/xxx/Jar/itext-pdfa-5.4.5.jar:/Users/xxx/Jar/itext-xtra-5.4.5.jar:/Users/xxx/Jar/itextpdf-5.4.5.jar:/Users/xxx/Jar/iTextAsian.jar
です。
ソースは、
import java.io.*;

import com.itextpdf.text.pdf.fonts.;
import com.itextpdf.text.
;
import com.itextpdf.text.pdf.*;

public class PDFTest {
public static void main(String[] args) throws Exception {
FileOutputStream out = null;
BufferedOutputStream bout = null;
PdfWriter writer = null;
Document doc = null;
try
{
out = new FileOutputStream("test.pdf");
bout = new BufferedOutputStream(out);
doc = new Document(new Rectangle(0,0,500,500));
writer = PdfWriter.getInstance(doc, bout);
doc.open();
Font kaku_24 = new Font(BaseFont.createFont(
"HeiseiMin-W3", "UniJIS-UCS2-H",
false),18);
kaku_24.setColor(CMYKColor.RED);
doc.add(new Paragraph("これは、テストです。", kaku_24));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
doc.close();
System.out.println("ended...");
}
}
}

で、実行すると下記エラーが出てしまいます。

java PDFTest
com.itextpdf.text.DocumentException: Font 'HeiseiMin-W3' with 'UniJIS-UCS2-H' is not recognized.
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:714)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:621)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:456)
at PDFTest.main(PDFTest.java:24)
Exception in thread "main" ExceptionConverter: java.io.IOException: The document has no pages.
at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:112)
at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1261)
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:880)
at com.itextpdf.text.Document.close(Document.java:415)
at PDFTest.main(PDFTest.java:36)

環境のせいか、Jarが足りないのか、ご指摘お願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Windowsでは特に問題なく出力されています。
iTextAsianのバージョンが指定されていないのが気になりますね。

私の方で動作確認ができたバージョンは、iText-Asian.5.2.0.jar です。

投稿2018/10/23 14:52

A-pZ

総合スコア12011

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

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

KishikawaHideto

2018/10/23 15:49

iText5,0,0をダウンロードした中に入っていたiTextAsian.jarを使っています。
A-pZ

2018/10/24 03:04

iText5.0.0をダウンロードとありますが、itext-pdfa-5.4.5.jar、itextpdf-5.4.5.jarと書かれているので、だいぶバージョンが異なるようです。 itextの5系でも、マイナーバージョンが異なるとクラスが変更になっているものや、他バージョンとの互換性が変わっているものもありますので、別途 iText-asianのバージョンを変更して試されてはいかがでしょうか。
KishikawaHideto

2018/10/24 04:23

iText-Asian.5.2.0.jarに置き換えたところうまくいきました。ありがとうございました。
A-pZ

2018/10/24 04:45

d(・ω・
guest

0

簡単に検索してみたらずいぶん古い記事しか見つかりませんでした。
解決できるかわかりませんが参考にどうぞ。
http://www.orquesta.org/takegata/Article/ArticleView.jsp?article_id=793

投稿2018/10/23 09:54

dice142

総合スコア5158

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

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

KishikawaHideto

2018/10/23 15:50

こちらの方法については試してみましたが、変わりませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問