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

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

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

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

PDF

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

Q&A

0回答

2495閲覧

OpenHTMLToPDFで出力したPDFの日本語表示ができない

0zc5843d

総合スコア9

Java

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

PDF

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

0グッド

0クリップ

投稿2019/11/07 09:27

編集2019/11/07 14:18

OpenHTMLToPDFを使用し、HTMLページをPDF出力できるようにしようとしています。
現在、日本語を出力しようとすると、文字化けしてしまい正しく出力できない状態になっています。
お手数をおかけしますが、知識がある方のご意見をお聞きしたいです。

java

1public static void main(String [] args) throws Exception { 2 3 W3CDom w3cDom = new W3CDom(); 4 Document w3cDoc = w3cDom.fromJsoup(Jsoup.parse(readFile())); 5 OutputStream outStream = new FileOutputStream("output/test.pdf"); 6 7 PdfRendererBuilder pdfBuilder = new PdfRendererBuilder(); 8 pdfBuilder.useFastMode(); 9 pdfBuilder.useFont(new File("src/main/resources/fonts/NotoSerif-Regular.ttf"), "noto"); 10 11 pdfBuilder.withW3cDocument(w3cDoc, "/"); 12 pdfBuilder.toStream(outStream); 13 14 pdfBuilder.run(); 15 outStream.close(); 16 17 18 19 } 20 21 private static String readFile() throws IOException { 22 23 InputStream inputStream = new FileInputStream("src/main/resources/test.html"); 24 StringBuilder sb = new StringBuilder(); 25 Reader r = new InputStreamReader(Objects.requireNonNull(inputStream), "UTF-8"); 26 char[] buf = new char[1024]; 27 int amt = r.read(buf); 28 while(amt > 0) { 29 sb.append(buf, 0, amt); 30 amt = r.read(buf); 31 } 32 return sb.toString(); 33 }

html

1 2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3<html lang="ja"> 4<head> 5<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6<link rel="stylesheet" href="style.css" type="text/css"> 7<link rel="stylesheet" href="color_ptn1.css" type="text/css"> 8<title>テスト</title> 9<style> 10@font-face { 11 font-family: 'noto'; /* Note: No trailing format tag is allowed. */ 12 src: url(fonts/NotoSerif-Regular.ttf); 13 font-weight: normal; 14 font-style: normal; 15} 16 17body { 18 /* Fallback fonts are supported. */ 19 font-family: 'noto'; 20} 21</style> 22</head> 23<body> 24 テスト用ページ 25</body> 26<br> 27</html> 28

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

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

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

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

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

ngsvx

2019/11/07 13:49

EUC-JPのファイルをUTF-8で読んでるからでは?
0zc5843d

2019/11/07 14:17

HTMLの文字コードは「EUC-JP」ではなく「UTF-8」です。 何度か文字コードを変えたりと試したのですが、その時のままのものを掲載していました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問