質問するログイン新規登録

回答編集履歴

1

v5\.2\.0での検証結果を追記しました。

2016/05/13 06:59

投稿

takyafumin
takyafumin

スコア2335

answer CHANGED
@@ -62,4 +62,146 @@
62
62
 
63
63
  あと問題解決をする際は、実際のコード、リソースをもとに「ミニマムコード」にて検証すると良いかと思います。
64
64
  考慮事項が少なくなり問題点がはっきりします。また、こういったサービスでも情報公開しやすくなり、回答もつきやすいかと思います。
65
- * http://blogs.wankuma.com/nagise/archive/2007/12/02/111385.aspx
65
+ * http://blogs.wankuma.com/nagise/archive/2007/12/02/111385.aspx
66
+
67
+ ---
68
+
69
+ ## 追記
70
+
71
+ jasperreports 5.2.0で検証しました。
72
+ * macでの検証
73
+ * 日本語フォントはIPAフォント
74
+ となりますが、動作しました。
75
+
76
+ ソースを記載します。
77
+
78
+ ```Java
79
+ package local.sample.report.servlet.pdf;
80
+
81
+ import java.io.IOException;
82
+ import java.io.InputStream;
83
+ import java.util.HashMap;
84
+ import java.util.Map;
85
+
86
+ import javax.servlet.ServletException;
87
+ import javax.servlet.ServletOutputStream;
88
+ import javax.servlet.annotation.WebServlet;
89
+ import javax.servlet.http.HttpServlet;
90
+ import javax.servlet.http.HttpServletRequest;
91
+ import javax.servlet.http.HttpServletResponse;
92
+
93
+ import org.slf4j.Logger;
94
+ import org.slf4j.LoggerFactory;
95
+
96
+ import net.sf.jasperreports.engine.JREmptyDataSource;
97
+ import net.sf.jasperreports.engine.JRException;
98
+ import net.sf.jasperreports.engine.JasperCompileManager;
99
+ import net.sf.jasperreports.engine.JasperExportManager;
100
+ import net.sf.jasperreports.engine.JasperFillManager;
101
+ import net.sf.jasperreports.engine.JasperPrint;
102
+ import net.sf.jasperreports.engine.JasperReport;
103
+
104
+ /**
105
+ * Servlet implementation class ReportLinebreakServlet
106
+ */
107
+ @WebServlet(name = "ReportLinebreakServlet", urlPatterns = { "/lbreport" })
108
+ public class ReportLinebreakServlet extends HttpServlet {
109
+
110
+ // SUID
111
+ private static final long serialVersionUID = 74432808028667034L;
112
+
113
+ // Logger
114
+ private static final Logger log = LoggerFactory.getLogger(ReportLinebreakServlet.class);
115
+
116
+ /** Jasperファイル */
117
+ private static final String JRXML = "/report/34802.jrxml";
118
+
119
+
120
+ /**
121
+ * @see HttpServlet#HttpServlet()
122
+ */
123
+ public ReportLinebreakServlet() {
124
+ super();
125
+ }
126
+
127
+
128
+ /**
129
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
130
+ */
131
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
132
+ throws ServletException, IOException {
133
+
134
+ // パラメータ作成
135
+ Map<String, Object> parameters = new HashMap<String, Object>();
136
+ parameters.put("text", "”JAVAからセットしました。”改行されて、表示される、といいですね。");
137
+
138
+ try {
139
+
140
+ try (InputStream template = getClass().getResourceAsStream(JRXML)) {
141
+
142
+ // PDF生成
143
+ JasperReport report = JasperCompileManager.compileReport(template);
144
+ JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
145
+
146
+ // 帳票のバイト化
147
+ byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
148
+
149
+ // レスポンス出力
150
+ response.setContentType("application/pdf");
151
+ response.setContentLength(bytes.length);
152
+
153
+ // PDF出力
154
+ ServletOutputStream out = response.getOutputStream();
155
+ out.write(bytes);
156
+ out.flush();
157
+ out.close();
158
+ }
159
+ }
160
+ catch (JRException e) {
161
+ log.error("JRException");
162
+ throw new ServletException(e);
163
+ }
164
+ }
165
+ }
166
+
167
+ ```
168
+
169
+ ```xml
170
+ <?xml version="1.0" encoding="UTF-8"?>
171
+ <!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0 -->
172
+ <!-- 2016-05-13T15:57:17 -->
173
+ <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="34802" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9b8569be-8ebb-4e33-9141-99648267c2a5">
174
+ <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
175
+ <parameter name="text" class="java.lang.String"/>
176
+ <queryString>
177
+ <![CDATA[]]>
178
+ </queryString>
179
+ <detail>
180
+ <band height="125" splitType="Stretch">
181
+ <textField>
182
+ <reportElement key="" x="0" y="10" width="200" height="50" uuid="e5428b67-fc47-400b-8853-137ec78fa119">
183
+ <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
184
+ <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
185
+ <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
186
+ <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
187
+ </reportElement>
188
+ <textElement>
189
+ <font fontName="IPA ゴシック"/>
190
+ </textElement>
191
+ <textFieldExpression><![CDATA["”テストです。”ほげほげ、ふがふが、ほげほげ、ふがふが、ほげほげ、ふがふが、"]]></textFieldExpression>
192
+ </textField>
193
+ <textField>
194
+ <reportElement x="280" y="10" width="200" height="50" uuid="6b829219-af14-4bdb-8564-bc5153e08cb4">
195
+ <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
196
+ <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
197
+ <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
198
+ </reportElement>
199
+ <textElement>
200
+ <font fontName="IPA ゴシック"/>
201
+ </textElement>
202
+ <textFieldExpression><![CDATA[$P{text}]]></textFieldExpression>
203
+ </textField>
204
+ </band>
205
+ </detail>
206
+ </jasperReport>
207
+ ```