Chuyển đổi PDF thành hình ảnh với độ phân giải cao


328

Tôi đang cố gắng sử dụng chương trình dòng lệnh convertđể đưa PDF thành hình ảnh (JPEG hoặc PNG). Đây là một trong những tệp PDF mà tôi đang cố gắng chuyển đổi.

Tôi muốn chương trình cắt bớt khoảng trắng thừa và trả lại hình ảnh chất lượng đủ cao để có thể đọc các bản sao chép một cách dễ dàng.

Đây là nỗ lực tốt nhất hiện tại của tôi . Như bạn có thể thấy, việc cắt tỉa hoạt động tốt, tôi chỉ cần tăng độ phân giải khá nhiều. Đây là lệnh tôi đang sử dụng:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg

Tôi đã cố gắng đưa ra các quyết định có ý thức sau đây:

  • thay đổi kích thước lớn hơn (không ảnh hưởng đến độ phân giải)
  • làm cho chất lượng càng cao càng tốt
  • sử dụng -sharpen(Tôi đã thử một loạt các giá trị)

Mọi đề xuất xin vui lòng về độ phân giải của hình ảnh trong PNG / JPEG cuối cùng cao hơn sẽ được đánh giá cao!


Tôi không biết, bạn cũng có thể thử liên kết ...
karnok


Nếu bạn đang sử dụng máy Mac, hãy xem trang hướng dẫn sips, "hệ thống xử lý hình ảnh có thể viết được". Đây là trình chỉnh sửa hình ảnh dòng lệnh được tích hợp trong macOS, hoạt động trên các tệp PDF và nhiều loại hình ảnh khác.
ghoti

Các ngụm @ghoti sẽ chỉ chuyển đổi trang đầu tiên của tệp PDF thành hình ảnh.
benwiggy

Câu trả lời:


386

Dường như các công việc sau đây:

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

Nó dẫn đến hình ảnh bên trái . So sánh điều này với kết quả của lệnh ban đầu của tôi ( hình ảnh bên phải ):

  

(Để thực sự thấy và đánh giá cao sự khác biệt giữa hai loại, nhấp chuột phải vào từng cái và chọn "Mở hình ảnh trong tab mới ..." .)

Cũng ghi nhớ các sự kiện sau đây:

  • Hình ảnh mờ hơn ở bên phải có kích thước tệp 1.941.702 Byte (1.85 MByte). Độ phân giải của nó là 3060x3960 pixel, sử dụng không gian màu RGB 16 bit.
  • Hình ảnh tốt hơn, sắc nét hơn ở bên trái có kích thước tệp là 337.879 Byte (330 kByte). Độ phân giải của nó là 758x996 pixel, sử dụng không gian màu Xám 8 bit.

Vì vậy, không cần phải thay đổi kích thước; thêm -densitycờ Giá trị mật độ 150 là lạ - thử một loạt các giá trị dẫn đến hình ảnh trông tệ hơn theo cả hai hướng!


77
Các densitytham số là một chút đặc biệt ở trong đó phải đến trước khi các tập tin đầu vào. Vì PDF là định dạng tệp dựa trên vectơ không có khái niệm (nhiều) pixel, nên nó có nội dung như "trang là 8 in 12in". Nếu bạn muốn pixel, bạn sử dụng densitycài đặt để nói với nó, bao nhiêu pixel trên mỗi inch bạn muốn nhận được ở đầu ra. Ví dụ. với 150 bạn sẽ nhận được 8x150 = 1200 x 12x150 = 1800 pixel trong hình ảnh thu được. Đó cũng là lượng pixel mà các cài đặt làm sắc nét, tương phản, nén, v.v.
Daniel Schneller

8
Nó có thể dẫn đến nền đen trên Mac OS (xem stackoverflow.com/questions/10934456/ cấp ). Để khắc phục điều này, thêm -flatten.
Rolf

2
Tôi đã có một nền đen trên Mac OS khi tôi cố gắng chuyển đổi pdf sang png, thêm -flatten đã giải quyết nó.
olala

4
Ồ Chỉ cần sử dụng tùy chọn -density-flattenđể giảm kích thước của pdf (sang pdf khác). Các -flattentùy chọn thực sự giúp ích rất nhiều trong việc giảm tổng kích thước. Trong trường hợp của tôi, không có rối loạn thị giác.
parvus

2
Các -densitylá cờ có thể sẽ cho kết quả tồi tệ trên giá trị cao hơn nếu chất lượng của hình ảnh bắt đầu thấp hơn thế.
parvus

152

Cá nhân tôi thích điều này.

convert -density 300 -trim test.pdf -quality 100 test.jpg

Nó lớn hơn gấp đôi kích thước tập tin, nhưng nó có vẻ tốt hơn đối với tôi.

-density 300 đặt dpi mà PDF được hiển thị tại.

-trim loại bỏ bất kỳ pixel cạnh nào có cùng màu với các pixel góc.

-quality 100 đặt chất lượng nén JPEG thành chất lượng cao nhất.

Những thứ như -sharpenkhông hoạt động tốt với văn bản vì chúng hoàn tác những thứ mà hệ thống kết xuất phông chữ của bạn đã làm để làm cho nó dễ đọc hơn.

Nếu bạn thực sự muốn nó nổ tung, hãy sử dụng thay đổi kích thước ở đây và có thể là giá trị dpi lớn hơn của một cái gì đó giống như targetDPI * scalingFactor Điều đó sẽ hiển thị PDF ở độ phân giải / kích thước bạn dự định.

Mô tả về các tham số trên fantemagick.org có ở đây


Nó có kích thước gấp đôi chủ yếu là do mật độ đầu ra đã được nhân đôi và chất lượng nén jpg được đặt ở mức tối đa (vì vậy không nén nhiều).
thủ

Sử dụng convertlàm thế nào chúng ta sẽ biết có bao nhiêu trang đã được chuyển đổi?
Kiran Reddy

Uh, đây chắc chắn là con đường để đi. Tăng mật độ nguồn đó và loại bỏ -sharpen. Chất lượng tốt hơn nhiều so với mặc định và cách tự nhiên hơn so với -sharpen.
Joshua Pinter

19

Tôi sử dụng pdftoppmtrên dòng lệnh để có được hình ảnh ban đầu, thường có độ phân giải 300dpi, do đó pdftoppm -r 300, sau đó sử dụng convertđể thực hiện chuyển đổi cắt xén và PNG.


1
trong khi không sử dụng Imagemagick, giải pháp này dường như hầu hết theo tinh thần chuyển đổi minh bạch. pdftoppmcũng có thể xuất JPEG và PNG.
Aaron Brick

19

thông thường tôi trích xuất hình ảnh được nhúng bằng 'pdfimages' ở độ phân giải gốc, sau đó sử dụng chuyển đổi của ImageMagick sang định dạng cần thiết:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

Điều này tạo ra tệp kết quả tốt nhất và nhỏ nhất.

Lưu ý: Đối với hình ảnh nhúng JPG bị mất, bạn phải sử dụng -j:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

Với poppler gần đây, bạn có thể sử dụng - tất cả đều tiết kiệm lossy như jpg và lossless như png

Trên nền tảng Win được cung cấp ít, bạn phải tải xuống tệp nhị phân 'poppler-produc' gần đây (0,37 2015) từ: http://blog.alivate.com.au/poppler-windows/


Chỉ cần một sửa chữa nhỏ: lệnh thứ hai trong khối mã đầu tiên không nên bắt đầu pdftoppm bằngpdfimages
satyanarayan rao

không, pdfimages cũ lưu hình ảnh được trích xuất vào ppm như pdftoppm và pdftoppm không bao giờ có tùy chọn -list. Các bản pdf hiện tại có thể lưu trực tiếp vào PNG và JPG với -tất cả như đã nêu trong ghi chú
Valerio

13

Tôi đã tìm thấy nó nhanh hơn và ổn định hơn khi xử lý hàng loạt các tệp PDF lớn thành PNG và JPG để sử dụng lệnh cơ bản gs(còn gọi là Ghostscript) convertsử dụng.

Bạn có thể thấy lệnh trong đầu ra của convert -verbosevà có một vài điều chỉnh nữa có thể có (YMMV) rất khó / không thể truy cập trực tiếp thông qua convert.

Tuy nhiên, sẽ khó hơn khi thực hiện cắt tỉa và làm sắc nét bằng cách sử dụng gs, vì vậy, như tôi đã nói, YMMV!


10

Nó cũng cho bạn kết quả tốt:

exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg");

7

Người dùng Linux ở đây: Tôi đã thử converttiện ích dòng lệnh (cho PDF sang PNG) và tôi không hài lòng với kết quả này. Tôi thấy điều này dễ dàng hơn, với kết quả tốt hơn:

  • trích xuất (các) trang pdf với pdftk
    • ví dụ: pdftk file.pdf cat 3 output page3.pdf
  • mở (nhập) mà pdf với GIMP
    • quan trọng: thay đổi nhập Resolutiontừ 100đến 300hoặc600 pixel/in
  • trong GIMPxuất dưới dạng PNG (thay đổi phần mở rộng tệp thành .png)

Biên tập:

Đã thêm hình ảnh, theo yêu cầu trong Comments. Chuyển đổi lệnh được sử dụng:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP: được nhập ở mức 300 dpi (px / in); xuất dưới dạng nén 3 cấp PNG.

Tôi chưa sử dụng GIMP trên dòng lệnh (re: bình luận của tôi, bên dưới).

pdf2png

nhập mô tả hình ảnh ở đây


1
Điều này có thể được tự động nếu bạn có hàng ngàn trang?
JBWhitmore

@JBWhitmore: câu hỏi hay. Chắc chắn sẽ rất đơn giản để kịch bản lệnh pdftk, vì nó đã có trên dòng lệnh. Tôi đã thực hiện một tìm kiếm Google rất nhanh và thấy rằng GIMP có chế độ hàng loạt (tôi chưa thử nó, nhưng có vẻ như nó cũng có thể được script
Victoria Stuart

1
@JBWhmore thêm một tập lệnh ví dụ để tự động hóa chuyển đổi này được hiển thị trên câu hỏi / câu trả lời này: unix.stackexchange.com/questions/121293/ phỏng
tsherwen

1
@tsherwen, Nếu tôi đọc liên kết đó một cách chính xác thì đó là cách tự động hóa lệnh convert. Tôi không bối rối về cách làm điều đó. Tuy nhiên, câu trả lời này cho biết sử dụng GIMP như một trong các bước - và câu trả lời này cũng như liên kết không xuất hiện để chỉ ra cách tự động hóa điều đó.
JBWhitmore

1
@JBWhitmore. Tôi đã nhầm lẫn khi chỉ nghĩ về câu hỏi trên convert. Tôi chỉ thấy một phần của câu trả lời này đề cập đến convertvà câu hỏi của bạn trong khi đọc bình luận tự động hóa của bạn. Cảm ơn câu trả lời của bạn sau này về chủ đề này, mà tôi đã kết hợp với giải pháp tôi liên kết và giải quyết một vấn đề khác mà tôi đang gặp phải.
tsherwen

7

Tôi thực sự không có thành công tốt với convert[cập nhật tháng 5 năm 2020: thực sự: nó gần như không bao giờ có tác dụng với tôi], nhưng tôi đã thành công TUYỆT VỜI pdftoppm. Dưới đây là một vài ví dụ về việc tạo ra hình ảnh chất lượng cao từ PDF:

  1. [Tạo các tệp có kích thước ~ 25 MB mỗi pg] Xuất định dạng tệp .tif không nén ở 300 DPI vào một thư mục có tên là "hình ảnh", với các tệp được đặt tên pg-1.tif , pg-2.tif , pg-3.tif , Vân vân:

    mkdir -p images && pdftoppm -tiff -r 300 mypdf.pdf images/pg
    
  2. [Tạo các tệp có kích thước ~ 1MB mỗi pg] Xuất ra ở định dạng .jpg300 DPI :

    mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
    
  3. [Tạo các tệp có kích thước ~ 2MB mỗi pg] Xuất ra ở định dạng .jpg ở chất lượng cao nhất (nén ít nhất) và vẫn ở mức 300 DPI :

    mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
    

Để biết thêm giải thích, tùy chọn và ví dụ, xem câu trả lời đầy đủ của tôi ở đây:

https://askubfox.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844 .

Liên quan:

  1. [Cách biến tệp PDF thành tệp PDF có thể tìm kiếm w / pdf2searchablepdf] https://askubfox.com/questions/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881
  2. Liên kết chéo:
    1. Làm cách nào để chuyển đổi PDF thành JPG với dòng lệnh trong linux?
    2. /unix/11835/pdf-to-jpg-without-quality-loss-gscan2pdf/585574#585574

6

Trong ImageMagick, bạn có thể thực hiện "siêu mẫu". Bạn chỉ định một mật độ lớn và sau đó thay đổi kích thước xuống nhiều như mong muốn cho kích thước đầu ra cuối cùng. Ví dụ với hình ảnh của bạn:

convert -density 600 test.pdf -background white -flatten -resize 25% test.png


nhập mô tả hình ảnh ở đây

Tải về hình ảnh để xem ở độ phân giải đầy đủ để so sánh ..

Tôi không khuyên bạn nên lưu vào JPG nếu bạn muốn xử lý thêm.

Nếu bạn muốn đầu ra có cùng kích thước với đầu vào, thì hãy thay đổi kích thước thành tỷ lệ nghịch của tỷ lệ mật độ của bạn thành 72. Ví dụ: mật độ 288 và kích thước 25%. 288 = 4 * 72 và 25% = 1/4

Mật độ càng lớn thì chất lượng kết quả càng tốt, nhưng sẽ mất nhiều thời gian hơn để xử lý.


3

Thêm một gợi ý nữa là bạn có thể sử dụng GIMP.

Chỉ cần tải tệp PDF trong GIMP-> lưu dưới dạng .xcf và sau đó bạn có thể làm bất cứ điều gì bạn muốn với hình ảnh.


9
Lý do để thực hiện điều này thông qua dòng lệnh là tôi có hàng ngàn trang cần quy trình này.
JBWhitmore

Ngoài ra, GIMP hiển thị trang khi tải , vì vậy bạn sẽ muốn đặt độ phân giải khi bạn chọn các trang để tải. Việc bạn đặt tham số đầu ra là không quan trọng nếu bạn bắt đầu với mặc định 100 DPI khi tải.
Keith Davies

1

Tôi sử dụng icepdf một công cụ java pdf mã nguồn mở. Kiểm tra bản demo văn phòng .

package image2pdf;

import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class pdf2image {

   public static void main(String[] args) {

      Document document = new Document();
      try {
         document.setFile("C:\\Users\\Dell\\Desktop\\test.pdf");
      } catch (PDFException ex) {
         System.out.println("Error parsing PDF document " + ex);
      } catch (PDFSecurityException ex) {
         System.out.println("Error encryption not supported " + ex);
      } catch (FileNotFoundException ex) {
         System.out.println("Error file not found " + ex);
      } catch (IOException ex) {
         System.out.println("Error IOException " + ex);
      }

      // save page captures to file.
      float scale = 1.0f;
      float rotation = 0f;

      // Paint each pages content to an image and
      // write the image to file
      for (int i = 0; i < document.getNumberOfPages(); i++) {
         try {
         BufferedImage image = (BufferedImage) document.getPageImage(
             i, GraphicsRenderingHints.PRINT, Page.BOUNDARY_CROPBOX, rotation, scale);

         RenderedImage rendImage = image;
         try {
            System.out.println(" capturing page " + i);
            File file = new File("C:\\Users\\Dell\\Desktop\\test_imageCapture1_" + i + ".png");
            ImageIO.write(rendImage, "png", file);
         } catch (IOException e) {
            e.printStackTrace();
         }
         image.flush();
         }catch(Exception e){
             e.printStackTrace();
         }
      }

      // clean up resources
      document.dispose();
   }
}

Tôi cũng đã cố gắng ImageMagickpdftoppm , cả pdftoppm và icepdf có độ phân giải cao hơn so với ImageMagick.


1

Xin lưu ý trước khi bỏ phiếu, giải pháp này dành cho Gimp sử dụng giao diện đồ họa và không dành cho ImageMagick bằng dòng lệnh, nhưng nó hoạt động hoàn toàn tốt đối với tôi như một giải pháp thay thế và đó là lý do tôi thấy cần chia sẻ ở đây.

Thực hiện theo các bước đơn giản này để trích xuất hình ảnh ở bất kỳ định dạng nào từ tài liệu PDF

  1. Tải xuống Chương trình thao tác hình ảnh GIMP
  2. Mở chương trình sau khi cài đặt
  3. Mở tài liệu PDF mà bạn muốn trích xuất hình ảnh
  4. Chỉ chọn các trang của tài liệu PDF mà bạn muốn trích xuất hình ảnh từ đó. N / B: Nếu bạn chỉ cần ảnh bìa, chỉ chọn trang đầu tiên.
  5. Nhấp vào mở sau khi chọn các trang mà bạn muốn trích xuất hình ảnh từ
  6. Nhấp vào menu Tệp khi GIMP khi các trang mở
  7. Chọn Xuất như trong menu Tệp
  8. Chọn loại tệp ưa thích của bạn theo tiện ích mở rộng (giả sử png) bên dưới hộp thoại bật lên.
  9. Nhấp vào Xuất để xuất hình ảnh của bạn đến vị trí mong muốn của bạn.
  10. Sau đó, bạn có thể kiểm tra trình thám hiểm tệp của mình cho hình ảnh được xuất.

Đó là tất cả.

Tôi hi vọng cái này giúp được


Câu hỏi dành cho ImageMagick bằng cách sử dụng một dòng lệnh, không phải cho Gimp sử dụng giao diện đồ họa.
sidney ngày

0

Tập tin PNG bạn đính kèm trông thực sự mờ. Trong trường hợp nếu bạn cần sử dụng xử lý hậu kỳ bổ sung cho mỗi hình ảnh bạn đã tạo dưới dạng xem trước PDF, bạn sẽ giảm hiệu suất của giải pháp.

2JPEG có thể chuyển đổi tệp PDF bạn đã đính kèm thành một tệp JPG sắc nét và cắt các lề trống trong một cuộc gọi:

2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop

Sự mờ nhạt trong PNG gốc là điều đã truyền cảm hứng cho câu hỏi ngay từ đầu và PNG trong câu trả lời được chấp nhận là khá rõ nét.
JBWhitmore

0

Sử dụng dòng lệnh này:

convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png

Điều này sẽ chuyển đổi chính xác các tập tin như bạn đã yêu cầu.


0

Kịch bản python sau đây sẽ hoạt động trên mọi máy Mac (Snow Leopard trở lên). Nó có thể được sử dụng trên dòng lệnh với các tệp PDF liên tiếp làm đối số hoặc bạn có thể đưa vào hành động Run Shell Script trong Automator và tạo một Dịch vụ (Thao tác nhanh trong Mojave).

Bạn có thể đặt độ phân giải của hình ảnh đầu ra trong tập lệnh.

Tập lệnhHành động nhanh có thể được tải xuống từ github.

#!/usr/bin/python
# coding: utf-8

import os, sys
import Quartz as Quartz
from LaunchServices import (kUTTypeJPEG, kUTTypeTIFF, kUTTypePNG, kCFAllocatorDefault) 

resolution = 300.0 #dpi
scale = resolution/72.0

cs = Quartz.CGColorSpaceCreateWithName(Quartz.kCGColorSpaceSRGB)
whiteColor = Quartz.CGColorCreate(cs, (1, 1, 1, 1))
# Options: kCGImageAlphaNoneSkipLast (no trans), kCGImageAlphaPremultipliedLast 
transparency = Quartz.kCGImageAlphaNoneSkipLast

#Save image to file
def writeImage (image, url, type, options):
    destination = Quartz.CGImageDestinationCreateWithURL(url, type, 1, None)
    Quartz.CGImageDestinationAddImage(destination, image, options)
    Quartz.CGImageDestinationFinalize(destination)
    return

def getFilename(filepath):
    i=0
    newName = filepath
    while os.path.exists(newName):
        i += 1
        newName = filepath + " %02d"%i
    return newName

if __name__ == '__main__':

    for filename in sys.argv[1:]:
        pdf = Quartz.CGPDFDocumentCreateWithProvider(Quartz.CGDataProviderCreateWithFilename(filename))
        numPages = Quartz.CGPDFDocumentGetNumberOfPages(pdf)
        shortName = os.path.splitext(filename)[0]
        prefix = os.path.splitext(os.path.basename(filename))[0]
        folderName = getFilename(shortName)
        try:
            os.mkdir(folderName)
        except:
            print "Can't create directory '%s'"%(folderName)
            sys.exit()

        # For each page, create a file
        for i in range (1, numPages+1):
            page = Quartz.CGPDFDocumentGetPage(pdf, i)
            if page:
        #Get mediabox
                mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
                x = Quartz.CGRectGetWidth(mediaBox)
                y = Quartz.CGRectGetHeight(mediaBox)
                x *= scale
                y *= scale
                r = Quartz.CGRectMake(0,0,x, y)
        # Create a Bitmap Context, draw a white background and add the PDF
                writeContext = Quartz.CGBitmapContextCreate(None, int(x), int(y), 8, 0, cs, transparency)
                Quartz.CGContextSaveGState (writeContext)
                Quartz.CGContextScaleCTM(writeContext, scale,scale)
                Quartz.CGContextSetFillColorWithColor(writeContext, whiteColor)
                Quartz.CGContextFillRect(writeContext, r)
                Quartz.CGContextDrawPDFPage(writeContext, page)
                Quartz.CGContextRestoreGState(writeContext)
        # Convert to an "Image"
                image = Quartz.CGBitmapContextCreateImage(writeContext) 
        # Create unique filename per page
                outFile = folderName +"/" + prefix + " %03d.png"%i
                url = Quartz.CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, outFile, len(outFile), False)
        # kUTTypeJPEG, kUTTypeTIFF, kUTTypePNG
                type = kUTTypePNG
        # See the full range of image properties on Apple's developer pages.
                options = {
                    Quartz.kCGImagePropertyDPIHeight: resolution,
                    Quartz.kCGImagePropertyDPIWidth: resolution
                    }
                writeImage (image, url, type, options)
                del page

0

Bạn có thể làm điều đó trong LibreOffice Draw (thường được cài đặt sẵn trong Ubuntu ):

  1. Mở tệp PDF trong LibreOffice Draw.
  2. Di chuyển đến trang bạn cần.
  3. Đảm bảo các yếu tố văn bản / hình ảnh được đặt chính xác. Nếu không, bạn có thể điều chỉnh / chỉnh sửa chúng trên trang.
  4. Menu trên cùng: Tệp> Xuất ...
  5. Chọn định dạng hình ảnh bạn cần trong menu dưới cùng bên phải. Tôi khuyên bạn nên PNG.
  6. Đặt tên cho tệp của bạn và nhấp vào Lưu.
  7. Cửa sổ tùy chọn sẽ xuất hiện, vì vậy bạn có thể điều chỉnh độ phân giải và kích thước.
  8. Nhấn OK, và bạn đã hoàn thành.

0

Tôi đã sử dụng pdf2image . Một thư viện python đơn giản mà hoạt động như quyến rũ.

Đầu tiên cài đặt poppler trên máy không linux. Bạn chỉ có thể tải về zip. Giải nén trong Tệp chương trình và thêm bin vào Đường dẫn máy.

Sau đó, bạn có thể sử dụng pdf2image trong lớp python như thế này:

from pdf2image import convert_from_path, convert_from_bytes
images_from_path = convert_from_path(
   inputfile,
   output_folder=outputpath,
   grayscale=True, fmt='jpeg')

Tôi không tốt với python nhưng đã có thể làm cho nó ra. Sau này bạn có thể sử dụng exe với tham số đầu vào và đầu ra của tệp. Tôi đã sử dụng nó trong C # và mọi thứ đang hoạt động tốt.

Chất lượng hình ảnh tốt. OCR hoạt động tốt.


-1

Nó thực sự khá dễ thực hiện với Preview trên máy mac. Tất cả những gì bạn phải làm là mở tệp trong Xem trước và lưu - dưới dạng (hoặc xuất) một png hoặc jpeg nhưng đảm bảo rằng bạn sử dụng ít nhất 300 dpi ở dưới cùng của cửa sổ để có được hình ảnh chất lượng cao.


6
Điều này có thể được tự động nếu bạn có hàng ngàn trang?
JBWhitmore
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.