আমি কীভাবে পিডিএফ ডকুমেন্টকে পিএইচপিতে একটি পূর্বরূপ চিত্রে রূপান্তর করব? [বন্ধ]


199

কোনও পিডিএফ ডকুমেন্টের একটি অংশ কোনও চিত্রের ফাইলে রেন্ডার করার জন্য কোন লাইব্রেরি, এক্সটেনশন ইত্যাদির প্রয়োজন হবে?

বেশিরভাগ পিএইচপি পিডিএফ লাইব্রেরি যেগুলি পিডিএফ ডকুমেন্টগুলি তৈরি করার আশেপাশে আমি খুঁজে পেয়েছি, কিন্তু ওয়েব ব্যবহারের জন্য উপযুক্ত কোনও চিত্রের বিন্যাসে কোনও নথিকে রেন্ডার করার কোনও সহজ উপায় আছে?

আমাদের পরিবেশটি একটি ল্যাম্প স্ট্যাক।


আমি এটি করতে সক্ষম হতে এবং ফাইলটির একটি .jpgএক্সটেনশন রাখতে চাই would আমি .htaccess অ্যাডহ্যান্ডলার পদ্ধতি চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি।
কিসলিংগার

উত্তর:


228

আপনার দরকার ImageMagickএবংGhostScript

<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

[0]মানে page 1


11
হ্যাঁ এটা কাজ করে. আপনি এটিও করতে পারেন: desire im-> setResolution (300, 300) উদাহরণস্বরূপ আপনার রেজাল্টে আপনার পিডিএফ রেন্ডার করতে।
লুইস মেলগ্রাতি

6
আমি এটি চেষ্টা করে দেখিনি, তবে আপনি যদি গুগল ডক্স ব্যবহার করেন এবং আইফ্রেমে
ডেভিড

4
তবে কীভাবে পিএইচপি ফাইলে ইমেজম্যাগিক এবং গোস্টস্ক্রিপ্ট অন্তর্ভুক্ত করবেন
নামরাথা

1
@ থিংক 123 ব্যবহার করুন $im->thumbnailImage(1500, 0);যা আপনার জেপিজি চিত্রটি 1500 প্রস্থে সেট করবে এবং স্কেল ধরে রাখবে। ডকুমেন্টেশন দেখুন
কেভিন জান্তজার

1
নীচে আমার উত্তর থেকে - আপনি যদি একটি ব্লব থেকে পিডিএফটি লোড করে থাকেন তবে আপনি এভাবেই শেষ পৃষ্ঠার পরিবর্তে প্রথম পৃষ্ঠাটি পাবেন: $ im-> readimageblob ($ blob); $ অ> setiteratorindex (0);
jrjohnson

34

যাঁরা যেকোন কারণে ইমেজম্যাগিক নেই, তাদের জন্য জিডি ফাংশনগুলি ঘোস্টস্ক্রিপ্টের সাথে একত্রে কাজ করবে। পিডিএফকে জেপিজিতে exec()রূপান্তর করতে ভুতাস্ক্রিপ্ট কমান্ডটি চালান , এবং এর ফলে ফলাফলটি ফাইলটি পরিচালনা করুন imagecreatefromjpeg()

ভূস্ট্রিপ্ট কমান্ডটি চালান:

exec('gs -dSAFER -dBATCH -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -sOutputFile=whatever.jpg input.pdf')

কারসাজি করতে, একটি নতুন স্থানধারক চিত্র তৈরি করুন $newimage = imagecreatetruecolor(...)এবং বর্তমান চিত্রটি আনুন bring $image = imagecreatefromjpeg('whatever.jpg'), এবং তারপরে আপনি imagecopyresampled()আকার বা অন্য কোনও অন্তর্নির্মিত, নন- imagemagickকমান্ডের সংখ্যা পরিবর্তন করতে ব্যবহার করতে পারেন


3
কেবলমাত্র প্রথম পৃষ্ঠার চিত্র পেতে, কমান্ডটিতে সুইচ -dFrstPage = 1 -dLastPage = 1 যুক্ত করুন।
টিম ডিয়ারবর্ন

যদি এটি এখনও কাজ না করে তবে আপনার gsবাইনারিটিকে পুরো পথ দেওয়ার প্রয়োজন হতে পারে ।
craned

দেখে মনে হচ্ছে এটি কোনও সিস্টেম কমান্ড চালাচ্ছে। যদি ব্যবহারকারী কোনও ফাইল আপলোড করেন something;rm -rf /?
আইপোগ্রাম

আমি যদি পিডিএফের সমস্ত পৃষ্ঠাকে চিত্রে রূপান্তর করতে চাই। তাহলে কীভাবে করব?
ধারা

31

আপনি ব্যবহার করে পৃষ্ঠা গণনা পেতে পারেন

$im->getNumberImages();

তারপরে আপনি লুপ ব্যবহার করে সমস্ত পৃষ্ঠার থাম্ব তৈরি করতে পারেন।

'file.pdf['.$x.']'

34
(এটি আসলে পাওলো বার্গান্টিনোর জবাব সম্পর্কে একটি মন্তব্য হওয়া উচিত)
সাইমন ইস্ট

স্মার্ট উত্তর। অন্যের দ্বারা দেওয়া হয়নি তবে আপনি লক্ষ্য করেছেন এবং লিখেছেন।
আশু কুমার

16

পিএইচপি এক্সটেনশন ইমেজিক ব্যবহার করুন । রাস্টার আউটপুট চিত্রের পছন্দসই আকারটি নিয়ন্ত্রণ করতে, সেটরেসোলিউশন ফাংশনটি ব্যবহার করুন

<?php    
$im = new Imagick();
$im->setResolution(300, 300);     //set the resolution of the resulting jpg
$im->readImage('file.pdf[0]');    //[0] for the first page
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

(পাওলো বার্গান্টিনো তাঁর উত্তর এবং লুই মেলগ্রাতি তার মন্তব্য সম্পর্কে প্রসারণ) ছবিটি লোড করার আগে আপনাকে রেজুলেশন সেট করতে হবে to)


11

আপনি যদি কোনও ব্লব থেকে পিডিএফটি লোড করে থাকেন তবে আপনি শেষ পৃষ্ঠার পরিবর্তে প্রথম পৃষ্ঠাটি কীভাবে পাবেন:

$im->readimageblob($blob);
$im->setiteratorindex(0);

10
(এটি আসলে পাওলো বার্গান্টিনোর জবাব সম্পর্কে একটি মন্তব্য হওয়া উচিত)
সাইমন ইস্ট

9

ইমেজম্যাগিকের সাথে উপস্থিত 'রূপান্তর' ইউটিলিটিটি কার্যকর করার চেষ্টা করতে পারেন।

exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';

3
Pdf_doc.pdf এর পরিবর্তে, pdf_doc.pdf [0] পছন্দ করা হয়।
জন কুর্লাক

রূপান্তর প্যাকেজটির অংশ ইমেজম্যাগিক; sudo yum ইনস্টল করুন ইমেজম্যাগিক
জ্যাক মিলার

যদি এটি এখনও কাজ না করে তবে আপনার convertবাইনারিটির পুরো পথ সরবরাহ করার প্রয়োজন হতে পারে ।
craned

1
echo 'image-0.jpg';একটি স্ট্রিং প্রদান করে।
suz

আমার জন্য কাজ করেছেন, ধন্যবাদ
ইসাবেলা

4

আমি পিডিএফলিবের লেখক যা পিএইচপি- জন্য একটি ঘোস্টস্ক্রিপ্ট মোড়ক, এই লাইব্রেরিটি ব্যবহারের সুবিধাটি হ'ল এটি ইতিমধ্যে পরীক্ষিত এবং এটির প্রয়োজন নেইImageMagic

পিডিএফ আসার GhostScriptচেয়ে সর্বদা কমান্ডগুলি দ্রুত ImageMagicহয় তাই আপনার উচিত হয় ঘোস্টস্ক্রিপ্ট মোড়ক বা খাঁটি ঘোস্টস্ক্রিপ্ট কমান্ডের সন্ধান করা উচিত

$pdflib = new ImalH\PDFLib\PDFLib();
$pdflib->setPdfPath($pdf_file_path);
$pdflib->setOutputPath($folder_path_for_images);
$pdflib->convert();

হাই, আমি পিডিএফ থেকে পিএনজি তৈরি করতে আপনার পিডিএলিব ব্যবহার করছি। $ পিডিএফলিব = নতুন আইমালএইচ \ পিডিএফলিব \ পিডিএফলিব (); $ pdflib-> setPdfPath ($ pdf_file_path); $ pdflib-> setOutputPath ($ folder_path_for_images); $ পিডিএফলিব-> সেটআইমেজ ফরমেট (\ ImalH \ পিডিএলিব \ পিডিএলিব :: $ IMAGE_FORMAT_PNG); $ pdflib-> setDPI (100); $ pdflib-> setPageRange (1, $ pdflib-> getNumberOfPages ()); $ pdflib-> রূপান্তর করুন (); পিডিএলিবের তৈরি পিএনজি ফাইলগুলির প্রস্থ এবং উচ্চতা নির্ধারণ করার বিকল্প নেই?
ডাব্লুজিএস

হাই, কোনও পিডিএলিব চিত্র ম্যানিপুলেট করার পদ্ধতি সরবরাহ করে না তবে আপনি এটি করতে পারেন can আপনি পিডিএলএলবি ব্যবহার করে পিএনজি তৈরি করার পরে আপনি নিজের কাজটি সম্পাদন করতে github.com/Treinetic/ চিত্র / শিল্পীর মতো আরেকটি চিত্র ম্যানিপুলেশন লাইব্রেরি ব্যবহার করতে পারেন ...
ইমাল হাসানগা পেরে

আমি প্রস্তাবিত উপরের পদ্ধতিটি চেষ্টা করে দেখুন তবে আপনি এখনও লড়াই করে থাকলে imal@treinetic.com এ আমাকে একটি মেল পাঠান এবং আমি আপনাকে একটি নমুনা কোড দিয়ে সাহায্য করব ... চিয়ার্স !!
ইলম হাসানঙ্গা পেরে

আমি একবার চেষ্টা করব। পরামর্শের জন্য ধন্যবাদ.
ডাব্লুজিএস

3

আমি ইনস্টল শেষ! এটা কাজ!

আপনি বেস ইনস্টল ইমেজমেজিক হতে পারে উইন্ডোতে ।

ইন php (local)ব্যবহার কল exec(<command line>) উদা:

<?php
$pdf = "filename.pdf";
$info = pathinfo($pdf);
$file_name =  basename($pdf,'.'.$info['extension']);
echo $file_name;
$pdf = "filename.pdf[0]";
exec("convert $pdf convert-img/$file_name.jpg");    
?>

এছাড়া, আপনি ব্যবহার করা যেতে পারে class imagick পিএইচপি Imagick বর্গ

ধন্যবাদ সবাই আমাকে সাহায্য করেছে!


2

অন্যভাবে চিন্তা করুন, আপনি জাভাস্ক্রিপ্ট ব্যবহার করে পিডিএফকে চিত্রে রূপান্তর করতে নীচের পাঠাগারটি ব্যবহার করতে পারেন

http://usefulangle.com/post/24/pdf-to-jpeg-png-with-pdfjs


আমি যদি সার্ভারে পূর্বরূপ চিত্রটি প্রদর্শন করতে চাই তবে আমরা কীভাবে এটি ব্যবহার করতে পারি?
চিথ্রা

আপনি এটি একবার দেখতে চাইতে পারেন: github.com/scandel/pdfThumbnails । আমি মনে করি আপনি প্রকৃত ফাইলের পাশাপাশি উত্পন্ন চিত্রের থাম্বনেইল আপলোড করতে এবং এটি সংরক্ষণ করতে পারেন, আপনি আপনার সার্ভারে আরও বেশি গণনার সময় বাঁচাতে পারবেন (যেহেতু ক্লায়েন্ট-সাইড কম্পিউটারে থাম্বনেইলিং প্রক্রিয়াটি হয়েছিল)।
সাজেদ জারিন্পোর

1

এখানে আমি বেশ কয়েকটি প্রকল্প লিখেছি এবং ব্যবহার করেছি এমন একটি সাধারণ ক্লাস। এটি কেবল imagickপ্রতিটি পৃষ্ঠাকে ডিস্কের বাইরে লিখে দেয় এবং হ্যান্ডেল করে। যদি কেউ এখনও এটি করার সহজ উপায় খুঁজছেন তবে এই লিঙ্কটি সহায়ক হতে পারে।


2
কেবলমাত্র লিঙ্কের উত্তরগুলি স্ট্যাকওভারফ্লোতে স্বল্পমূল্যের কারণ যদি লিঙ্কটি সরানো হয় বা মারা যায় তবে উত্তরটি একেবারে অকেজো হয়ে যায়। আপনার উত্তরটি উন্নত করতে আপনার সমাধানের বেশিরভাগ অংশ এখানে হার্ডকোড করা উচিত।
মিকম্যাকুসা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.