使用Aspose.Pdf将指定PDF也转换为PNG图片

概述:Png Device类允许将PDF页转换为Png图像。这个类提供了一个叫Process方法用来实现这一转换过程。您首先需要创建一个文档类对象,用于获取需要转换成PNG格式的指定PDF页。之后,调用Process方法将页面转换为PNG图像。

》》》示例代码

》》》免费下载Aspose.Pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用AsposePDF转换图片后再转换PDF并进行压缩的代码示例如下: ```java import com.aspose.pdf.*; import java.io.FileOutputStream; import java.io.OutputStream; public class PDFToImage { public static void main(String[] args) { // 创建PdfDocument实例并加载PDF文件 PdfDocument pdf = new PdfDocument("input.pdf"); // 遍历所有页面 for (int i = 1; i <= pdf.getPages().size(); i++) { // 获取当前页面 PdfPage page = pdf.getPages().get_Item(i); // 将当前页面转换图片 com.aspose.pdf.Image image = page.convertToImage(); // 保存图片 image.save("image" + i + ".jpg"); } // 创建新的PdfDocument实例 PdfDocument doc = new PdfDocument(); // 遍历所有图片 for (int i = 1; i <= pdf.getPages().size(); i++) { // 创建新页面并添加到文档中 PdfPage page = doc.getPages().add(); // 从图片创建PdfImage实例 PdfImage pdfImage = new PdfImage("image" + i + ".jpg"); // 将图像添加到页面 page.getResources().getImages().add(pdfImage); // 创建PdfGraphics实例并获取当前页面的图形上下文 PdfGraphics graphics = page.getGraphics(); // 绘制图像 graphics.drawImage(pdfImage, 0, 0, page.getClientRectangle().getWidth(), page.getClientRectangle().getHeight()); } // 设置压缩级别 doc.compress(); // 保存文档 doc.save("output.pdf"); // 关闭文档 doc.close(); } } ``` 请注意,在上面的代码中,需要先安装Aspose.PDF for Java库,可以通过在maven中添加如下依赖来安 ### 回答2: 使用Aspose转换Java PDF图片,再将图片转换PDF,并压缩的代码示例如下: ``` import com.aspose.pdf.Document; import com.aspose.pdf.devices.Resolution; import com.aspose.pdf.devices.TiffDevice; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.ImageWriteParam; import javax.imageio.stream.ImageOutputStream; public class PdfToImageToPdf { public static void main(String[] args) { try { // 加载PDF文档 Document pdfDocument = new Document("input.pdf"); // 创建输出文件夹 Path outputFolder = Paths.get("output"); Files.createDirectories(outputFolder); // 转换PDF图片 TiffDevice tiffDevice = new TiffDevice(new Resolution(300)); for (int pageCount = 1; pageCount <= pdfDocument.getPages().size(); pageCount++) { String outputFilePath = outputFolder.resolve("page" + pageCount + ".tiff").toString(); tiffDevice.process(pdfDocument.getPages().get_Item(pageCount), outputFilePath); } // 将图片转换PDF Document imagePdf = new Document(); for (int pageCount = 1; pageCount <= pdfDocument.getPages().size(); pageCount++) { String inputImagePath = outputFolder.resolve("page" + pageCount + ".tiff").toString(); imagePdf.getPages().add().getPageInfo().setHeight(792); imagePdf.getPages().add().getPageInfo().setWidth(612); imagePdf.getPages().add().getResources().getImages().add(inputImagePath); } // 保存转换后的PDF imagePdf.save("output.pdf"); // 压缩PDF文件 compressPDF("output.pdf", "compressed.pdf"); } catch (Exception ex) { ex.printStackTrace(); } } private static void compressPDF(String inputFileName, String outputFileName) { try { // 加载PDF文档 Document pdf = new Document(inputFileName); // 设置压缩参数 pdf.compressImages(); // 保存压缩后的PDF pdf.save(outputFileName); } catch (Exception ex) { ex.printStackTrace(); } } } ``` 以上代码会将输入的PDF转换为TIFF格式的图片,然后将这些图片转换PDF格式。最后,压缩生成的PDF文件。请确保已经导入Aspose PDF库,并替换文件的输入和输出路径。 ### 回答3: 使用Aspose转换Java PDF到图像的代码如下: ```java import com.aspose.pdf.Document; import com.aspose.pdf.ImageFormat; import com.aspose.pdf.devices.Resolution; public class PdfToImageConverter { public static void convertToImages(String inputFilePath, String outputFolderPath) { // Load the PDF document Document pdfDocument = new Document(inputFilePath); // Loop through all the pages and convert each page to an image for (int pageCount = 1; pageCount <= pdfDocument.getPages().size(); pageCount++) { // Define the output image file path String outputImagePath = outputFolderPath + "/page" + pageCount + ".png"; // Convert the PDF page to an image using default resolution pdfDocument.getPages().get_Item(pageCount).save(outputImagePath, ImageFormat.getPng()); } } } ``` 然后,你可以使用Aspose来将这些图像转换PDF,并对生成的PDF进行压缩。代码示例如下: ```java import com.aspose.pdf.Document; import com.aspose.pdf.ImagePlacementAbsorber; import com.aspose.pdf.ImagePlacementProperties; import com.aspose.pdf.Page; public class ImageToPdfConverter { public static void convertToPdf(String inputFolderPath, String outputFilePath) { // Create a new PDF document Document pdfDocument = new Document(); // Get the list of image files in the input folder File[] imageFiles = new File(inputFolderPath).listFiles(); // Loop through all the image files and add them to the PDF document as pages for (File imageFile : imageFiles) { // Create a new page in the PDF document Page pdfPage = pdfDocument.getPages().add(); // Add the image to the PDF page ImagePlacementProperties placementProperties = new ImagePlacementProperties(); placementProperties.setImageFilePath(imageFile.getAbsolutePath()); ImagePlacementAbsorber imagePlacementAbsorber = new ImagePlacementAbsorber(); imagePlacementAbsorber.visit(pdfPage); imagePlacementAbsorber.getPlacementProperties().add(placementProperties); } // Save the PDF document pdfDocument.save(outputFilePath); } } ``` 最后,使用Aspose来对生成的PDF进行压缩。代码示例如下: ```java import com.aspose.pdf.Document; import com.aspose.pdf.OptimizationOptions; public class PdfCompressor { public static void compressPdf(String inputFilePath, String outputFilePath) { // Load the PDF document Document pdfDocument = new Document(inputFilePath); // Enable compression options OptimizationOptions optimizationOptions = new OptimizationOptions(); optimizationOptions.setCompressImages(true); optimizationOptions.setRemoveUnusedObjects(true); // Optimize and save the compressed PDF pdfDocument.optimizeResources(optimizationOptions); pdfDocument.save(outputFilePath); } } ``` 以上是使用Aspose将Java PDF转换为图像,然后将图像转换PDF,并对生成的PDF进行压缩的代码示例。请注意,你需要将Aspose PDF库添加到你的项目中,以便能够使用相关的类和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值