কমান্ড লাইন থেকে আমি কীভাবে একটি ফাঁকা পিডিএফ তৈরি করব?


57

আমার সম্প্রতি একটি ফাঁকা পিডিএফ পৃষ্ঠার প্রয়োজন ছিল (8.5 "x 11" আকার) এবং বুঝতে পেরেছি যে কমান্ড লাইন থেকে কীভাবে তৈরি করতে হয় তা আমি জানিনা।

ইস্যু করলেtouch blank.pdf খালি পিডিএফ ফাইল তৈরি হয় । এমন কোনও কমান্ড লাইন সরঞ্জাম আছে যা খালি পিডিএফ পৃষ্ঠা তৈরি করে ?


কেন তোমার এটা দরকার? নন-ডুপ্লেক্স প্রিন্টারে দ্বি-পার্শ্বযুক্ত (দ্বৈত) প্রিন্টিংয়ের জন্য আমার একটি মুদ্রণ প্যাকেজ রয়েছে। বিজোড় পৃষ্ঠা গণনা রয়েছে এমন কোনও কাজের জন্য এমনকি সংখ্যাযুক্ত পৃষ্ঠাগুলি মুদ্রণের সময় এটি করার জন্য অতিরিক্ত ফাঁকা পৃষ্ঠা রেখে দেওয়া দরকার। এটি করার জন্য, আমি কেবলমাত্র এলপিতে একটি ফর্মফিড প্রেরণ করি। একটি ফাঁকা পৃষ্ঠা ফাইল ইত্যাদি তৈরি না করেই এটি কৌশলটি করে does
জো

10
@ জো এটি আমাদের ব্যবসায়ের কোনওটিই নয় কেন ব্রায়ান এটি চায় বা এটির প্রয়োজন।
আইয়েন হোল্ডার

6
@ আইইনহোল্ডার: আমি আশা করি আরও এসই ব্যবহারকারী আপনার মতো ভাবেন।
মেহরদাদ

3
@ আইইনহোল্ডার - আমি ওপি'র ব্যবসায়টি দেখার চেষ্টা করছি না! আমি কেবল পরামর্শ দিতে চেয়েছিলাম যে এটি যদি আমি যা করছিলাম তার মতো কিছু হয় তবে এটি করার আরও একটি উপায় আছে। প্রায়শই এর মতো জিনিসগুলি xy সমস্যা ( meta.stackexchange.com/questions/66377/ what-is-the- xy- problem ) হয়, তাই লক্ষ্যটি কী তা জিজ্ঞাসা করা বেশ উপযুক্ত হতে পারে।
জো

5
আমি কেবল উপরের লিঙ্কটি দিয়ে বিস্তারিত পড়েছি। আমি বুঝতে পারি নি যে এটি এত বিতর্কিত বিষয়। টিএল; ডিআর - আপনি কী করছেন তা যদি আপনি জানেন তবে আপনি যে প্রশ্নটি করেছেন তার উত্তর চান want আপনি যদি এতটা পারদর্শী না হন তবে আপনি সম্ভবত ভুল প্রশ্ন এবং সত্যিকারের সমস্যাটি কী সাহায্য করতে পারে তার স্পষ্টতা জিজ্ঞাসা করেছেন।
জো

উত্তর:


85

convert, কেটানের উত্তরে ব্যবহৃত ইমেজম্যাগিক ইউটিলিটি আপনাকে এ জাতীয় কিছু লিখতে দেয়

convert xc:none -page Letter a.pdf

অথবা

convert xc:none -page A4 a.pdf

বা (অনুভূমিক A4 কাগজের জন্য)

convert xc:none -page 842x595 a.pdf

ইত্যাদি , খালি পাঠ্য ফাইল তৈরি না করে। @chbrown লক্ষ্য করেছে যে এটি একটি ছোট পিডিএফ ফাইল তৈরি করে।

"এক্সসি:" এর অর্থ "এক্স কনস্ট্যান্ট ইমেজ" তবে সত্যই "এক্স ক্যানভাস" হিসাবে ভাবা যেতে পারে। এটি কোনও রঙের একক ব্লক নির্দিষ্ট করার উপায়, এক্ষেত্রে কিছুই নয়। Http://imagemagick.org/Usage/canvas/#solid- এ আরও তথ্য যা ইমেজম্যাগিকের জন্য "ডি ফ্যাক্টো" ম্যানুয়াল। [নল থেকে নেওয়া তথ্য দিয়ে supplemented] (ভালো জিনিস pdf:aস্পষ্টভাবে একটি ফাইলের বিন্যাস ঘোষণা করতে ব্যবহার করা যাবে। label:'some text', gradient:, rose:এবং logo: বিশেষ ফাইল ফরম্যাট অন্যান্য উদাহরণ হবে বলে মনে হচ্ছে।)

অঙ্কো পৃথক উত্তর হিসাবে এই পরিবর্তনটি পোস্ট করার পরামর্শ দিয়েছে, তাই আমি এটি করছি।


2
ইমেজম্যাগিকের সত্যিই দরকারী ম্যানুয়াল নেই। "xc: <foo>" এর অর্থ "এক্স কনস্ট্যান্ট ইমেজ" তবে সত্যই "এক্স ক্যানভাস" হিসাবে ভাবা যেতে পারে। এটা তোলে এই ক্ষেত্রে, একটি রং একটি একক ব্লক সেটি নির্ধারণের জন্য একটি উপায় কোনটিImagemagick.org/Usage/canvas/#solid এ আরও তথ্য যা ইমেজম্যাগিকের জন্য "ডি ফ্যাক্টো" ম্যানুয়াল।
পাইপ

2
বাই-দ্য ওয়ে হিসাবে, আপনি যদি বুদ্ধিমান কাগজের আকার চান তবে এটি অক্ষরের পরিবর্তে A4 এর সাথেও কাজ করে।
ট্রিগ

@ টিআরজি: অবশ্যই আমি দুঃখিত যে আমি আমার সম্পাদনায় আপনাকে উল্লেখ করি নি, তবে এই ক্ষেত্রে আমি এটি জানতাম।
বারটেকচম

আমি এটি গ্রহণ করা উত্তরে পরিবর্তিত হয়েছি কারণ এটি আমার মধ্যে রয়েছে~/bin
ব্রায়ান ফিটজপ্যাট্রিক

N ফাঁকা পৃষ্ঠাগুলি সহ একটি পিডিএফ ফাইল তৈরি করতে এই আদেশটি পরিবর্তন করা যেতে পারে?
ব্রায়ান ফিটজপ্যাট্রিক

34

ক্ষুদ্রতম জিআইএফের মতো , সবচেয়ে ছোট ছোট ফাঁকা পৃষ্ঠার পিডিএফটি হাতে হাতে কাজ করা দরকার, কারণ এটি এত ছোট যে অযৌক্তিক-তবে-ক্ষতিকারক বিটগুলি মেটাডাটা ফাইলের আকারের একটি উল্লেখযোগ্য অংশ হয়ে যায় এবং সংক্ষেপণ আসলে জিনিসগুলিকে আরও বড় করে তোলে । এটি ফাইলের কাঠামোর বিটগুলি কী এবং প্রয়োজনীয় নয় সেগুলি সম্পর্কে পিডিএফ স্পেসিফিকেশনের বিধিগুলিতে যত্ন সহকারে মনোযোগ প্রয়োজন। (আপনি কি জানেন যে পৃষ্ঠা বস্তু একটি ধারণ করতে হবে /Resources, অভিধান এমনকি যদি এটা খালি, কিন্তু হয় না একটি অন্তর্ভুক্ত করা প্রয়োজন /Contentsপ্রবাহ?)

আপনি যদি পিডিএফ ১.৫ অবজেক্ট এবং ক্রস-রেফারেন্স স্ট্রিম ব্যবহার না করেন (যার সুবিধা রয়েছে যে ফাইলটি পুরোপুরি মুদ্রণযোগ্য এএসসিআইআই হতে পারে) আমি বিশ্বাস করি আপনি সবচেয়ে ভাল করতে পারেন 317 বাইট। কপি এবং পেস্ট পারেন, নোট নিতে সেখানে প্রতিনির্দেশ টেবিল এন্ট্রির চারটি উপর একটি trailing স্থান (মধ্যে লাইন করা প্রয়োজন যে 0 4এবং trailer<<...), এবং আছে যে না পরে একটি চূড়ান্ত সম্পর্কে newline হতে অনুমিত %%EOF

%PDF-1.4
1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
2 0 obj<</Type/Pages/Count 1/Kids[3 0 R]>>endobj
3 0 obj<</Type/Page/MediaBox[0 0 612 792]/Parent 2 0 R/Resources<<>>>>endobj
xref
0 4
0000000000 65535 f 
0000000009 00000 n 
0000000052 00000 n 
0000000101 00000 n 
trailer<</Size 4/Root 1 0 R>>
startxref
178
%%EOF

ম্যানুয়ালি তৈরি করা v1.5 ক্রস-রেফারেন্স স্ট্রিমের সাথে ক্রস-রেফারেন্স টেবিলটি প্রতিস্থাপন করা ফাইলটিকে আর ছোট করে তুলবে, এর দামের চেয়ে এএসসিআইআই: 294 বাইট প্রিন্টযোগ্য হবে না। (পাঠযোগ্যতা অনুরোধে জন্য, না এ সব আর টাইপ করা সক্ষম হচ্ছে উল্লেখ করতে, নীচের xref প্রবাহ hexdumped করা হয়েছে, কিন্তু এই হয় না তার প্রবাহ অভিধানে প্রতিফলিত। একটি বৈধ পিডিএফ আপনি হয় অবশ্যই পুনরুদ্ধার করার জন্য সঙ্গে hexdump প্রতিস্থাপন সংশ্লিষ্ট কাঁচা বাইনারি বাইট, বা পরিবর্তন /Length 15করতে /Length 30/Filter/ASCIIHexDecodeএবং ফাইলটিকে 328 বাইট দীর্ঘ গ্রহণ।)

%PDF-1.5
1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
2 0 obj<</Type/Pages/Count 1/Kids[3 0 R]>>endobj
3 0 obj<</Type/Page/MediaBox[0 0 612 792]/Parent 2 0 R/Resources<<>>>>endobj
4 0 obj<</Type/XRef/Size 5/W[1 1 1]/Root 1 0 R/Length 15>>stream
0000ff01090001340001650001b200endstream endobj
startxref
178
%%EOF

আমি 1 থেকে 3 অবজেক্টগুলিকে কোনও অবজেক্ট স্ট্রিমের মধ্যে মোড়ানো নিয়েও পরীক্ষা করেছিলাম, তবে এটি স্ট্রিমটি সংকুচিত হয়ে গেলেও এটি সংরক্ষণের চেয়ে বেশি ওভারহেড যুক্ত করে।

এক্সরেফ স্ট্রিমের একটি সম্ভাব্য বিকল্প সূত্রটি

4 0 obj<</Type/XRef/Size 4/W[0 1 0]/Index[1 4]/Root 1 0 R/Length 4>>stream
091365b2endstream endobj

দুঃখের বিষয়, প্রকৃত স্ট্রিম ডেটার দৈর্ঘ্যে পর্যাপ্ত সঞ্চয় হওয়া সত্ত্বেও, অতিরিক্ত /Index[1 4]সঞ্চয়ীগুলি একটি বাইট বাদে ব্যয় করে। এছাড়াও, আপনাকে ফাইলের বাইরে 0 অবজেক্টটি পুরোপুরি ছাড়ার অনুমতি দেওয়া হয়েছে কিনা তা আমার কাছে অস্পষ্ট। (অবজেক্ট 0-তে অবশ্যই প্রজন্মের সংখ্যা -1 থাকতে হবে কিনা তা আমার কাছেও অস্পষ্ট। যদি এটি প্রয়োজন না হয় তবে আপনি আসলে আরও বাইট দিয়ে সেভ করবেন

4 0 obj<</Type/XRef/Size 5/W[1 1 0]/Root 1 0 R/Length 10>>stream
000001090134016501b2endstream endobj

।)

কাগজের আকার পরিবর্তন করতে, 612 792পোস্টস্ক্রিপ্ট পয়েন্টগুলি (72 পোস্টস্ক্রিপ্ট পয়েন্ট = 1 মার্কিন ইঞ্চি বা 25.4 মিলিমিটার) দ্বারা প্রকাশিত, যথাযথ প্রস্থ এবং উচ্চতা দিয়ে প্রতিস্থাপন করুন । উদাহরণস্বরূপ, 595 842এ 4 এর জন্য। আপনি এটিকে শেল স্ক্রিপ্টে এম্বেড করতে পারতেন যা কাগজের আকারের ইচ্ছেমতো খালি পিডিএফকে আলাদা করে দেয়; কেবলমাত্র জটিল অংশটি নিশ্চিত করবে যে startxrefঅফসেট 3 এর আকার পরিবর্তিত হলেও অফসেটটি সঠিক ছিল।


10
এই জন্য একটি মজা কার্যকলাপ হতে পারে codegolf.stackexchange.com
Nate Eldredge

5
তাহলে ভালো কিছু ভাল প্রাপ্ত করা আমি meta.codegolf পোস্ট দেখতে: meta.codegolf.stackexchange.com/questions/8990/...
Nate Eldredge

যদিও এটি কোনও পাঠ্য সম্পাদকের খালি পৃষ্ঠা সহ একটি বৈধ পিডিএফ ডকুমেন্ট তৈরি করার জন্য একটি দুর্দান্ত সমাধান, এটি ঠিক আমি কমান্ডলাইন সমাধান হিসাবে বিবেচনা করি না (যেমন ওপি বলেছিল) asked
কর্ট ফেফেল

23

আপনি যদি convert(একটি চিত্রম্যাগিক ইউটিলিটি) ইনস্টল করেন তবে আপনি এটি করতে পারেন:

touch a.txt && convert a.txt -page Letter a.pdf

1
convertএছাড়াও একটি -sizeঅপশন রয়েছে যা আপনি আউটপুট পিডিএফ আকার নির্ধারণ করতে ব্যবহার করতে পারেন।
এম কে সি

21
আপনি convert xc:none -page Letter a.pdfখালি txt ফাইল তৈরি না করেও লিখতে পারেন ।
বারটেকচম

3
@ বারটেকচমের পদ্ধতিটি মনে হচ্ছে একটি এমনকি ফাঁকা ফাঁকা পৃষ্ঠা তৈরি করা আছে। এটি একটি ছোট ফাইল তৈরি করে, এতে কোনও পছন্দযোগ্য কিছুই নেই এবং এটি কোনও (null)ফন্ট ত্রুটি ট্রিগার করে না ।
chbrown

1
@ বারটেকচোম আমি চাই একটি পৃথক উত্তর হিসাবে যাতে আমি এটির উন্নতি করতে পারি।
আনকো

1
আমি convert.im6: improper image header a.txt '@ ত্রুটি / txt.c / ReadTXTImage / 429 পেয়েছি। রূপান্তর.আইম:: কোনও চিত্র সংজ্ঞায়িত হয়নিa.pdf' @ error/convert.c/ConvertImageCommand/3044.
সিগুর

12

echo .bp | groff -T pdf > t.pdf

গ্রোফ, বিশ্বের সবচেয়ে আন্ডাররেটেড সফ্টওয়্যার দ্বারা আপনার কাছে নিয়ে এসেছিল।


2
আমি পেতে groff: can't find `DESC' fileএবং groff:fatal error: invalid device `pdf'সেন্টওএস 7.2 উপর groff সংস্করণ 1.22.2 সঙ্গে।
gla3dr

bash 4.1.2দৌড় ব্যবহার করে আমার জন্য একই বার্তাgroff 1.18.1.4
zundarz

2
@ gla3dr কেবল গ্রাফ-বেস নয় সম্পূর্ণ গ্রোফ প্যাকেজটি ইনস্টল করুন।
ক্যাপ্টেন জিরাফি

1
.bpকেবলমাত্র "ব্রেক পৃষ্ঠা" এর জন্য দাঁড়িয়েছে, যার কারণে এটি একটি 2 পৃষ্ঠার ডকুমেন্ট তৈরি করে। 1 পৃষ্ঠার নথি তৈরি করতে, আরও সহজতর করুন echo | groff -T pdf > blank.pdf
ফাহিম মিঠা

খুব সুন্দর সমাধান, তবে echo .bpপ্রকৃতপক্ষে প্রতিস্থাপন করা উচিত echo, ঠিক যেমন @ ফাহিমমিঠা বলেছিলেন
myrdd

8

আপনি পিডিএফটেক্স ব্যবহার করতে পারেন:

echo '\shipout\hbox{}\end' | pdftex

যা texput.pdfপ্রায় 900 বাইটের ফাঁকা একক পৃষ্ঠা তৈরি করে , যা চিত্রম্যাগিক ব্যবহার করে তার অর্ধেক।

যদিও এটি আপনাকে আপনার টেক্স ইনস্টলেশনের পেপার সাইজের ডিফল্টের করুণায় ফেলেছে। আকারটি সুস্পষ্টভাবে সেট করতে আপনি পরিবর্তে লটেক্সে যেতে পারেন:

echo '\documentclass[letterpaper]{article}\usepackage[pass]{geometry}
      \begin{document}\shipout\hbox{}\end{document}' | pdflatex

এখনও অন্য বিকল্পটি হস্ত ps2pdfস্ক্রিপ্টের যদিও ঘোস্টস্ক্রিপ্টের পিডিএফ ড্রাইভার ব্যবহার করতে পারে :

echo showpage | ps2pdf -sPAPERSIZE=letter - blank.pdf

যা টেক্সের চেয়ে অনেক বেশি শান্ত তবে কম কমপ্যাক্ট আউটপুট (প্রায় 2300 বাইট) উত্পাদন করে।


1
আমি বৈকল্পিক ব্যবহার echo "" | ps2pdf -sPAPERSIZE=a4 - blank.pdf। এটি 2200 বাইটে কিছুটা ছোট।
ফাহিম মিঠা

echo '\documentclass[letterpaper]{article}\usepackage[pass]{geometry} \begin{document}\shipout\hbox{}\end{document}' | pdflatexসৃষ্টি article.pdf। এটি blank.pdfসরাসরি তৈরি করা সম্ভব ?
ফাহিম মিঠা

@ ফাহিমমিথা: হুম, আমি শূন্য পৃষ্ঠাগুলি সমন্বিত একটি পিডিএফ ফাইল তৈরি করার জন্য একটি খালি ইনপুট দিয়ে পিএস 2 পিডিএফ আশা করব - তবে যখন আমি চেষ্টা করব সেখানে অবশ্যই একটি পৃষ্ঠা রয়েছে। আশ্চর্য যে কোথা থেকে আসে ...
হেনিং মখোলম

@ ফাহিম: টেক্সলাইভ দিয়ে কমপক্ষে আপনি -jobname <basename>কমান্ড লাইনে আউটপুট ফাইলের বেসনাম সেট করতে পারবেন ।
হেনিং মাখোলম

1
@ ফাহিমমিঠা: প্রতিটি \shipout\hbox{}বা showpageএকটি পৃষ্ঠা উত্পাদন করে। টেক্স এবং পোস্টসক্রিপ্ট উভয়েরই আপনি ব্যবহার করতে পারতেন এমন লুপিং কনস্ট্রাক্টস রয়েছে তবে কমান্ডের যথাযথ সংখ্যার সদৃশ করতে আপনার পছন্দের স্ক্রিপ্টিং ভাষাটি ব্যবহার করা সম্ভবত সহজ
হেনিং মাখোলম

3

ফাঁকা পাতা দিয়ে পিডিএফ তৈরি করার একটি সহজ উপায়টি ব্যবহার করছে rst2pdf:

echo -e '.. raw:: pdf\n\n   PageBreak' | rst2pdf -o blank.pdf

কেবল একটি একক জায়গাতে প্রতিধ্বনিত হবে না, আপনি পৃষ্ঠাগুলি ছাড়াই পিডিএফ ফাইলটি শেষ করবেন (যা খালি ফাইলের মতো নয়)।


2

কমান্ড লাইনে, টাইপ করুন:

ps2pdf blank.pdf

কমান্ডটি ps2pdfপোস্টস্ক্রিপ্ট ফাইলটিকে পিডিএফ রূপান্তর করতে ব্যবহৃত হয়

ps2pdf file.ps file.pdf

1
ps2pdf blank.pdfত্রুটি প্রদান করে, কারণ এটি কোনও পোস্টস্ক্রিপ্ট ফাইলটিকে আর্গুমেন্ট হিসাবে প্রত্যাশা করে। এবং দ্বিতীয় কমান্ডের একটি পূর্ব-বিদ্যমান প্রয়োজন file.pdf। আমি কিছু অনুপস্থিত করছি?
ফাহিম মিঠা

1
এটি চেষ্টা করুন: 1 touch blank.ps.; 2 ps2pdf blank.ps blank.pdf.; 3.pdftk A=1.pdf B=blank.pdf cat A1-end B output 2.pdf
ভিক্টোরিয়া স্টুয়ার্ট

2

সর্বশেষে, অন্তত নয়, একটি খালি পৃষ্ঠা দেখানো পিডিএফ তৈরি করার জন্য এখানে ঘোস্টস্ক্রিপ্টের উপায়টি রয়েছে:

 gs -sDEVICE=pdfwrite -o empty.pdf -c showpage

পৃষ্ঠার আকার সম্ভবত লেটার হবে। আপনি যদি A4 চান, এটি ব্যবহার করুন:

 gs -sDEVICE=pdfwrite -o empty.pdf -g5950x8420 -c showpage

পটভূমি:-c প্যারামিটার কোনো বৈধ পোস্টস্ক্রিপ্ট স্ট্রিং, যা প্রস্তুতকারী Ghostscript ব্যাখ্যা করতে চেষ্টা করবে দ্বারা অনুসরণ করা যেতে পারে। এবং পোস্টস্ক্রিপ্টের একটি খালি পৃষ্ঠাটি এই শর্ট কোড ব্লক দ্বারা উপস্থাপিত হয়েছে:

%!PS
showpage
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.