Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
a41f7181
提交
a41f7181
authored
6月 14, 2021
作者:
133
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[模版] 修改生成pdf类
上级
cd59e8db
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
169 行增加
和
2 行删除
+169
-2
JavaToPdfHtmlFreeMarker.java
...om/tykj/dev/device/file/util/JavaToPdfHtmlFreeMarker.java
+169
-2
没有找到文件。
dev-file/src/main/java/com/tykj/dev/device/file/util/JavaToPdfHtmlFreeMarker.java
浏览文件 @
a41f7181
...
...
@@ -144,7 +144,7 @@ public class JavaToPdfHtmlFreeMarker {
/**
* freemarker渲染html
*/
public
static
String
[]
freeMarkerRender
(
Documents
documents
,
String
htmlPath
)
{
public
static
String
[]
freeMarkerRender
1
(
Documents
documents
,
String
htmlPath
)
{
Writer
out
=
new
StringWriter
();
String
[]
strings
=
new
String
[
100000
];
int
index
=
0
;
...
...
@@ -182,6 +182,173 @@ public class JavaToPdfHtmlFreeMarker {
return
null
;
}
public
static
String
[]
freeMarkerRender
(
Documents
documents
,
String
htmlPath
)
{
Writer
out
=
new
StringWriter
();
String
[]
strings
=
new
String
[
100000
];
int
index
=
0
;
try
{
// 获取模板,并设置编码方式
Template
template
=
freemarkerCfg
.
getTemplate
(
"bill.html"
);
template
.
setEncoding
(
"UTF-8"
);
List
<
DocumentDevice
>
list
=
documents
.
getDocumentDevices
();
List
<
List
<
DocumentDevice
>>
listList
=
toDocList
(
list
);
int
count
=
listList
.
size
();
for
(
int
i
=
1
;
i
<=
3
;
i
++){
Integer
page
=
1
;
for
(
List
<
DocumentDevice
>
list1:
listList
)
{
String
htmlname
=
htmlPath
+
UUID
.
randomUUID
().
toString
()+
".html"
;
// 合并数据模型与模板
FileWriter
fileWriter
=
new
FileWriter
(
new
File
(
htmlname
));
template
.
process
(
toMap
(
documents
,
list1
,
MAP
.
get
(
i
),
page
,
count
),
fileWriter
);
out
.
flush
();
strings
[
index
]=
htmlname
;
index
++;
page
++;
}
}
return
strings
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
out
.
close
();
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
}
}
return
null
;
}
public
static
List
<
List
<
DocumentDevice
>>
toDocList
(
List
<
DocumentDevice
>
deviceList
)
throws
UnsupportedEncodingException
{
List
<
List
<
DocumentDevice
>>
lists
=
new
ArrayList
<>();
List
<
DocumentDevice
>
documentDevices
=
new
ArrayList
<>();
int
i
=
0
;
for
(
int
j
=
0
;
j
<
deviceList
.
size
();
j
++){
DocumentDevice
documentDevice
=
deviceList
.
get
(
j
);
int
max
=
toMax2
(
documentDevice
);
if
(
i
+
max
==
14
){
String
s
=
String
.
join
(
""
,
toListString
(
documentDevice
.
getDeviceSerialNumber
(),
56
));
documentDevice
.
setOneCount
(
max
);
documentDevice
.
setDeviceSerialNumber
(
s
);
documentDevices
.
add
(
documentDevice
);
lists
.
add
(
documentDevices
);
documentDevices
=
new
ArrayList
<>();
i
=
0
;
}
else
if
(
i
+
max
>
14
){
//当前页面少了多少行
int
differ
=
14
-
i
;
List
<
String
>
modelList
=
toListString
(
documentDevice
.
getModel
(),
13
);
List
<
String
>
seqList
=
toListString
(
documentDevice
.
getDeviceSerialNumber
(),
56
);
List
<
String
>
pasList
=
toListString
(
documentDevice
.
getParts
(),
13
);
DocumentDevice
documentDevice1
=
new
DocumentDevice
();
if
(
modelList
.
size
()>
differ
){
documentDevice
.
setModel
(
String
.
join
(
""
,
modelList
.
subList
(
0
,
differ
)));
documentDevice1
.
setModel
(
String
.
join
(
""
,
modelList
.
subList
(
differ
,
modelList
.
size
())));
}
if
(
seqList
.
size
()>
differ
){
documentDevice
.
setDeviceSerialNumber
(
String
.
join
(
""
,
seqList
.
subList
(
0
,
differ
)));
documentDevice1
.
setDeviceSerialNumber
(
String
.
join
(
""
,
seqList
.
subList
(
differ
,
seqList
.
size
())));
}
if
(
pasList
.
size
()>
differ
){
documentDevice
.
setParts
(
String
.
join
(
""
,
pasList
.
subList
(
0
,
differ
)));
documentDevice1
.
setParts
(
String
.
join
(
""
,
pasList
.
subList
(
differ
,
pasList
.
size
())));
}
documentDevice
.
setOneCount
(
differ
);
documentDevices
.
add
(
documentDevice
);
lists
.
add
(
documentDevices
);
documentDevices
=
new
ArrayList
<>();
documentDevice1
.
setOneCount
(
max
-
differ
);
documentDevices
.
add
(
documentDevice1
);
i
=
max
-
differ
;
}
else
{
String
s
=
String
.
join
(
""
,
toListString
(
documentDevice
.
getDeviceSerialNumber
(),
56
));
documentDevice
.
setOneCount
(
max
);
documentDevice
.
setDeviceSerialNumber
(
s
);
documentDevices
.
add
(
documentDevice
);
i
=
i
+
max
;
}
}
if
(
documentDevices
.
size
()!=
0
){
lists
.
add
(
documentDevices
);
}
return
lists
;
}
private
static
int
toMax2
(
DocumentDevice
documentDevice
){
int
partsCount
=
String_length
(
documentDevice
.
getParts
());
int
deviceSerialNumberCount
=
String_length
(
documentDevice
.
getDeviceSerialNumber
());
int
modelCount
=
String_length
(
documentDevice
.
getModel
());
int
parts
=
(
partsCount
%
13
>
0
)
?
partsCount
/
20
+
1
:
partsCount
/
13
;
int
deviceSerialNumber
=(
deviceSerialNumberCount
%
56
>
0
)
?
deviceSerialNumberCount
/
56
+
1
:
deviceSerialNumberCount
/
56
;
int
model
=(
modelCount
%
13
>
0
)
?
modelCount
/
13
+
1
:
modelCount
/
13
;
int
max
=
parts
;
//求最大
if
(
max
<
deviceSerialNumber
){
max
=
deviceSerialNumber
;
}
if
(
max
<
model
)
{
max
=
model
;
}
return
max
;
}
private
static
List
<
String
>
toListString
(
String
str
,
int
len
)
throws
UnsupportedEncodingException
{
List
<
String
>
list
=
new
ArrayList
<>();
int
stringLen
=
String_length
(
str
);
if
(
stringLen
>
len
){
boolean
falg
=
true
;
int
i
=
0
;
while
(
falg
){
if
((
i
+
1
)*
len
>
stringLen
)
{
list
.
add
(
subString
(
str
,
i
*
len
+
1
,
stringLen
,
"GBK"
));
falg
=
false
;
}
else
{
list
.
add
(
subString
(
str
,
i
*
len
+
1
,(
i
+
1
)*
len
,
"GBK"
)+
"<br/>"
);
i
++;
}
}
return
list
;
}
else
{
list
.
add
(
str
);
return
list
;
}
}
public
static
String
subString
(
String
text
,
int
start
,
int
end
,
String
encode
)
throws
UnsupportedEncodingException
{
if
(
text
==
null
||
text
==
""
)
return
null
;
StringBuffer
sb
=
new
StringBuffer
();
int
currentLength
=
0
;
for
(
char
c
:
text
.
toCharArray
()
)
{
currentLength
+=
String
.
valueOf
(
c
).
getBytes
(
encode
).
length
;
if
(
currentLength
>=
start
&&
currentLength
<=
end
)
{
sb
.
append
(
c
);
}
else
{
continue
;
}
}
return
sb
.
toString
();
}
public
static
List
<
String
>
freeMarkerRenderList
(
Documents
documents
,
String
htmlPath
)
{
Writer
out
=
new
StringWriter
();
List
<
String
>
listCont
=
new
ArrayList
<>();
...
...
@@ -191,7 +358,7 @@ public class JavaToPdfHtmlFreeMarker {
template
.
setEncoding
(
"UTF-8"
);
List
<
DocumentDevice
>
list
=
documents
.
getDocumentDevices
();
List
<
List
<
DocumentDevice
>>
listList
=
toList
(
list
);
List
<
List
<
DocumentDevice
>>
listList
=
to
Doc
List
(
list
);
int
count
=
listList
.
size
();
for
(
int
i
=
1
;
i
<=
3
;
i
++){
Integer
page
=
1
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论