Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
Y
yn-health-science
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐俊
yn-health-science
Commits
9cffca98
Commit
9cffca98
authored
Feb 12, 2025
by
徐俊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xujun
parent
8e3019eb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
2 deletions
+119
-2
ProjectInfoToPDF.java
...main/java/com/yiboshi/science/utils/ProjectInfoToPDF.java
+119
-2
No files found.
science-admin/src/main/java/com/yiboshi/science/utils/ProjectInfoToPDF.java
View file @
9cffca98
...
...
@@ -37,7 +37,7 @@ public class ProjectInfoToPDF {
// 添加项目内容章节
addSection
(
document
,
"一、项目基本情况"
,
boldFont
);
add
Content
(
document
,
project
.
getResearchContent
(),
normalFont
);
add
ProjectBasicTable
(
document
,
project
,
bfChinese
,
fsChinese
);
// 添加项目基本信息表格
// 添加新页面
document
.
newPage
();
...
...
@@ -227,8 +227,125 @@ public class ProjectInfoToPDF {
/**
* 项目基本信息
*/
private
static
void
addProjectBasicTable
()
{
private
static
void
addProjectBasicTable
(
Document
document
,
ComProjectDTO
project
,
BaseFont
bfChinese
,
BaseFont
fsChinese
)
throws
DocumentException
{
Font
labelFont
=
new
Font
(
fsChinese
,
12
,
Font
.
NORMAL
);
Font
valueFont
=
new
Font
(
bfChinese
,
12
,
Font
.
NORMAL
);
// 申请人信息表格
PdfPTable
personTable
=
new
PdfPTable
(
8
);
// 8列
personTable
.
setWidthPercentage
(
95
);
personTable
.
setSpacingBefore
(
10
f
);
// 设置列宽度比例
float
[]
personWidths
=
{
1.5f
,
2
f
,
1
f
,
2
f
,
1.5f
,
2
f
,
2
f
,
2
f
};
personTable
.
setWidths
(
personWidths
);
// 申请人信息标题行
PdfPCell
titleCell
=
new
PdfPCell
(
new
Phrase
(
"申请人信息"
,
labelFont
));
titleCell
.
setColspan
(
8
);
titleCell
.
setHorizontalAlignment
(
Element
.
ALIGN_LEFT
);
titleCell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
titleCell
.
setMinimumHeight
(
25
f
);
personTable
.
addCell
(
titleCell
);
// 第一行
addBasicTableCell
(
personTable
,
"姓 名"
,
project
.
getAppPersonName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"性别"
,
project
.
getSex
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"出生年月"
,
formatDateRange
(
project
.
getBirthday
(),
1
),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"民族"
,
project
.
getNationName
(),
2
,
labelFont
,
valueFont
);
// 第二行
addBasicTableCell
(
personTable
,
"学 位"
,
project
.
getDegreeName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"职称"
,
project
.
getTitleName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"每年工作时间(月)"
,
project
.
getJobTime
().
toString
(),
4
,
labelFont
,
valueFont
);
// 第三行
addBasicTableCell
(
personTable
,
"电 话"
,
project
.
getMobile
(),
4
,
labelFont
,
valueFont
);
addBasicTableCell
(
personTable
,
"电子邮箱"
,
project
.
getEmail
(),
4
,
labelFont
,
valueFont
);
// 第四行
addBasicTableCell
(
personTable
,
"个人通讯地址"
,
project
.
getAddress
(),
8
,
labelFont
,
valueFont
);
// 第五行
addBasicTableCell
(
personTable
,
"工作单位"
,
project
.
getAppUnitName
(),
8
,
labelFont
,
valueFont
);
// 第六行
addBasicTableCell
(
personTable
,
"主要研究领域"
,
project
.
getMainResearchAreas
(),
8
,
labelFont
,
valueFont
);
document
.
add
(
personTable
);
// 申请单位信息表格
PdfPTable
unitTable
=
new
PdfPTable
(
4
);
// 4列
unitTable
.
setWidthPercentage
(
95
);
unitTable
.
setSpacingBefore
(
10
f
);
// 设置列宽度比例
float
[]
unitWidths
=
{
2
f
,
3
f
,
2
f
,
3
f
};
unitTable
.
setWidths
(
unitWidths
);
// 申请单位信息标题行
titleCell
=
new
PdfPCell
(
new
Phrase
(
"申请单位信息"
,
labelFont
));
titleCell
.
setColspan
(
4
);
titleCell
.
setHorizontalAlignment
(
Element
.
ALIGN_LEFT
);
titleCell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
titleCell
.
setMinimumHeight
(
25
f
);
unitTable
.
addCell
(
titleCell
);
// 单位信息内容
addBasicTableCell
(
unitTable
,
"单位名称"
,
project
.
getAppUnitName
(),
4
,
labelFont
,
valueFont
);
addBasicTableCell
(
unitTable
,
"联系人"
,
project
.
getUnitLinkName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
unitTable
,
"电话"
,
project
.
getUnitLinkMobile
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
unitTable
,
"电子信箱"
,
project
.
getUnitLinkEmail
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
unitTable
,
"传真"
,
project
.
getUnitLinkFax
(),
2
,
labelFont
,
valueFont
);
document
.
add
(
unitTable
);
// 项目基本情况表格
PdfPTable
projTable
=
new
PdfPTable
(
4
);
// 4列
projTable
.
setWidthPercentage
(
95
);
projTable
.
setSpacingBefore
(
10
f
);
// 设置列宽度比例
float
[]
projWidths
=
{
2
f
,
3
f
,
2
f
,
3
f
};
projTable
.
setWidths
(
projWidths
);
// 项目基本情况标题行
titleCell
=
new
PdfPCell
(
new
Phrase
(
"项目基本情况"
,
labelFont
));
titleCell
.
setColspan
(
4
);
titleCell
.
setHorizontalAlignment
(
Element
.
ALIGN_LEFT
);
titleCell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
titleCell
.
setMinimumHeight
(
25
f
);
projTable
.
addCell
(
titleCell
);
// 项目基本情况内容
addBasicTableCell
(
projTable
,
"项目名称"
,
project
.
getProjName
(),
4
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"学科代码"
,
project
.
getKnowledgeName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"选题范围"
,
project
.
getSubjectScope
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"项目类别"
,
project
.
getProjClassName
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"研究期限"
,
formatDateRange
(
project
.
getStartDate
(),
1
),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"项目总经费(万元)"
,
project
.
getTotalFunding
().
toString
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"申请经费"
,
project
.
getGovFunding
().
toString
(),
2
,
labelFont
,
valueFont
);
addBasicTableCell
(
projTable
,
"项目摘要"
,
project
.
getProjAbstract
(),
4
,
labelFont
,
valueFont
);
document
.
add
(
projTable
);
}
/**
* 添加基本信息表格单元格
*/
private
static
void
addBasicTableCell
(
PdfPTable
table
,
String
label
,
String
value
,
int
colspan
,
Font
labelFont
,
Font
valueFont
)
{
PdfPCell
labelCell
=
new
PdfPCell
(
new
Phrase
(
label
,
labelFont
));
labelCell
.
setMinimumHeight
(
25
f
);
labelCell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
labelCell
.
setHorizontalAlignment
(
Element
.
ALIGN_CENTER
);
table
.
addCell
(
labelCell
);
PdfPCell
valueCell
=
new
PdfPCell
(
new
Phrase
(
value
!=
null
?
value
:
""
,
valueFont
));
valueCell
.
setMinimumHeight
(
25
f
);
valueCell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
valueCell
.
setHorizontalAlignment
(
Element
.
ALIGN_LEFT
);
valueCell
.
setColspan
(
colspan
-
1
);
table
.
addCell
(
valueCell
);
}
private
static
void
addSection
(
Document
document
,
String
title
,
Font
font
)
throws
DocumentException
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment