472,127 Members | 1,698 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,127 software developers and data experts.

convert pdf to image - imagemagick - ghostscript

Ciary
247 Expert 100+
hi all,

it's my second question of today but since i'm stuck with this problem, i'm going to ask it anyway. i'm trying to convert an uploaded pdf file to a jpg, gif or png file. i want to use it as a background image. the problem isn't uploading the file, it's converting the file from pdf to an image.

first, i tried to use imagick. so i installed ghostscript and imagemagick. but then the problems began. i searched 4 days to find a way to get imagick working in php. i tried nearly every solution on google without a positive result. i'm using xampp on windows XP.

does anyone know, in detail how you should install imagick or does anyone know another way to convert pdf files in to images using php.

one other thing. the solution needs to contain a function to rotate the image as well. this might complicate things.

still, i hope someone can help me.
Apr 2 '09 #1
18 32707
Markus
6,050 Expert 4TB
So you want something like an image of the pdf? Not quite sure how you'd do that, apart from create an app that reads the data and then builds it as an image. That'd be a hard thing to do, I guess.

Good luck.

- mark.
Apr 2 '09 #2
Ciary
247 Expert 100+
i found on the php.net website a way to do it with imagick but i have a problem implementing and installing it.

for the interrested: this is the way to convert pdf to image if you get it installed

[EDIT] so, if anyone knows another way. or if anyone knows exacly how to install imagick, i'm here to hear your solutions
Apr 2 '09 #3
Ciary
247 Expert 100+
come on!!

is there really no one who knows how to install imagemagick and imagick properly? i really need this.

il give you a billion thanks and a kiss of you want to :-)

please!! it's urgent :-(
Apr 7 '09 #4
Markus
6,050 Expert 4TB
Installation of imagick.

I've never used it so I can't be of much help.

- mark.
Apr 7 '09 #5
I could also use this code for thumbnails on my Website. Big thanks to whoever can and will code it in shortest possible form. :-)
Apr 7 '09 #6
Ciary
247 Expert 100+
tried that already and it didn't work. but thanks anyway Markus.

secmazec, coding it is the easy part. it's only 8 lines to convert a pdf to an image. installing imagick on windows is a lot harder.

Expand|Select|Wrap|Line Numbers
  1. <?php
  2. $im = new imagick( 'test.pdf[ 0]' ); 
  3.  
  4. $im->setImageColorspace(255);
  5. $im->setCompression(Imagick::COMPRESSION_JPEG);
  6. $im->setCompressionQuality(100);
  7. $im->setImageFormat('jpeg');
  8.  
  9. $im->writeImage('thumb.jpg');
  10. $im->clear();
  11. $im->destroy();
  12. ?>
you will need to install ghostscript too because imagick itself can't handle pdf-files. So, if you get it installed, please let me know.
Apr 8 '09 #7
Thanks Ciary, now I understand.
Apr 8 '09 #8
Ciary
247 Expert 100+
my first question on this forum and after a few weeks, i've finally solved it.

the first thing you need to do when you want to convert a PDF to an image at runtime in php is ... (fill in all abusive content you can think of but the admin doesn't permit me to write) ... with imagick.

after that you install imagemagick and ghostscript
then you write the code: remember that in imagick you needed 5 lines of code. when using ghostscript and imagemagick (things you also needed with imagick) you need this:

Expand|Select|Wrap|Line Numbers
  1. exec(convert upload/test.pdf upload/test.jpg)
you noticed correct. it's only 1 line of code. i'm not sure if it can be used on a unix/linux server but there, installing imagick is a lot easier.

i hope i didn't offend anyone and helped a lot of ppl with this post

grtz

Jan

ps. srr if i sound rude in this post, but i'm a bit frustrated that i searched 3 weeks to find something that simple. and only because of ****** imagick.
Apr 24 '09 #9
Markus
6,050 Expert 4TB
This will be helpful to a lot of people, I expect.

I'll update the post title so that it'll get more attention (via google).
Apr 24 '09 #10
Ciary
247 Expert 100+
a final update on this post about imagick. as every morning, i turn on pc and started my apache. and as always i first run a php_info().

today (after 2 months of searching) ****** imagick suddenly appears in my info. which means it can be used X-|. why today: no idea, i think imagick suddenly thought "i waited long enough, let's start working"

so the solutions to install imagick is doing everything on google and then ... wait for 2 months.
Jun 2 '09 #11
hi,
i am going to try the above because this is what i was searching for. anyway...
like in windows why dont php offer an option to save the libraries in current script execution folder and load it dynamically instead of setting up it in the ini file...
because in shared hosting (where most of the sites are this) it is not possible to modify the php.ini because it reflects to all users... can you suggest something for this... it is really bad that we cannot use much third party controls in php becuse of shared hosting... then what is the point of the world upgrading and upgrading...
99 percent web site owners cannot offer a dedicated hosting... so.... expecting your comment...
Sep 13 '09 #12
Ciary
247 Expert 100+
well if you are using shared hosting, your provider will need to install it on it's server and give the posibility to its clients. it will cost you extra though. therefore, imagick isn't possible on most shared hosting servers. if you want it, you'll have to host it yourself or ask the hosting company to install it for you.

on the comment why you just can't copy your libraries. it's because imagick will just use imagemagick.exe to transform its images. so it needs to be installed. there is a reason why this isn't provided by most hosting companies though. imagemagick asks for a heavy CPU-use. because of this, other users might find problems connecting to the server.

if you really need PDF processing, try using your own webserver :-s

i hope this is an answer to your problem (although it isn't really a solution)
Sep 13 '09 #13
Hi,
http://in.php.net/manual/en/imagick.installation.php
i followed the instructions in the above link... i downloaded the dll file and i pasted in ext folder... uncommented it in ini file.. restarted apache... (windows)...

it did not appear in phpinfo... class not found when i ran my script...

could you give me suggestions...

below the code in the above link another post stated that an old version of PECL made it work...
Sep 13 '09 #14
Ciary
247 Expert 100+
as said in a previous post, i encountered the same problem. i waited two months and then it suddenly did work. i cant explain how and why but it did

if you wont want to wait that long i suggest using exec and a full imagemagick command. this does work.
Sep 13 '09 #15
Hi,
thank you for your replies. now i enabled display_startup_errors and when i restarted apache it displayed that it cannot load this dll. what could be the problem?

message is "This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem"
Sep 13 '09 #16
Ciary
247 Expert 100+
i encountered the same. all links on google give me the same problem. just keep trying 'till it starts.
Sep 13 '09 #17
omerbutt
638 512MB
By reading all these posts i would like to guide in a way which helped me a lot.

To install IMagick on windows xp (php 5.2.x)

1.) download and install ImageMagick-6.5.8-7 Q16-windows-dll.exe
http://www.imagemagick.org/download/binaries/ ImageMagick-6.5.8-7-Q16-windows-dll.exe

2.) download php_imagick_dyn-Q16.dll from:
http://valokuva.org/outside-blog-content/ imagick-windows-builds/080709/

copy dll to [PHP]/extension dir and rename it to php_imagick.dll

(step 2 is not compulsory if you already have the extension installed you need to check in your ext / extensions directory if that php_imagick.dll file exists)

3.) You have to edit your php.ini file and add new extension

"extension=php_imagick.dll"

4.) Save ini file and restart apache server.

(If necessary, restart your windows)

5.) phpinfo() should show imagick enabled.

now till here every thing is fine but when we go to phpinfo it wont show that imagick is enabled ,
the thing to notice are these two lines
No 6 & No 7 on the phpinfo page which have this text

Configuration File (php.ini) Path
Loaded Configuration File


check that the Configuration File (php.ini) Path
and the
Loaded Configuration File
are loading any files. when i was working for the first time it really made me mad
it showede nothing in the Loaded Configuration File tab, it said that no configuration is loaded if this is what the problem is with you then you must enable the changes in the file which is located in the
Configuration File (php.ini) Path otherewise you must change the other file which is against Loaded Configuration File
go there uncomment the
extension=php_imagick.dll
and then restart apache
it will work ,
and to convert i prefer this method rather than jargon of code
Expand|Select|Wrap|Line Numbers
  1. exec("convert test.pdf -thumbnail 800x600 converted_pdf.tiff");
  2.  
Hope that helps you out.
regards,
Omer Aslam
Aug 24 '10 #18
omerbutt
638 512MB
@Sinsain nice ......... can these steps be done through a language or web service....:D ...lol .....
regards,
Omer Aslam.
Mar 28 '11 #19

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

1 post views Thread by Frank Nero | last post: by
5 posts views Thread by Socrates | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.