Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
HOTEL_SERVER
Overview
Overview
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
汪鑫
HOTEL_SERVER
Commits
485f02ec
Commit
485f02ec
authored
Dec 28, 2023
by
汪鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pdf转图片
parent
d3eb0811
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
109 additions
and
0 deletions
+109
-0
pom.xml
hotel-common-utils/pom.xml
+18
-0
CommonController.java
...n/java/com/ihooyah/model/controller/CommonController.java
+91
-0
No files found.
hotel-common-utils/pom.xml
View file @
485f02ec
...
@@ -66,6 +66,24 @@
...
@@ -66,6 +66,24 @@
<artifactId>
commons-io
</artifactId>
<artifactId>
commons-io
</artifactId>
<version>
1.3
</version>
<version>
1.3
</version>
</dependency>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox -->
<dependency>
<groupId>
org.apache.pdfbox
</groupId>
<artifactId>
fontbox
</artifactId>
<version>
2.0.9
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
<groupId>
org.apache.pdfbox
</groupId>
<artifactId>
pdfbox
</artifactId>
<version>
2.0.9
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<version>
1.2
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
<plugins>
<plugins>
...
...
hotel-polebuild-parent/polebuild-server-api/src/main/java/com/ihooyah/model/controller/CommonController.java
View file @
485f02ec
package
com
.
ihooyah
.
model
.
controller
;
package
com
.
ihooyah
.
model
.
controller
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.io.IoUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
...
@@ -21,12 +23,20 @@ import com.ihooyah.utils.YmlUtils;
...
@@ -21,12 +23,20 @@ import com.ihooyah.utils.YmlUtils;
import
com.ihooyah.utils.files.FileSaveUtils
;
import
com.ihooyah.utils.files.FileSaveUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.pdfbox.pdmodel.PDDocument
;
import
org.apache.pdfbox.rendering.PDFRenderer
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
sun.misc.BASE64Encoder
;
import
sun.misc.BASE64Encoder
;
import
javax.imageio.ImageIO
;
import
javax.servlet.http.HttpServletResponse
;
import
java.awt.image.BufferedImage
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.List
;
import
java.util.List
;
@RestController
@RestController
...
@@ -154,4 +164,85 @@ public class CommonController extends BaseController {
...
@@ -154,4 +164,85 @@ public class CommonController extends BaseController {
return
RespInfo
.
mobiSuccess
(
params
);
return
RespInfo
.
mobiSuccess
(
params
);
}
}
@ApiOperation
(
"pdf转图片"
)
@PostMapping
(
"pdfToImg"
)
public
void
pdfToImg
(
MultipartFile
file
,
HttpServletResponse
response
){
try
{
PDDocument
doc
=
PDDocument
.
load
(
file
.
getInputStream
());
PDFRenderer
renderer
=
new
PDFRenderer
(
doc
);
int
pageCount
=
doc
.
getNumberOfPages
();
String
[]
pics
=
new
String
[
pageCount
];
for
(
int
i
=
0
;
i
<
pageCount
;
i
++)
{
BufferedImage
image
=
renderer
.
renderImageWithDPI
(
i
,
144
);
String
filePath
=
"/home/temp/"
+
IdUtil
.
fastSimpleUUID
()
+
"."
+
"jpg"
;
ImageIO
.
write
(
image
,
"jpg"
,
new
File
(
filePath
));
pics
[
i
]
=
filePath
;
}
String
lastFilePath
=
"/home/temp/"
+
IdUtil
.
fastSimpleUUID
()
+
"."
+
"jpg"
;
this
.
joinImageListVertical
(
pics
,
"jpg"
,
lastFilePath
);
OutputStream
stream
=
response
.
getOutputStream
();
FileInputStream
inputStream
=
new
FileInputStream
(
lastFilePath
);
IoUtil
.
copy
(
inputStream
,
stream
);
stream
.
close
();
inputStream
.
close
();
for
(
String
pic
:
pics
)
{
FileUtil
.
del
(
pic
);
}
FileUtil
.
del
(
lastFilePath
);
doc
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
boolean
joinImageListVertical
(
String
[]
pics
,
String
type
,
String
dst_pic
)
{
try
{
int
len
=
pics
.
length
;
if
(
len
<
1
)
{
System
.
out
.
println
(
"pics len < 1"
);
return
false
;
}
File
[]
src
=
new
File
[
len
];
BufferedImage
[]
images
=
new
BufferedImage
[
len
];
int
[][]
imageArrays
=
new
int
[
len
][];
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
//System.out.println(i);
src
[
i
]
=
new
File
(
pics
[
i
]);
images
[
i
]
=
ImageIO
.
read
(
src
[
i
]);
int
width
=
images
[
i
].
getWidth
();
int
height
=
images
[
i
].
getHeight
();
// 从图片中读取RGB
imageArrays
[
i
]
=
new
int
[
width
*
height
];
imageArrays
[
i
]
=
images
[
i
].
getRGB
(
0
,
0
,
width
,
height
,
imageArrays
[
i
],
0
,
width
);
}
int
dst_height
=
0
;
int
dst_width
=
images
[
0
].
getWidth
();
for
(
int
i
=
0
;
i
<
images
.
length
;
i
++)
{
dst_width
=
dst_width
>
images
[
i
].
getWidth
()
?
dst_width
:
images
[
i
].
getWidth
();
dst_height
+=
images
[
i
].
getHeight
();
}
//System.out.println(dst_width);
//System.out.println(dst_height);
if
(
dst_height
<
1
)
{
System
.
out
.
println
(
"dst_height < 1"
);
return
false
;
}
/*
* 生成新图片
*/
BufferedImage
ImageNew
=
new
BufferedImage
(
dst_width
,
dst_height
,
BufferedImage
.
TYPE_INT_RGB
);
int
height_i
=
0
;
for
(
int
i
=
0
;
i
<
images
.
length
;
i
++)
{
ImageNew
.
setRGB
(
0
,
height_i
,
dst_width
,
images
[
i
].
getHeight
(),
imageArrays
[
i
],
0
,
dst_width
);
height_i
+=
images
[
i
].
getHeight
();
}
File
outFile
=
new
File
(
dst_pic
);
// 写图片
ImageIO
.
write
(
ImageNew
,
type
,
outFile
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
return
true
;
}
}
}
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