আমি কীভাবে পিডিএফ প্রতি পৃষ্ঠায় 2 টি পাশ দিয়ে প্রতি পৃষ্ঠায় 1 পাশ করতে পারি?
আমি কীভাবে পিডিএফ প্রতি পৃষ্ঠায় 2 টি পাশ দিয়ে প্রতি পৃষ্ঠায় 1 পাশ করতে পারি?
উত্তর:
ঠিক আছে, অ্যাক্রোব্যাট (পুরো সংস্করণ, পাঠক নয়) এর সাহায্যে সমস্যাটি ইতিমধ্যে সমাধান হয়ে গেছে। তবে অ্যাক্রোব্যাটটিতে অ্যাক্সেস না থাকলে কী করবেন? এটি কি ঘোস্টস্ক্রিপ্ট এবং পিডিএফটক দিয়েও করা যেতে পারে?
... এবং এর মজাদার জন্য, আসুন "ডাবল-আপ" পৃষ্ঠাগুলির সাথে একটি ইনপুট ফাইলটি ব্যবহার না করে "ট্রিবল-আপ" সহ একটি ব্যবহার করা যাক। আসলে, আমি ইমেলের মাধ্যমে আজ এমন একটি পিডিএফ পেয়েছি। এটি একটি ফ্লায়ার ছিল, লেপোরেলোর স্কিমে ভাঁজ করা । শীটটির আকারটি A4 আড়াআড়ি ছিল (842pt x 595pt), এবং এটি এটিকে ফোল্ড করে আউট করা হয়েছিল:
Front side to be printed, page 1 of PDF
+--------+--------+--------+ ^
| | | | |
| 5 | 6 | 1 | |
| | | | 595 pt
| | | | |
| | | | |
| | | | |
+--------+--------+--------+ v
^ ^
fold fold
v v
+--------+--------+--------+ ^
| | | | |
| 2 | 3 | 4 | |
| | | | 595 pt
| | | | |
| | | | |
| | | | |
+--------+--------+--------+ v
Back side to be printed, page 2 of PDF
<---------- 842 pt -------->
আমি 6 টি পৃষ্ঠা সহ 1 পিডিএফ তৈরি করতে চাই, যার প্রত্যেকটিরই 280.67pt x 595 pt এর অস্বাভাবিক আকার রয়েছে।
আসুন প্রথমে প্রতিটি ইনপুট পৃষ্ঠা থেকে বাম বিভাগগুলি বের করুন:
gswin32c.exe ^
-o left-sections.pdf ^
-sDEVICE=pdfwrite ^
-g2807x5950 ^
-c "<</PageOffset [0 0]>> setpagedevice" ^
-f myflyer.pdf
এই পরামিতিগুলি কী করেছিল?
-o ...............:
নাম আউটপুট ফাইল। ছদ্মবেশীও ব্যবহার করে -dBATCH -dNOPAUSE -dSAFER
।-sDEVICE=pdfwrite :
আমরা আউটপুট ফর্ম্যাট হিসাবে পিডিএফ চাই।-g................:
আউটপুট মিডিয়া আকার পিক্সেল মধ্যে সেট করে। পিডিএফরাইটের ডিফল্ট রেজোলিউশন 720 ডিপিআই। অতএব পেজঅফসেটের জন্য ম্যাচ পেতে 10 দিয়ে গুণ করুন।-c "..............:
ঘোস্টস্ক্রিপ্টকে মূল ইনপুট ফাইলের (যার সাথে অনুসরণ করা দরকার -f
) ঠিক আগে প্রদত্ত পোস্টস্ক্রিপ্ট কোড স্নিপেট প্রক্রিয়া করতে বলে asks<</PageOffset ....:
মাঝারি পৃষ্ঠা চিত্র স্থানান্তর সেট করে। (অবশ্যই, বাম পৃষ্ঠাগুলির জন্য শিফটটির [0 0]
কোনও আসল প্রভাব নেই))-f ...............:
এই ইনপুট ফাইলটি প্রক্রিয়া করুন।শেষ আদেশটি কোন ফলাফল অর্জন করেছিল?
এইটা:
Output file: left-sections.pdf, page 1
+--------+ ^
| | |
| 5 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
Output file: left-sections.pdf, page 2
+--------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
< 280 pt >
এখন কেন্দ্রের বিভাগগুলির জন্য অভিন্ন জিনিসটি করা যাক:
gswin32c.exe ^
-o center-sections.pdf ^
-sDEVICE=pdfwrite ^
-g2807x5950 ^
-c "<</PageOffset [280.67 0]>> setpagedevice" ^
-f myflyer.pdf
ফলাফল:
Output file: center-sections.pdf, page 1
+--------+ ^
| | |
| 6 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
Output file: center-sections.pdf, page 2
+--------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
< 280 pt >
শেষ, সঠিক বিভাগগুলি:
gswin32c.exe ^
-o right-sections.pdf ^
-sDEVICE=pdfwrite ^
-g2807x5950 ^
-c "<</PageOffset [561.34 0]>> setpagedevice" ^
-f myflyer.pdf
ফলাফল:
Output file: right-sections.pdf, page 1
+--------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
Output file: right-sections.pdf, page 2
+--------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+--------+ v
< 280 pt >
এখন আমরা পৃষ্ঠাগুলি একটি ফাইলে একত্রিত করি:
pdftk.exe ^
A=right-sections.pdf ^
B=center-sections.pdf ^
C=left-sections.pdf ^
cat A1 B2 C2 A2 B1 C1 ^
output single-files-input.pdf
verbose
সম্পন্ন. এখানে কাঙ্ক্ষিত ফলাফল। 60 টি ভিন্ন পৃষ্ঠা, আকারের 280.67x595।
ফলাফল:
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ ^
| | | | | | | | | | | | |
| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | |
| | | | | | | | | | | | 595 pt
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
+--------+ +--------+ +--------+ +--------+ +--------+ +--------+ v
< 280 pt > < 280 pt > < 280 pt > < 280 pt > < 280 pt > < 280 pt >
f = open("order.dat","w")
for i in [a+1 for a in xrange(63)]: f.write("A{0} B{0} ".format(i))
f.close()
এটি "A1 B1 A2 B2 ... A63 B63" দিয়ে একটি ফাইল অর্ডার তৈরি করবে । তারপরে আপনি এটিকে অনুলিপি করতে পারেন pdftk
।
ঠিক একই সমস্যা ছিল। আমি পিডিএফ পৃষ্ঠাগুলি পৃথক এবং ক্রপ করার জন্য একটি মুক্ত উত্স জাভা জিইউআই সরঞ্জাম ব্রিসকে হোঁচট খেয়েছি:
http://sourceforge.net/projects/briss/
এটি লিনাক্সে আমার পক্ষে খুব ভাল কাজ করেছে, যদিও ইউজার ইন্টারফেস সম্পূর্ণ তুচ্ছ নয়। এমনকি এটি বিভিন্ন আকারের পৃষ্ঠাগুলি সহ একটি পিডিএফ দিয়ে কাজ করেছে!
@ পেইমস, ধন্যবাদ আপনার পদ্ধতির ধাপে ধাপে সংস্করণ এখানে। আমি আমার ফাইন্ডেল ডিএক্সের জন্য রূপান্তর করতে চেয়েছি এমন একটি ফাইলে চেষ্টা করেছিলাম এবং এটি পুরোপুরি কার্যকর হয়:
এর পরে, ফলাফলগুলি একটি একক ফাইলে প্রবেশের জন্য pdftk.exe ( http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ থেকে ) ব্যবহার করুন। "Pdftk.exe", "বাম.পিডিএফ" এবং "ডান.পিডিএফ" কে "ডি: \" এ অনুলিপি করুন এবং সম্পাদন করুন:
দ্রষ্টব্য: আপনি যদি ফাইলগুলি "সি: \" এ অনুলিপি করেন তবে সুরক্ষা অনুমতিের কারণে এটি উইন 7 এর অধীনে কাজ করবে না। আপনার যদি ডি: have না থাকে তবে ক্রিয়াকলাপটি সম্পন্ন করতে একটি ডিরেক্টরি "সি: \ x" তৈরি করুন।
এই ফলাফলগুলি সাধারণত যথেষ্ট ভাল হবে। তবে আউটপুট উন্নত করার জন্য আরও দুটি alচ্ছিক পদক্ষেপ রয়েছে।
আপনি নথির সদৃশ করতে পারেন, তারপরে পৃষ্ঠাগুলি ক্রপ করুন যাতে কেবলমাত্র পৃষ্ঠার নম্বরগুলি একটি ফাইলে প্রদর্শিত হয় এবং অন্যটিতে কেবল বিজোড় পৃষ্ঠা নম্বর থাকে। তারপরে ফাইলগুলিকে একক পৃষ্ঠায় বিভক্ত করুন এবং এক পৃষ্ঠায় একক দস্তাবেজ তৈরি করতে পুনরায় সমন্বিত করুন ...
আপনি এটি বেশ কয়েকটি পদ্ধতি ব্যবহার করে করতে পারেন, উদাহরণস্বরূপ:
আমি ম্যাক এবং লিনাক্সে স্ক্যান হওয়া বইগুলি প্রক্রিয়া করতে নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করি। এটি বেশ স্মৃতি নিবিড় পেতে পারে।
#!/bin/bash
#
# This script processes scanned books. After scanning the books have been cropped with
# Preview. This does kind of a "soft crop" that we need to make a bit "harder".
#
# The second step is to take each page of the PDF and split this into two two pages,
# because each page of the scanned document actually contains two pages of the book.
#
#
FILE=`mktemp`.pdf
FILE2=`mktemp`.pdf
FILE3=`mktemp`.pdf
echo "Making a temporary copy of the input file."
cp $1 $FILE
#
# Start cropping
#
echo "Cropping the PDF"
# The first regex removes all boxes but CropBox. The second regex renames the CropBox as MediaBox
perl -pi.bak -e 's/\/(Media|Bleed|Art|Trim)Box[\n\l\f\s]*\[(.+?)\]//msg;' $FILE
perl -pi.bak -e 's/CropBox/MediaBox/g;' $FILE
echo "Validating the PDF"
#Run PDFTK to ensure that the file is OK
cat $FILE | pdftk - output $FILE2
#
# Done cropping, start splitting the pages
#
echo "Splitting the pages in two and changing to 200 dpi with imagemagick. Output goes to $FILE3"
convert -density 200 $FILE2 -crop 50%x0 +repage $FILE3
#
# Done spliting, copy the result in a new file
#
mv $FILE3 $1.pages.pdf
একটি দুর্দান্ত রেফারেন্সের জন্য ধন্যবাদ। আমি অনুরূপ ইস্যুতে ছিলাম তবে আমার জন্য কী কাজ করেছে তা ভাগ করে নিতে চাই।
আমার কাছে ল্যান্ডস্কেপ ওরিয়েন্টেড ট্যাবলয়েড পিডিএফ ছিল কেবল বাম পাশে প্রতিকৃতি ভিত্তিক পাঠ্য। মূলত পৃষ্ঠার ডানদিকে কোনও সামগ্রী নিখরচায় 2-আপ ট্যাবলয়েড হারিয়েছে id অনুরূপ শুরুর পয়েন্ট, তবে ট্যাবলয়েডটি 792 × 1224 (প্রতিকৃতি), 1124 x 792 (ল্যান্ডস্কেপ) এবং আমার প্রয়োজন 1/2 ট্যাবলয়েডের পয়েন্ট সংজ্ঞাটি ছিল 612 x 792 পয়েন্ট।
"C:\Program Files\gs\gs9.10\bin\gswin64c.exe" -o left2.pdf -sDEVICE=pdfwrite -g6120x7920 -c "<</PageOffset [0 0]>> setpagedevice" -f "RFP.pdf"
আমার প্রয়োজনীয় সামগ্রীটি 8.5 x 11 প্রতিকৃতিতে পেয়েছি, আরও অনেক পাঠযোগ্য।
আমি যা বুঝতে পেরেছি তা হল পিডিএফ ফাইলের দুটি পৃষ্ঠাগুলি (এক শীটের পাশাপাশি পাশাপাশি) পিডিএফ ফাইলের দুটি শীটের ফলস্বরূপ প্রতি পৃষ্ঠায় একটি পৃষ্ঠায় রূপান্তর করা দরকার। অন্য কথায়, যদি 15 টি শীটে মোট ত্রিশটি পৃষ্ঠাগুলি থাকে, আমাদের পিডিএফ ফাইলটিকে প্রতিটি পৃষ্ঠার প্রতিটি ত্রিশ শীটের পিডিএফ ফাইলে রূপান্তর করতে হবে। যদি এই সমস্যাটি হয় তবে আমি অ্যাডোব অ্যাক্রোব্যাট ইলেভেন প্রো ব্যবহার করেছি 1 থেকে 30 এর পৃষ্ঠা নম্বর নির্দিষ্ট করে "এক্সট্রাক্ট পৃষ্ঠা সরঞ্জাম"
ক্রপ (পাইথন) এবং পিডিএফসিএসসারের (জাভা) এখনও উল্লেখ করা হয়নি, আপনি যদি পিডিএফএনআপ-পেড লেকচার নোটগুলি আবার কোনও যথাযথ উপস্থাপন পিডিএফতে ফিরিয়ে দিতে চান তবে তা পরীক্ষা করে দেখুন ...