Jump to content

Recommended Posts

Posted

hello everyone!

i am looking for a way to input a PDF file and convert it into a JPG file for each page.

kinda like:

$PDF_input="test.pdf"
$pages=200
$x=0
do
$output_file="page" & $x & ".jpg"
convert_pdf($PDF_input,$output_file)
$x=$x+1
until $x > $pages

it's pretty important so thank you in advance to anyone taking the time to help me :3

SpeedCookie

 

Posted

Welcome to AutoIt and the forum!

You definitely posted in the wrong forum :)
Such a question is best posted in the General help and Support forum.

You could test PDFSAM (PDF Split and Merge). There is a command line interface available as well that allows to create JPGs as well.

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted
  On 10/29/2017 at 8:19 PM, water said:

You could test PDFSAM (PDF Split and Merge). There is a command line interface available as well that allows to create JPGs as well.

Expand  

If you want to use it in Commercial environment I propose you to use QucikPDF library , and my UDF.

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

thank you for your answers but i'm very new to Autoit (and programming in general), i've tried "pdftopng" but i can't really get it to work :/

i really need a quick and dirty way of converting a PDF into multiple image files (pdf, jpg,..), would you be so kind to explain your methods to me :)

thank you

SpeedCookie :3

Posted

You should specify who you asking for.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

  • 4 years later...
  • Moderators
Posted

oddssatisfy,

Please wait at least 24hrs before bumping your own thread.

And as you have already hijacked this one (which at least is relevant!) there is no need to start another. I have deleted your other posts.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted (edited)

I pointed you to PDFSam and the command line options.
What did you try? What didn't work? Please describe as detailed as possible (error message, wrong result ...).

Edit: Command line seems to be only available with the commercial license.

Edit 2: There are so many tools available. Use Google etc. Even Wikipedia has a page on this subject.

Edited by water

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted (edited)
  On 7/16/2022 at 10:06 AM, water said:

Edit: Command line seems to be only available with the commercial license.

Expand  

From same author there is a command line tool called Sejda:

http://www.sejda.org/

Here how to list commands available:

#cs ----------------------------------------------------------------------------
Adaptado de guinness
Snippets ( CMD )
https://www.autoitscript.com/wiki/Main_Page
#ce ----------------------------------------------------------------------------

;https://www.autoitscript.com/wiki/Main_Page
#include <Constants.au3>

ConsoleWrite( _GetDOSOutput('"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat"') & @CRLF)

Func _GetDOSOutput($sCommand)
    Local $iPID, $sOutput = ""

    $iPID = Run('"' & @ComSpec & '" /c ' & $sCommand, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
        $sOutput &= StdoutRead($iPID, False, False)
        If @error Then
            ExitLoop
        EndIf
        Sleep(10)
    WEnd
    Return $sOutput
EndFunc   ;==>_GetDOSOutput

some of the commands returned:

pdftojpeg            Converts a PDF document to multiple JPEG images (one image
                      per page).

 pdftomultipletiff    Converts a PDF document to multiple TIFF images (one image
                      per page).

 pdftosingletiff      Converts a PDF document to a single TIFF image (TIFF format
                      supports multiple images written to a single file).
...
Use "sejda-console <command> -h" for help regarding a specific command

Help for pdftojpeg command:

#include <Constants.au3>

ConsoleWrite( _GetDOSOutput('"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat" pdftojpeg -h') & @CRLF)

Func _GetDOSOutput($sCommand)
    Local $iPID, $sOutput = ""

    $iPID = Run('"' & @ComSpec & '" /c ' & $sCommand, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
        $sOutput &= StdoutRead($iPID, False, False)
        If @error Then
            ExitLoop
        EndIf
        Sleep(10)
    WEnd
    Return $sOutput
EndFunc   ;==>_GetDOSOutput

 

Converts a PDF document to multiple JPEG images (one image per page).

Example usage: sejda-console pdftojpeg -f /tmp/file1.pdf -o /tmp

Usage: sejda-console pdftojpeg options
    [--existingOutput -j value] : policy to use when an output file with the same name already exists. {overwrite, skip, fail}. Default is 'fail' (optional)
    --files -f value... : pdf files to operate on. A list of existing pdf files (EX. -f /tmp/file1.pdf or -f /tmp/password_protected_file2.pdf:secret123) (required)
    [--help -h] : prints usage information. Can be used to detail options for a command '-h command' (optional)
    --output -o value : output directory (required)
    [--outputPrefix -p value] : prefix for the output files name (optional)
    [--pageSelection -s value] : page selection script. You can set a subset of pages to convert. Accepted values: 'num1-num2' or 'num-' or 'num1,num2-num3..' (EX. -s 4,12-14,8,20-) (optional)
    [--resolution -r value] : resolution in dpi. Default is 72 (optional)

Here an example for pdftosingletiff

#include <Constants.au3>

Global $iPID, $sOutput = ""

;$iPID = Run(@ComSpec & " /C " & '"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat" merge -h', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
;$iPID = Run(@ComSpec & " /C " & '"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat" merge -l C:\files.csv -o C:\output.pdf --overwrite', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

Global $sFolder = "C:\escaner\", $sFileName = '', $sText = ''

;Assign a Local variable the search handle of all files in the directory.
Local $hSearch = FileFindFirstFile($sFolder & "*.pdf")
;Check if the search was successful, if not display a message and exit
If $hSearch = -1 Then
  MsgBox($MB_SYSTEMMODAL, "", "Error: No files/directories matched the search pattern.")
  Exit
EndIf

While 1
   $sFileName = FileFindNextFile($hSearch)
   ; If there is no more file matching the search.
   If @error Then ExitLoop

   $sText &= " " & $sFolder & $sFileName
WEnd

;Close the search handle.
FileClose($hSearch)

$sText = StringMid($sText,2)

;$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" merge -l C:\FILEST~1\files.csv -o C:\FILEST~1\output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
;$sFileShort= FileGetShortName($sFolder)
;$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" merge -l " & $sFileShort & "files.csv -o " & $sFileShort & "output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" pdftosingletiff -f " & $sText & " -o " & $sFolder & "\output.tiff -r 100 --colorType gray_scale --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput)

Similar with other commands like simplesplit:

#include <Constants.au3>

Global $iPID, $sOutput = ""

;$iPID = Run(@ComSpec & " /C " & '"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat" merge -h', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
;$iPID = Run(@ComSpec & " /C " & '"' & @ScriptDir & '\sejda-console-2.10.4\bin\sejda-console.bat" merge -l C:\files.csv -o C:\output.pdf --overwrite', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

Global $sFolder = "C:\escaner\", $sFileName = '', $sText = ''

;Assign a Local variable the search handle of all files in the directory.
Local $hSearch = FileFindFirstFile($sFolder & "*.pdf")
;Check if the search was successful, if not display a message and exit
If $hSearch = -1 Then
  MsgBox($MB_SYSTEMMODAL, "", "Error: No files/directories matched the search pattern.")
  Exit
EndIf

While 1
   $sFileName = FileFindNextFile($hSearch)
   ; If there is no more file matching the search.
   If @error Then ExitLoop

   $sText &= " " & $sFolder & $sFileName
WEnd

;Close the search handle.
FileClose($hSearch)

$sText = StringMid($sText,2)

;$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" merge -l C:\FILEST~1\files.csv -o C:\FILEST~1\output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
;$sFileShort= FileGetShortName($sFolder)
;$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" merge -l " & $sFileShort & "files.csv -o " & $sFileShort & "output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-2.10.4\bin\sejda-console.bat"" simplesplit -f " & $sText & " -o " & $sFolder & " -s all -j overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput)

 

Edited by robertocm

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...