pdf转成图片

  所用插件为pdfbox
public List<EcdInvoiceOcrDto> pdfFileToPic(String picName,File invoiceFile
   ,String invoiceTypeCode) throws Exception{
  List<EcdInvoiceOcrDto> picPathList = new ArrayList<EcdInvoiceOcrDto>();
  PDDocument doc = PDDocument.load(invoiceFile);
  PDFRenderer reader = new PDFRenderer(doc);
  int pageNo = doc.getNumberOfPages();
  for (int i = 0; i < pageNo; i++) {
   //1.将pdf转为图片
   BufferedImage bfi = reader.renderImageWithDPI(i, 96);
   //2.获取图片存储路劲
   File file2 = ocrRecognitionService.getPicPath(picName);
   ImageIO.write(bfi, picName.split(" \\.")[1], file2);
   /*
    * 3.新建发票实体类并设置发票的存放路劲
    * 若发票为专票或是普票则将发票图片变成二进制数组 传回 待发票识别时使用
    */
   EcdInvoiceOcrDto ecdInvoiceOcrDto = new EcdInvoiceOcrDto();
   ByteArrayOutputStream bos = null;
   FileInputStream fis=null;
   try {
    if(invoiceTypeCode.equals(IConstants.INVOICE_TYPE_SPECIAL)
      ||invoiceTypeCode.equals(IConstants.INVOICE_TYPE_PLAIN)){
     bos = new ByteArrayOutputStream();
     fis = new FileInputStream(file2);
     byte[] data=new byte[2048];
     int len=0;
     while((len=fis.read(data))!=-1){
      bos.write(data, 0, len);
     }
     bos.flush();
     ecdInvoiceOcrDto.setImageStreamStr(new BASE64Encoder().encode(bos.toByteArray()));
    }
   } catch (Exception e) {
    logger.error("读取图片成二进制数组失败",e);
    throw new Exception();
   }finally{
    if(bos!=null){
     bos.close();
    }
    if(fis!=null){
     fis.close();
    }
   }
   
   ecdInvoiceOcrDto.setPicPath(file2.getAbsolutePath());
   ecdInvoiceOcrDto.setImageName(file2.getName());
   picPathList.add(ecdInvoiceOcrDto);
  }
  return picPathList;
 }





### 回答1: Python是一种广泛使用的编程语言,可以通过安装相关的第三方库来实现将PDF文件转换为图片。 首先,您需要安装Python的pdf2image库。该库可以将PDF文件转换为PIL图像,也就是Python Imaging Library图像。 安装pdf2image库后,您可以使用以下代码来将PDF文件转换为图像: ```python from pdf2image import convert_from_path, convert_from_bytes pages = convert_from_path('example.pdf', dpi=200) for page in pages: page.save('example.jpg', 'JPEG') ``` 在上述代码中,convert_from_path函数将PDF文件的路径作为参数,并将dpi设置为200。这将生成一个包含所有PDF页面的列表。然后循环列表中的每一页,并将它们保存为JPEG文件。 您也可以将convert_from_path函数更改为convert_from_bytes函数,该函数可以读取二进制数据而不是文件名,并且可以使用options参数来更改图像的大小和质量。 总之,Python是一种非常强大和灵活的编程语言,可以用来处理几乎所有的任务,包括将PDF文件转换为图像。通过安装pdf2image库并调用相应的函数,您可以快速而轻松地将PDF文件转换为图像。 ### 回答2: Python可以使用一个强大的库来实现将PDF转换成图片的功能,这个库叫做“wand”。Wand库是用于在Python中进行ImageMagick的绑定,它可以与ImageMagick库无缝集成,提供了许多工具来处理图像,包括将PDF文件转换成图像的功能。 步骤如下所示: 1. 安装Wand库和ImageMagick库。你需要确保它们都被正确安装在你的计算机上。 2. 导入Wand库并加载所需的图像。你可以使用以下代码导入Wand库。 ``` from wand.image import Image ``` 然后你可以使用以下代码加载你的PDF文件。 ``` with Image(filename='your_file.pdf', resolution=300) as img: img.format = 'png' img.save(filename='your_file.png') ``` 在这个代码示例中,我们首先打开PDF文件,设置转换后的文件格式为PNG,并将转换后的文件保存在磁盘上。 3. 运行你的代码。运行上面的代码来将PDF文件转换成图像,并在你的磁盘上保存为PNG格式文件。你可以使用其他图像格式,比如JPEG,只需简单地使用“jpg”或“jpeg”代替“png”。 总之,使用Python将PDF文件转换成图像是非常简单的。使用Wand库,你可以轻松读取PDF文件并将其转换为图像,从而方便地在你的Python应用程序中使用它们。 ### 回答3: Python可以通过使用pdf2image库来将PDF文件转换成图片。首先需要安装pdf2image库,可以使用以下命令: ``` pip install pdf2image ``` 接着,可以使用如下代码: ```python from pdf2image import convert_from_path # PDF文件路径 pdf_path = "example.pdf" # 将PDF转换成图片 images = convert_from_path(pdf_path) # 保存图片 for i, image in enumerate(images): image.save(f"output_{i}.jpg", "JPEG") ``` 上述代码中,我们使用pdf2image库中的`convert_from_path()`函数来将PDF转换成图片。该函数需要传入PDF文件路径,并返回一个图片列表。我们可以使用Python的循环语句将图片保存到指定的文件夹中。 需要注意的是,pdf2image库依赖于Poppler工具。如果在使用过程中遇到问题,可以尝试先安装Poppler工具,然后重新安装pdf2image库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值