日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java jpg转换成pdf格式_Java pdf和jpg互转案例

發(fā)布時(shí)間:2023/12/9 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jpg转换成pdf格式_Java pdf和jpg互转案例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

pdfbox: jpg轉(zhuǎn)pdf:

/**

* 使用pdfbox將jpg轉(zhuǎn)成pdf

* @param jpgStream jpg輸入流

* @param pdfPath pdf文件存儲路徑

* @throws IOException IOException

*/

public static void jpgToPdf(InputStream jpgStream, String pdfPath) throws IOException {

PDDocument pdDocument = new PDDocument();

BufferedImage image = ImageIO.read(jpgStream);

PDPage pdPage = new PDPage(new PDRectangle(image.getWidth(), image.getHeight()));

pdDocument.addPage(pdPage);

PDImageXObject pdImageXObject = LosslessFactory.createFromImage(pdDocument, image);

PDPageContentStream contentStream = new PDPageContentStream(pdDocument, pdPage);

contentStream.drawImage(pdImageXObject, 0, 0, image.getWidth(), image.getHeight());

contentStream.close();

pdDocument.save(pdfPath);

pdDocument.close();

}

pdfbox: pdf轉(zhuǎn)jpg:

static void pdfbox() throws IOException {

long start = System.currentTimeMillis();

//pdf路徑

URL url = new URL("file:///D:/1.pdf");

InputStream stream = URLUtil.getStream(url);

// 加載解析PDF文件

PDDocument doc = PDDocument.load(stream);

PDFRenderer pdfRenderer = new PDFRenderer(doc);

PDPageTree pages = doc.getPages();

int pageCount = pages.getCount();

for (int i = 0; i < pageCount; i++) {

BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);

ByteArrayOutputStream os = new ByteArrayOutputStream();

ImageIO.write(bim, "jpg", os);

byte[] datas = os.toByteArray();

// InputStream is = new ByteArrayInputStream(datas);

//jpg文件轉(zhuǎn)出路徑

FileUtil.writeBytes(datas, new File("d:/jpg/" + i + ".jpg"));

}

long end = System.currentTimeMillis();

long time = (end - start) / 1000;

System.out.println(StrUtil.format("pdf轉(zhuǎn)jpg耗時(shí): {}s", time));

}

icepdf: pdf轉(zhuǎn)jpg

Document document = new Document();

document.setUrl(new URL(pdfUrl));

int pageNum = document.getNumberOfPages();

for (int i = 0; i < pageNum; i++) {

// 目前僅支持1對1的pdf->jpg

if (i != 0) {

continue;

}

// 3、pdf -> jpg

BufferedImage bim = (BufferedImage) document.getPageImage(i,

GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX,

rotation, scale);

os = new ByteArrayOutputStream();

ImageIO.write(bim, "jpg", os);

// 4、jpg -> fdfs

byte[] datas = os.toByteArray();

InputStream is = new ByteArrayInputStream(datas);

補(bǔ)充知識:Java實(shí)現(xiàn)對png圖片文件電子簽名操作

我就廢話不多說了,大家還是直接看代碼吧~

/**

* 根據(jù)圖片像素位置添加用戶電子簽名

* @param imagePath 要操作的圖片路徑

* @param signImagePath 電子簽名圖片路徑

* @param outImagePath 合成后輸出圖片路徑

* @param width 像素位寬度

* @param height 像素位高度

*/

public static void syntheticPicture(String imagePath, String signImagePath,Integer width,Integer height, String outImagePath ) {

try {

BufferedImage big = ImageIO.read(new File(imagePath));

BufferedImage small = ImageIO.read(new File(signImagePath));

Graphics2D g = big.createGraphics();

//根據(jù)圖片像素位置粘貼帶電子簽名

g.drawImage(small, width, height, small.getWidth(), small.getHeight(), null);

g.dispose();

ImageIO.write(big, outImagePath .split("\\.")[1], new File(outImagePath ));

} catch (Exception e) {

throw new RuntimeException(e);

}

}

以上這篇Java pdf和jpg互轉(zhuǎn)案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。

時(shí)間: 2020-09-29

總結(jié)

以上是生活随笔為你收集整理的java jpg转换成pdf格式_Java pdf和jpg互转案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。