|
@ -7,6 +7,8 @@ import java.sql.Connection;
|
7
|
7
|
import java.sql.PreparedStatement;
|
8
|
8
|
import java.sql.ResultSet;
|
9
|
9
|
import java.sql.SQLException;
|
|
10
|
import java.util.Collections;
|
|
11
|
import java.util.Comparator;
|
10
|
12
|
|
11
|
13
|
import javax.servlet.ServletException;
|
12
|
14
|
import javax.servlet.http.HttpServlet;
|
|
@ -47,7 +49,6 @@ import com.itextpdf.layout.element.ListItem;
|
47
|
49
|
import com.itextpdf.layout.element.Paragraph;
|
48
|
50
|
import com.itextpdf.layout.element.Text;
|
49
|
51
|
|
50
|
|
|
51
|
52
|
/**
|
52
|
53
|
* Servlet implementation class ProfessorPdfServlet
|
53
|
54
|
*/
|
|
@ -60,14 +61,50 @@ public class ProfessorPdfServlet extends HttpServlet {
|
60
|
61
|
public static final float TEXT_FONT_SIZE = 10f;
|
61
|
62
|
public static final float LINE_INTERVAL_L = 2.5f;
|
62
|
63
|
public static final float LINE_INTERVAL_M = 2.15f;
|
63
|
|
|
64
|
|
|
|
64
|
|
65
|
65
|
private DataSource dataSource;
|
66
|
66
|
|
67
|
67
|
public ProfessorPdfServlet() {
|
68
|
68
|
super();
|
69
|
69
|
}
|
70
|
70
|
|
|
71
|
private void sortPaperAndPatent(ViewBean vb) {
|
|
72
|
final String name = vb.getName() + ",";
|
|
73
|
|
|
74
|
java.util.List<Ppaper> ppas = vb.getPapers();
|
|
75
|
if (ppas != null && ppas.size() > 1) {
|
|
76
|
Collections.sort(ppas, new Comparator<Ppaper>() {
|
|
77
|
@Override
|
|
78
|
public int compare(Ppaper o1, Ppaper o2) {
|
|
79
|
boolean f1 = (o1.getAuthors().indexOf(',') < 0) || o1.getAuthors().startsWith(name);
|
|
80
|
boolean f2 = (o2.getAuthors().indexOf(',') < 0) || o2.getAuthors().startsWith(name);
|
|
81
|
if (f1 == f2) {
|
|
82
|
return -(o1.getPubDay().compareTo(o2.getPubDay()));
|
|
83
|
} else {
|
|
84
|
return f1 ? -1 : 1;
|
|
85
|
}
|
|
86
|
}
|
|
87
|
});
|
|
88
|
}
|
|
89
|
|
|
90
|
java.util.List<Ppatent> ppts = vb.getPatents();
|
|
91
|
if (ppts != null && ppts.size() > 1) {
|
|
92
|
Collections.sort(ppts, new Comparator<Ppatent>() {
|
|
93
|
@Override
|
|
94
|
public int compare(Ppatent o1, Ppatent o2) {
|
|
95
|
boolean f1 = (o1.getAuthors().indexOf(',') < 0) || o1.getAuthors().startsWith(name);
|
|
96
|
boolean f2 = (o2.getAuthors().indexOf(',') < 0) || o2.getAuthors().startsWith(name);
|
|
97
|
if (f1 == f2) {
|
|
98
|
return -(o1.getPubDay().compareTo(o2.getPubDay()));
|
|
99
|
} else {
|
|
100
|
return f1 ? -1 : 1;
|
|
101
|
}
|
|
102
|
}
|
|
103
|
});
|
|
104
|
}
|
|
105
|
|
|
106
|
}
|
|
107
|
|
71
|
108
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
72
|
109
|
String id = request.getParameter("id");
|
73
|
110
|
boolean isDL = "1".equals(request.getParameter("_dl"));
|
|
@ -83,6 +120,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
83
|
120
|
response.sendError(404);
|
84
|
121
|
return;
|
85
|
122
|
}
|
|
123
|
sortPaperAndPatent(vb);
|
86
|
124
|
byte[] obs = this.buildPdf(vb);
|
87
|
125
|
response.setContentType("application/pdf");
|
88
|
126
|
if (isDL) {
|
|
@ -114,25 +152,25 @@ public class ProfessorPdfServlet extends HttpServlet {
|
114
|
152
|
cnFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
|
115
|
153
|
enFont = PdfFontFactory.createFont();
|
116
|
154
|
|
117
|
|
Document doc = this.createDocument(os,cnFont,enFont);
|
|
155
|
Document doc = this.createDocument(os, cnFont, enFont);
|
118
|
156
|
try {
|
119
|
|
addName(doc, vb.getName(), vb.getTitle(),cnFont,enFont);
|
120
|
|
addOrg(doc, vb.getOrgName(), vb.getDep(), vb.getOffice(),cnFont,enFont);
|
121
|
|
addLinkData(doc,vb.getPhone(), vb.getEmail(), vb.getCity(), cnFont, enFont);
|
122
|
|
addDescp(doc, vb.getDescp(),cnFont,enFont);
|
123
|
|
|
124
|
|
addReseachArea(doc, vb.getReseachAreas(),cnFont,enFont);
|
|
157
|
addName(doc, vb.getName(), vb.getTitle(), cnFont, enFont);
|
|
158
|
addOrg(doc, vb.getOrgName(), vb.getDep(), vb.getOffice(), cnFont, enFont);
|
|
159
|
addLinkData(doc, vb.getPhone(), vb.getEmail(), vb.getCity(), cnFont, enFont);
|
|
160
|
addDescp(doc, vb.getDescp(), cnFont, enFont);
|
125
|
161
|
|
126
|
|
addProject(doc, vb.getProjects(),cnFont,enFont);
|
|
162
|
addReseachArea(doc, vb.getReseachAreas(), cnFont, enFont);
|
127
|
163
|
|
128
|
|
addHonor(doc, vb.getHonors(),cnFont,enFont);
|
|
164
|
addProject(doc, vb.getProjects(), cnFont, enFont);
|
129
|
165
|
|
130
|
|
addJob(doc, vb.getJobs(),cnFont,enFont);
|
|
166
|
addHonor(doc, vb.getHonors(), cnFont, enFont);
|
131
|
167
|
|
132
|
|
addEdu(doc, vb.getEds(),cnFont,enFont);
|
|
168
|
addJob(doc, vb.getJobs(), cnFont, enFont);
|
133
|
169
|
|
134
|
|
addPatent(doc, vb.getPatents(),cnFont,enFont);
|
135
|
|
addPaper(doc, vb.getPapers(),cnFont,enFont);
|
|
170
|
addEdu(doc, vb.getEds(), cnFont, enFont);
|
|
171
|
|
|
172
|
addPatent(doc, vb.getPatents(), cnFont, enFont);
|
|
173
|
addPaper(doc, vb.getPapers(), cnFont, enFont);
|
136
|
174
|
doc.flush();
|
137
|
175
|
|
138
|
176
|
} finally {
|
|
@ -143,11 +181,11 @@ public class ProfessorPdfServlet extends HttpServlet {
|
143
|
181
|
return os.toByteArray();
|
144
|
182
|
}
|
145
|
183
|
|
146
|
|
private void addName(Document doc, String name, String title,PdfFont cnFont,PdfFont enFont) {
|
|
184
|
private void addName(Document doc, String name, String title, PdfFont cnFont, PdfFont enFont) {
|
147
|
185
|
Paragraph pg = new Paragraph();
|
148
|
|
addText(pg, name, 20f,cnFont,enFont);
|
|
186
|
addText(pg, name, 20f, cnFont, enFont);
|
149
|
187
|
if (title != null && title.length() > 0) {
|
150
|
|
addText(pg, " " + title, 12f,cnFont,enFont);
|
|
188
|
addText(pg, " " + title, 12f, cnFont, enFont);
|
151
|
189
|
}
|
152
|
190
|
pg.setFontColor(RGB3);
|
153
|
191
|
pg.setMargin(0f);
|
|
@ -155,7 +193,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
155
|
193
|
doc.add(pg);
|
156
|
194
|
}
|
157
|
195
|
|
158
|
|
private void addOrg(Document doc, String org, String dep, String office,PdfFont cnFont,PdfFont enFont) {
|
|
196
|
private void addOrg(Document doc, String org, String dep, String office, PdfFont cnFont, PdfFont enFont) {
|
159
|
197
|
StringBuilder sb = new StringBuilder();
|
160
|
198
|
sb.append(org);
|
161
|
199
|
if (dep != null && dep.length() > 0) {
|
|
@ -169,38 +207,39 @@ public class ProfessorPdfServlet extends HttpServlet {
|
169
|
207
|
pg.setFontColor(RGB3);
|
170
|
208
|
pg.setMargin(0f);
|
171
|
209
|
pg.setMultipliedLeading(LINE_INTERVAL_L);
|
172
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
210
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
173
|
211
|
doc.add(pg);
|
174
|
212
|
}
|
175
|
|
private void addLinkData(Document doc,String phone,String email,String city,PdfFont cnFont,PdfFont enFont){
|
|
213
|
|
|
214
|
private void addLinkData(Document doc, String phone, String email, String city, PdfFont cnFont, PdfFont enFont) {
|
176
|
215
|
StringBuilder sb = new StringBuilder();
|
177
|
|
if(phone!=null && phone.trim().length()>0){
|
|
216
|
if (phone != null && phone.trim().length() > 0) {
|
178
|
217
|
sb.append(phone.trim());
|
179
|
218
|
}
|
180
|
|
if(email!=null && email.trim().length()>0){
|
181
|
|
if(sb.length()>0){
|
|
219
|
if (email != null && email.trim().length() > 0) {
|
|
220
|
if (sb.length() > 0) {
|
182
|
221
|
sb.append(" | ");
|
183
|
222
|
}
|
184
|
223
|
sb.append(email.trim());
|
185
|
224
|
}
|
186
|
|
if(city!=null && city.trim().length()>0){
|
187
|
|
if(sb.length()>0){
|
|
225
|
if (city != null && city.trim().length() > 0) {
|
|
226
|
if (sb.length() > 0) {
|
188
|
227
|
sb.append(" | ");
|
189
|
228
|
}
|
190
|
229
|
sb.append(city.trim());
|
191
|
230
|
}
|
192
|
|
if(sb.length()>0){
|
|
231
|
if (sb.length() > 0) {
|
193
|
232
|
Paragraph pg = new Paragraph();
|
194
|
233
|
pg.setFontSize(TEXT_FONT_SIZE);
|
195
|
234
|
pg.setFontColor(RGB9);
|
196
|
235
|
pg.setMargin(0f);
|
197
|
236
|
pg.setMultipliedLeading(LINE_INTERVAL_L);
|
198
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
237
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
199
|
238
|
doc.add(pg);
|
200
|
239
|
}
|
201
|
240
|
}
|
202
|
241
|
|
203
|
|
private void addTitle(Document doc, String title,PdfFont cnFont,PdfFont enFont) {
|
|
242
|
private void addTitle(Document doc, String title, PdfFont cnFont, PdfFont enFont) {
|
204
|
243
|
Div div = new Div();
|
205
|
244
|
div.setWidthPercent(100f);
|
206
|
245
|
div.setBorderTop(new SolidBorder(RGB9, 1f));
|
|
@ -208,26 +247,26 @@ public class ProfessorPdfServlet extends HttpServlet {
|
208
|
247
|
div.setMargins(10f, 0f, 10f, 0f);
|
209
|
248
|
doc.add(div);
|
210
|
249
|
Paragraph pg = createParagraph(TITLE_FONT_SIZE, RGB9);
|
211
|
|
addText(pg, title, null,cnFont,enFont);
|
|
250
|
addText(pg, title, null, cnFont, enFont);
|
212
|
251
|
doc.add(pg);
|
213
|
252
|
}
|
214
|
253
|
|
215
|
|
private void addDescp(Document doc, String descp,PdfFont cnFont,PdfFont enFont) {
|
|
254
|
private void addDescp(Document doc, String descp, PdfFont cnFont, PdfFont enFont) {
|
216
|
255
|
if (descp != null && descp.length() > 0) {
|
217
|
|
addTitle(doc, "个人简介",cnFont,enFont);
|
|
256
|
addTitle(doc, "个人简介", cnFont, enFont);
|
218
|
257
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
219
|
|
addText(pg, descp, null,cnFont,enFont);
|
|
258
|
addText(pg, descp, null, cnFont, enFont);
|
220
|
259
|
doc.add(pg);
|
221
|
260
|
}
|
222
|
261
|
}
|
223
|
262
|
|
224
|
|
private void addReseachArea(Document doc, java.util.List<String> ras,PdfFont cnFont,PdfFont enFont) {
|
|
263
|
private void addReseachArea(Document doc, java.util.List<String> ras, PdfFont cnFont, PdfFont enFont) {
|
225
|
264
|
if (ras != null && ras.size() > 0) {
|
226
|
|
addTitle(doc, "研究方向",cnFont,enFont);
|
|
265
|
addTitle(doc, "研究方向", cnFont, enFont);
|
227
|
266
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
228
|
267
|
for (String s : ras) {
|
229
|
268
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
230
|
|
addText(pg, s, null,cnFont,enFont);
|
|
269
|
addText(pg, s, null, cnFont, enFont);
|
231
|
270
|
ListItem li = new ListItem();
|
232
|
271
|
li.add(pg);
|
233
|
272
|
list.add(li);
|
|
@ -236,14 +275,14 @@ public class ProfessorPdfServlet extends HttpServlet {
|
236
|
275
|
}
|
237
|
276
|
}
|
238
|
277
|
|
239
|
|
private void addProject(Document doc, java.util.List<Project> projects,PdfFont cnFont,PdfFont enFont) {
|
|
278
|
private void addProject(Document doc, java.util.List<Project> projects, PdfFont cnFont, PdfFont enFont) {
|
240
|
279
|
if (projects != null && projects.size() > 0) {
|
241
|
|
addTitle(doc, "项目经历",cnFont,enFont);
|
|
280
|
addTitle(doc, "项目经历", cnFont, enFont);
|
242
|
281
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
243
|
282
|
for (Project p : projects) {
|
244
|
283
|
ListItem li = new ListItem();
|
245
|
284
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
246
|
|
addText(pg, p.getName(), null,cnFont,enFont);
|
|
285
|
addText(pg, p.getName(), null, cnFont, enFont);
|
247
|
286
|
li.add(pg);
|
248
|
287
|
String bm = p.getStartMonth();
|
249
|
288
|
String em = p.getStopMonth();
|
|
@ -256,13 +295,13 @@ public class ProfessorPdfServlet extends HttpServlet {
|
256
|
295
|
sb.append("至今");
|
257
|
296
|
}
|
258
|
297
|
pg = createParagraph(TEXT_FONT_SIZE, RGB9);
|
259
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
298
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
260
|
299
|
li.add(pg);
|
261
|
300
|
}
|
262
|
301
|
String descp = p.getDescp();
|
263
|
302
|
if (descp != null && descp.length() > 0) {
|
264
|
303
|
pg = createParagraph(TEXT_FONT_SIZE, RGB9);
|
265
|
|
addText(pg, descp, null,cnFont,enFont);
|
|
304
|
addText(pg, descp, null, cnFont, enFont);
|
266
|
305
|
li.add(pg);
|
267
|
306
|
}
|
268
|
307
|
list.add(li);
|
|
@ -271,25 +310,25 @@ public class ProfessorPdfServlet extends HttpServlet {
|
271
|
310
|
}
|
272
|
311
|
}
|
273
|
312
|
|
274
|
|
private void addHonor(Document doc, java.util.List<Honor> honors,PdfFont cnFont,PdfFont enFont) {
|
|
313
|
private void addHonor(Document doc, java.util.List<Honor> honors, PdfFont cnFont, PdfFont enFont) {
|
275
|
314
|
if (honors != null && honors.size() > 0) {
|
276
|
|
addTitle(doc, "荣誉奖项",cnFont,enFont);
|
|
315
|
addTitle(doc, "荣誉奖项", cnFont, enFont);
|
277
|
316
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
278
|
317
|
for (Honor h : honors) {
|
279
|
318
|
ListItem li = new ListItem();
|
280
|
319
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
281
|
|
addText(pg, h.getName(), null,cnFont,enFont);
|
|
320
|
addText(pg, h.getName(), null, cnFont, enFont);
|
282
|
321
|
li.add(pg);
|
283
|
322
|
String year = h.getYear();
|
284
|
323
|
if (year != null) {
|
285
|
324
|
pg = createParagraph(TEXT_FONT_SIZE, RGB9);
|
286
|
|
addText(pg, ("获得于" + year + "年 "), null,cnFont,enFont);
|
|
325
|
addText(pg, ("获得于" + year + "年 "), null, cnFont, enFont);
|
287
|
326
|
li.add(pg);
|
288
|
327
|
}
|
289
|
328
|
String descp = h.getDescp();
|
290
|
329
|
if (descp != null && descp.length() > 0) {
|
291
|
330
|
pg = createParagraph(TEXT_FONT_SIZE, RGB9);
|
292
|
|
addText(pg, descp, null,cnFont,enFont);
|
|
331
|
addText(pg, descp, null, cnFont, enFont);
|
293
|
332
|
li.add(pg);
|
294
|
333
|
}
|
295
|
334
|
list.add(li);
|
|
@ -298,9 +337,9 @@ public class ProfessorPdfServlet extends HttpServlet {
|
298
|
337
|
}
|
299
|
338
|
}
|
300
|
339
|
|
301
|
|
private void addJob(Document doc, java.util.List<PartTimeJob> jobs,PdfFont cnFont,PdfFont enFont) {
|
|
340
|
private void addJob(Document doc, java.util.List<PartTimeJob> jobs, PdfFont cnFont, PdfFont enFont) {
|
302
|
341
|
if (jobs != null && jobs.size() > 0) {
|
303
|
|
addTitle(doc, "工作经历",cnFont,enFont);
|
|
342
|
addTitle(doc, "工作经历", cnFont, enFont);
|
304
|
343
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
305
|
344
|
for (PartTimeJob p : jobs) {
|
306
|
345
|
StringBuilder sb = new StringBuilder();
|
|
@ -316,7 +355,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
316
|
355
|
|
317
|
356
|
ListItem li = new ListItem();
|
318
|
357
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
319
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
358
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
320
|
359
|
li.add(pg);
|
321
|
360
|
|
322
|
361
|
String bm = p.getStartMonth();
|
|
@ -330,7 +369,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
330
|
369
|
} else {
|
331
|
370
|
sb.append("至今");
|
332
|
371
|
}
|
333
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
372
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
334
|
373
|
li.add(pg);
|
335
|
374
|
}
|
336
|
375
|
list.add(li);
|
|
@ -339,9 +378,9 @@ public class ProfessorPdfServlet extends HttpServlet {
|
339
|
378
|
}
|
340
|
379
|
}
|
341
|
380
|
|
342
|
|
private void addEdu(Document doc, java.util.List<ProfessorEduBg> edus,PdfFont cnFont,PdfFont enFont) {
|
|
381
|
private void addEdu(Document doc, java.util.List<ProfessorEduBg> edus, PdfFont cnFont, PdfFont enFont) {
|
343
|
382
|
if (edus != null && edus.size() > 0) {
|
344
|
|
addTitle(doc, "教育背景",cnFont,enFont);
|
|
383
|
addTitle(doc, "教育背景", cnFont, enFont);
|
345
|
384
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
346
|
385
|
for (ProfessorEduBg h : edus) {
|
347
|
386
|
ListItem li = new ListItem();
|
|
@ -360,7 +399,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
360
|
399
|
sb.append(" · ").append(office);
|
361
|
400
|
}
|
362
|
401
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
363
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
402
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
364
|
403
|
li.add(pg);
|
365
|
404
|
|
366
|
405
|
String year = h.getYear();
|
|
@ -368,7 +407,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
368
|
407
|
year = null;
|
369
|
408
|
}
|
370
|
409
|
pg = createParagraph(TEXT_FONT_SIZE, RGB9);
|
371
|
|
addText(pg, (year == null ? "至今" : ("获得于" + year + "年 ")), null,cnFont,enFont);
|
|
410
|
addText(pg, (year == null ? "至今" : ("获得于" + year + "年 ")), null, cnFont, enFont);
|
372
|
411
|
li.add(pg);
|
373
|
412
|
list.add(li);
|
374
|
413
|
}
|
|
@ -376,11 +415,15 @@ public class ProfessorPdfServlet extends HttpServlet {
|
376
|
415
|
}
|
377
|
416
|
}
|
378
|
417
|
|
379
|
|
private void addPatent(Document doc, java.util.List<Ppatent> pats,PdfFont cnFont,PdfFont enFont) {
|
|
418
|
private void addPatent(Document doc, java.util.List<Ppatent> pats, PdfFont cnFont, PdfFont enFont) {
|
380
|
419
|
if (pats != null && pats.size() > 0) {
|
381
|
|
addTitle(doc, "专利",cnFont,enFont);
|
|
420
|
addTitle(doc, "专利", cnFont, enFont);
|
382
|
421
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
383
|
|
for (Ppatent p : pats) {
|
|
422
|
|
|
423
|
int len = Math.min(20, pats.size());
|
|
424
|
|
|
425
|
for (int i = 0; i < len; ++i) {
|
|
426
|
Ppatent p = pats.get(i);
|
384
|
427
|
ListItem li = new ListItem();
|
385
|
428
|
StringBuilder sb = new StringBuilder();
|
386
|
429
|
sb.append(p.getAuthors().replaceAll(",", ";"));
|
|
@ -392,7 +435,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
392
|
435
|
sb.append(" ").append(p.getName()).append(" [P]. 中国专利: ").append(p.getCode()).append(", ").append(p.getPubDay().substring(0, 4)).append("-")
|
393
|
436
|
.append(p.getPubDay().substring(4, 6)).append("-").append(p.getPubDay().substring(6)).append(".");
|
394
|
437
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
395
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
438
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
396
|
439
|
li.add(pg);
|
397
|
440
|
list.add(li);
|
398
|
441
|
}
|
|
@ -400,11 +443,14 @@ public class ProfessorPdfServlet extends HttpServlet {
|
400
|
443
|
}
|
401
|
444
|
}
|
402
|
445
|
|
403
|
|
private void addPaper(Document doc, java.util.List<Ppaper> paps,PdfFont cnFont,PdfFont enFont) {
|
|
446
|
private void addPaper(Document doc, java.util.List<Ppaper> paps, PdfFont cnFont, PdfFont enFont) {
|
404
|
447
|
if (paps != null && paps.size() > 0) {
|
405
|
|
addTitle(doc, "论文",cnFont,enFont);
|
|
448
|
addTitle(doc, "论文", cnFont, enFont);
|
406
|
449
|
List list = new List().setSymbolIndent(10).setListSymbol("\u2022").setFont(enFont);
|
407
|
|
for (Ppaper p : paps) {
|
|
450
|
int len = Math.min(20, paps.size());
|
|
451
|
|
|
452
|
for (int i = 0; i < len; ++i) {
|
|
453
|
Ppaper p = paps.get(i);
|
408
|
454
|
ListItem li = new ListItem();
|
409
|
455
|
StringBuilder sb = new StringBuilder();
|
410
|
456
|
sb.append(p.getName()).append(" [J]. ").append(p.getAuthors());
|
|
@ -426,7 +472,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
426
|
472
|
}
|
427
|
473
|
}
|
428
|
474
|
Paragraph pg = createParagraph(TEXT_FONT_SIZE, RGB3);
|
429
|
|
addText(pg, sb.toString(), null,cnFont,enFont);
|
|
475
|
addText(pg, sb.toString(), null, cnFont, enFont);
|
430
|
476
|
li.add(pg);
|
431
|
477
|
list.add(li);
|
432
|
478
|
}
|
|
@ -435,10 +481,10 @@ public class ProfessorPdfServlet extends HttpServlet {
|
435
|
481
|
|
436
|
482
|
}
|
437
|
483
|
|
438
|
|
private Document createDocument(OutputStream out,PdfFont cnFont,PdfFont enFont) {
|
|
484
|
private Document createDocument(OutputStream out, PdfFont cnFont, PdfFont enFont) {
|
439
|
485
|
PdfWriter writer = new PdfWriter(out);
|
440
|
486
|
PdfDocument pdf = new PdfDocument(writer);
|
441
|
|
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, new MyEventHandler(cnFont,enFont));
|
|
487
|
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, new MyEventHandler(cnFont, enFont));
|
442
|
488
|
Document doc = new Document(pdf, PageSize.A4);
|
443
|
489
|
doc.setMargins(42.5f, 56.5f, 42.5f, 56.5f);
|
444
|
490
|
return doc;
|
|
@ -453,7 +499,7 @@ public class ProfessorPdfServlet extends HttpServlet {
|
453
|
499
|
return pg;
|
454
|
500
|
}
|
455
|
501
|
|
456
|
|
private void addText(Paragraph p, String str, Float fontSize,PdfFont cnFont,PdfFont enFont) {
|
|
502
|
private void addText(Paragraph p, String str, Float fontSize, PdfFont cnFont, PdfFont enFont) {
|
457
|
503
|
int b = 0;
|
458
|
504
|
char[] cs = str.toCharArray();
|
459
|
505
|
PdfFont cur = cnFont;
|
|
@ -510,8 +556,10 @@ public class ProfessorPdfServlet extends HttpServlet {
|
510
|
556
|
}
|
511
|
557
|
|
512
|
558
|
private Connection getConnection() throws SQLException {
|
513
|
|
return this.dataSource.getConnection();
|
514
|
|
//n DriverManager.getConnection("jdbc:postgresql://www.ekexiu.com:5432/ekexiu", "postgres", "postgres");
|
|
559
|
return this.dataSource.getConnection();
|
|
560
|
// n
|
|
561
|
// DriverManager.getConnection("jdbc:postgresql://www.ekexiu.com:5432/ekexiu",
|
|
562
|
// "postgres", "postgres");
|
515
|
563
|
}
|
516
|
564
|
|
517
|
565
|
private ViewBean loadViewBean(final String id) throws SQLException {
|
|
@ -858,24 +906,25 @@ public class ProfessorPdfServlet extends HttpServlet {
|
858
|
906
|
}
|
859
|
907
|
|
860
|
908
|
}
|
861
|
|
protected class MyEventHandler implements IEventHandler {
|
862
|
|
private PdfFont cnFont;
|
863
|
|
private PdfFont enFont;
|
864
|
|
public MyEventHandler(PdfFont cnFont,PdfFont enFont) {
|
865
|
|
this.cnFont = cnFont;
|
866
|
|
this.enFont= enFont;
|
867
|
|
}
|
868
|
|
public void handleEvent(Event event) {
|
869
|
|
PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
|
870
|
|
PdfDocument pdfDoc = docEvent.getDocument();
|
871
|
|
PdfPage page = docEvent.getPage();
|
872
|
|
Rectangle pageSize = page.getPageSize();
|
873
|
|
PdfCanvas pdfCanvas = new PdfCanvas(page.newContentStreamBefore(), page.getResources(), pdfDoc);
|
874
|
|
pdfCanvas.beginText()
|
875
|
|
.setFontAndSize(cnFont, 10).setColor(new DeviceRgb(0x99, 0x99, 0x99),true)
|
876
|
|
.setTextMatrix(1, 0, 0.51256f, 1,pageSize.getWidth() / 2 - 72,pageSize.getBottom() + 20)
|
877
|
|
.showText("简历来自科袖网 - www.ekexiu.com") .endText();
|
878
|
|
pdfCanvas.release();
|
879
|
|
}
|
880
|
|
}
|
|
909
|
|
|
910
|
protected class MyEventHandler implements IEventHandler {
|
|
911
|
private PdfFont cnFont;
|
|
912
|
private PdfFont enFont;
|
|
913
|
|
|
914
|
public MyEventHandler(PdfFont cnFont, PdfFont enFont) {
|
|
915
|
this.cnFont = cnFont;
|
|
916
|
this.enFont = enFont;
|
|
917
|
}
|
|
918
|
|
|
919
|
public void handleEvent(Event event) {
|
|
920
|
PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
|
|
921
|
PdfDocument pdfDoc = docEvent.getDocument();
|
|
922
|
PdfPage page = docEvent.getPage();
|
|
923
|
Rectangle pageSize = page.getPageSize();
|
|
924
|
PdfCanvas pdfCanvas = new PdfCanvas(page.newContentStreamBefore(), page.getResources(), pdfDoc);
|
|
925
|
pdfCanvas.beginText().setFontAndSize(cnFont, 10).setColor(new DeviceRgb(0x99, 0x99, 0x99), true)
|
|
926
|
.setTextMatrix(1, 0, 0.51256f, 1, pageSize.getWidth() / 2 - 72, pageSize.getBottom() + 20).showText("简历来自科袖网 - www.ekexiu.com").endText();
|
|
927
|
pdfCanvas.release();
|
|
928
|
}
|
|
929
|
}
|
881
|
930
|
}
|