Solved

PDF-XChange Viewer Command Line for File -> Export -> Export as Image

Posted on 2016-07-25
2
1,086 Views
Last Modified: 2016-07-28
Is there a command line for PDF-XChange viewer to automate the process for saving a PDF as a image file through:
File -> Export -> Export as Image
0
Comment
Question by:maverick0728
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 54

Assisted Solution

by:Joe Winograd, EE MVE 2015&2016
Joe Winograd, EE MVE 2015&2016 earned 250 total points
ID: 41727772
A couple of comments. First, PDF-XChange Viewer has been discontinued, as stated at Tracker Software's website:
http://www.tracker-software.com/product/pdf-xchange-viewer

My recommendation is to upgrade to PDF-XChange Editor:
http://www.tracker-software.com/product/pdf-xchange-editor

It also has a free version that you may select during installation:

PDF-XChange Editor - Free or Pro
The manual for it is here:
https://www.tracker-software.com/downloads/PDFXE6MAN.zip

Its command line feature has the ability to run JavaScript (the /runjs command, documented on page 31 of the manual). It should be possible to write a JavaScript that does the export, although I haven't done it.

My second comment is a question: Does it have to be done via PDF-XChange? If you're willing to consider other (free!) products, many have a command line option to convert from PDF to image files, including GraphicsMagick, ImageMagick, and IrfanView. This EE article explains how to do it with GraphicsMagick:
Create an image (BMP, GIF, JPG, PNG, TIF, etc.) from a multi-page PDF

Before reading that, read this other EE article that shows where to get the free GM download and explains the options with respect to its various editions. Regards, Joe
0
 
LVL 85

Accepted Solution

by:
oBdA earned 250 total points
ID: 41733278
Looking at https:28959327, it seems you want to convert single-page pdf documents to pictures?
Here's a bit of Powershell that converts using GhostScript: http://www.ghostscript.com/
You can experiment with the different devices; note that the tiffg... devices are fax format and support multiple pages. The other formats only support one page as it is.
Here's the help for the devices: http://www.ghostscript.com/doc/current/Devices.htm
By default, the script will put the new image in the same folder as the pdf, with the respective extension. You can use the Destination argument to save them in a different folder (this expects a folder name, not a file name).
Existing pictures with the same name will be overwritten without warning.
Save as ConvertTo-Image.ps1 or Whatever.ps1.
You can pipe it a batch of documents to convert; example:
Get-ChildItem C:\Temp\*.pdf | .\ConvertTo-Image.ps1 -tiffg4 -Resolution 600

Open in new window

Or save in a different folder:
Get-ChildItem C:\Temp\*.pdf | .\ConvertTo-Image.ps1 -tiffg4 -Resolution 600 -Destination C:\Temp\tiff

Open in new window

[CmdletBinding()]
Param(
	[Parameter(Mandatory=$True, ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True, Position=0)]
	[String[]]$Path,
	[String]$Destination,	## Folder
	[String]$GhostScript = 'C:\Program Files\gs\gs9.19\bin\gswin64c.exe',
	[ValidateSet(
		'bmp16', 'bmp16m', 'bmp256', 'bmp32b', 'bmpgray', 'bmpmono',
		'jpeg', 'jpeggray',
		'png16', 'png16m', 'png256', 'pngalpha', 'pnggray', 'pngmono', 'pngmonod',
		'tiff12nc', 'tiff24nc', 'tiff32nc', 'tiff48nc', 'tiff64nc', 
		'tiffcrle', 'tiffg3', 'tiffg32d', 'tiffg4', 'tiffgray', 'tifflzw', 'tiffpack'
	)]
	[string]$Device = 'tiffg4',
	[uint16]$Resolution = 300,
	[Switch]$PassThru
)
Begin {
	Switch ($Device) {
		{$_.StartsWith('bmp')}	{$NewExtension = '.bmp'}
		{$_.StartsWith('jpeg')}	{$NewExtension = '.jpg'}
		{$_.StartsWith('png')}	{$NewExtension = '.png'}
		{$_.StartsWith('tiff')}	{$NewExtension = '.tiff'}
	}
}
Process {
	$Path |	ForEach-Object {
		If ($FileItem = Get-Item -Path $_) {
			If ($Destination) {
				$OutputFile = Join-Path -Path $Destination -ChildPath ($FileItem.BaseName + $NewExtension)
			} Else {
				$OutputFile = $FileItem.FullName -replace "$([regex]::Escape($FileItem.Extension))\Z", $NewExtension
			}
			& $GhostScript -dNOPAUSE -dBATCH -sDEVICE="$($Device)" -r"$($Resolution)" -sOutputFile="$($OutputFile)" $FileItem.FullName -q 2>&1 | Write-Host -ForegroundColor Gray
			If ($PassThru -and ($LASTEXITCODE -eq 0)) {
				Get-Item -Path $OutputFile
			}
		}
	}
}
End {
}

Open in new window

0

Featured Post

Enroll in July's Course of the Month

July's Course of the Month is now available! Enroll to learn HTML5 and prepare for certification. It's free for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
Six Sigma Control Plans

632 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question