উত্তর:
কেবল নথিটি ফ্রি অফিস সহ খুলুন এবং পিডিএফ হিসাবে রফতানি চয়ন করুন ... :
কমান্ড লাইন সমাধানের জন্য ইউনোকভ রয়েছে যা কমান্ড লাইন থেকে ফাইলগুলিকে রূপান্তর করে:
unoconv -f pdf mydocument.odt
দ্রষ্টব্য: কেবল উবুন্টু ১১.১০ থেকে শুরু হওয়া ইউনোকনভ লিব্রে অফিসের উপর নির্ভর করে। পূর্ববর্তী ইউনোকভ সংস্করণগুলি (উবুন্টু <= 11.04 থেকে) ওপেন অফিসের উপর নির্ভর করে (তবে এটি লিব্রে অফিসের সাথেও চলবে)।
unoconv
, এটি দুর্দান্ত!
unoconv: Cannot find a suitable office installation on your system.
, অতএব এটা অব্যবহারযোগ্য এর :(
আপনি libreoffice
নিজের উদ্দেশ্যে কমান্ড-লাইনটিও ব্যবহার করতে পারেন । এটি আপনাকে ব্যাচের রূপান্তর করার সুবিধা দেয়। তবে একক ফাইলগুলিও সম্ভব। এই উদাহরণটি বর্তমান ডিরেক্টরিতে সমস্ত ওডিটি ফাইলগুলিকে পিডিএফে রূপান্তর করে:
libreoffice --headless --convert-to pdf *.odt
কমান্ড-লাইন বিকল্পগুলির সাথে আরও তথ্য পান:
man libreoffice
--env:UserInstallation=file:///path/to/some/directory
।
unoconv
পাশাপাশি ব্যাচ রূপান্তর পেতে পরিচালিত । উদাহরণস্বরূপ আমি লাইনটি unoconv -f pdf *.ppt
সফলভাবে ব্যবহার করেছি ।
"নন-জিইউআই" পদ্ধতি সম্পর্কে আরও কয়েকটি বিশদ এখানে রইল।
আপনি এই পদ্ধতিটি কেবল ওডিটি ফাইলগুলিকে পিডিএফে রূপান্তর করতেই ব্যবহার করতে পারেন। এটি এমএস ওয়ার্ড ডওসিএক্স ফাইলগুলির জন্যও কাজ করবে (এটি পাশাপাশি কাজ করবে পাশাপাশি লিব্রেওফিস নির্দিষ্ট ওডিটি পরিচালনা করতে সক্ষম) এবং সাধারণভাবে সমস্ত ফাইল টাইপ যা লিবারঅফিস খুলতে পারে।
আমি মনে করি না যে libreoffice
প্রস্তাবিত অন্যান্য উত্তরগুলির মধ্যে একটির নামে একটি বাইনারি রয়েছে । তবে, সেখানে রয়েছে soffice(.bin)
- বাইনারিটি কমান্ড লাইন থেকে LibreOffice শুরু করতে ব্যবহৃত হতে পারে। এটি সাধারণত অবস্থিত /usr/lib/libreoffice/program/
; এবং খুব প্রায়শই, একটি সিমিলিংক /usr/bin/soffice
সেই অবস্থানটির দিকে নির্দেশ করে।
তারপরে, বেশিরভাগ ক্ষেত্রে পরামিতিগুলি --headless --convert-to pdf
পর্যাপ্ত নয়। এটি হওয়া দরকার:
--headless --convert-to pdf:writer_pdf_Export
ঠিক এই মূলধন অনুসরণ করতে ভুলবেন না!
এর পরে, যদি ইতিমধ্যে আপনার সিস্টেমে কোনও LibreOffice GUI ইনস্ট্যান্স চালু এবং চলমান থাকে তবে কমান্ডটি কাজ করবে না। এটি বাগ # 37531 দ্বারা সংঘটিত হয়েছে, যা ২০১১ সাল থেকে পরিচিত । আপনার কমান্ডে এই অতিরিক্ত পরামিতি যুক্ত করুন:
"-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}"
এটি একটি নতুন, পৃথক পরিবেশ তৈরি করবে যা একই ব্যবহারকারীর দ্বারা চালিত প্রথম GUI এলও ইনস্ট্যান্সটিতে হস্তক্ষেপ না করে দ্বিতীয়, হেডলেস এলও দৃষ্টান্ত ব্যবহার করতে পারে।
এছাড়াও, নিশ্চিত করে নিন যে --outdir /pdf
আপনি যে নির্দিষ্ট করেছেন তা বিদ্যমান রয়েছে এবং আপনার এতে লেখার অনুমতি রয়েছে। বা, বরং একটি ভিন্ন আউটপুট dir ব্যবহার করুন। এমনকি যদি এটি কেবল প্রথম টেস্টিং এবং ডিবাগিং রাউন্ডের জন্য হয়:
$ mkdir ${HOME}/lo_pdfs
অত: পর:
/path/to/soffice \
--headless \
"-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" \
--convert-to pdf:writer_pdf_Export \
--outdir ${HOME}/lo_pdfs \
/path/to/test.docx
এটি আমার জন্য ম্যাক ওএস এক্স জোসেমাইট ১০.১০.৫ এ লিব্রেফিস v5.1.2.2 এর সাথে কাজ করে (বাইনারিটির জন্য আমার নির্দিষ্ট পথটি ব্যবহার করে soffice
যা উবুন্টুতে অন্যরকম হতে পারে ...)। এটি ডেবিয়ান জেসি 8.0 (পথ ব্যবহার করে /usr/lib/libreoffice/program/soffice
) এও কাজ করে । দুঃখিত, এখনই এটি উবুন্টুতে পরীক্ষা করতে পারবেন না ....
আপনি যদি ডসএক্সএক্স প্রক্রিয়া করার চেষ্টা করেন তখন এই সমস্ত কিছু যদি কাজ না করে:
আপনি যে নির্দিষ্ট ডোক্স ফাইলটি কমান্ডটি দিয়ে চেষ্টা করেছেন তাতে সমস্যা হতে পারে ... সুতরাং আপনার নিজের একটি খুব সাধারণ ডোক্স ডকুমেন্ট তৈরি করুন। এর জন্য নিজেই LibreOffice ব্যবহার করুন। "হ্যালো ওয়ার্ল্ড!" লিখুন অন্যথায় খালি পৃষ্ঠায়। এটি ডকএক্স হিসাবে সংরক্ষণ করুন
আবার চেষ্টা করুন. এটি কি সাধারণ ডসএক্সএক্সের সাথে কাজ করে?
যদি এটি আবার কাজ না করে তবে step ধাপ পুনরাবৃত্তি করুন, তবে এবার ওডিটি হিসাবে সংরক্ষণ করুন।
৮ ম ধাপ পুনরাবৃত্তি করুন, তবে এবার ওডিটি উল্লেখ করুন।
সর্বশেষ: প্রতিটিটি প্যারামিটারে soffice
করতে soffice.bin
এবং করতে libreoffice
এবং চালানোর জন্য পুরো পথটি ব্যবহার করুন -h
:
$ /path/to/libreoffice -h # if that path exists, which I doubt!
$ /path/to/soffice -h
$ /path/to/soffice.bin -h
আপনার ব্যবহৃত কমান্ড লাইনের সাথে তাদের তুলনা করুন:
তুলনার জন্য, আমার নিজের (ম্যাক ওএস এক্স) আউটপুট এখানে রয়েছে:
$ /Applications/LibreOffice.app/Contents/MacOS/soffice -h
LibreOffice 5.1.2.2 d3bf12ecb743fc0d20e0be0c58ca359301eb705f
Usage: soffice [options] [documents...]
Options:
--minimized keep startup bitmap minimized.
--invisible no startup screen, no default document and no UI.
--norestore suppress restart/restore after fatal errors.
--quickstart starts the quickstart service
--nologo don't show startup screen.
--nolockcheck don't check for remote instances using the installation
--nodefault don't start with an empty document
--headless like invisible but no user interaction at all.
--help/-h/-? show this message and exit.
--version display the version information.
--writer create new text document.
--calc create new spreadsheet document.
--draw create new drawing.
--impress create new presentation.
--base create new database.
--math create new formula.
--global create new global document.
--web create new HTML document.
-o open documents regardless whether they are templates or not.
-n always open documents as new files (use as template).
--display <display>
Specify X-Display to use in Unix/X11 versions.
-p <documents...>
print the specified documents on the default printer.
--pt <printer> <documents...>
print the specified documents on the specified printer.
--view <documents...>
open the specified documents in viewer-(readonly-)mode.
--show <presentation>
open the specified presentation and start it immediately
--accept=<accept-string>
Specify an UNO connect-string to create an UNO acceptor through which
other programs can connect to access the API
--unaccept=<accept-string>
Close an acceptor that was created with --accept=<accept-string>
Use --unnaccept=all to close all open acceptors
--infilter=<filter>[:filter_options]
Force an input filter type if possible
Eg. --infilter="Calc Office Open XML"
--infilter="Text (encoded):UTF8,LF,,,"
--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files
Batch convert files (implies --headless).
If --outdir is not specified then current working dir is used as output_dir.
Eg. --convert-to pdf *.doc
--convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
--convert-to "html:XHTML Writer File:UTF8" *.doc
--convert-to "txt:Text (encoded):UTF8" *.doc
--print-to-file [-printer-name printer_name] [--outdir output_dir] files
Batch print files to file.
If --outdir is not specified then current working dir is used as output_dir.
Eg. --print-to-file *.doc
--print-to-file --printer-name nasty_lowres_printer --outdir /home/user *.doc
--cat files
Dump text content of the files to console
Eg. --cat *.odt
--pidfile=file
Store soffice.bin pid to file.
-env:<VAR>[=<VALUE>]
Set a bootstrap variable.
Eg. -env:UserInstallation=file:///tmp/test to set a non-default user profile path.
Remaining arguments will be treated as filenames or URLs of documents to open.
soffice
আপনার ডকএক্সএক্স ফাইল খুললে কোনও ইনপুট ফিল্টার প্রয়োগ করার জন্য আপনার কমান্ড লাইনে আরও একটি যুক্তি যুক্ত করুন:
--infilter="Microsoft Word 2007/2010/2013 XML"
অথবা
--infilter="Microsoft Word 2007/2010/2013 XML"
--infilter="Microsoft Word 2007-2013 XML"
--infilter="Microsoft Word 2007-2013 XML Template"
--infilter="Microsoft Word 95 Template"
--infilter="MS Word 95 Vorlage"
--infilter="Microsoft Word 97/2000/XP Template"
--infilter="MS Word 97 Vorlage"
--infilter="Microsoft Word 2003 XML"
--infilter="MS Word 2003 XML"
--infilter="Microsoft Word 2007 XML Template"
--infilter="MS Word 2007 XML Template"
--infilter="Microsoft Word 6.0"
--infilter="MS WinWord 6.0"
--infilter="Microsoft Word 95"
--infilter="MS Word 95"
--infilter="Microsoft Word 97/2000/XP"
--infilter="MS Word 97"
--infilter="Microsoft Word 2007 XML"
--infilter="MS Word 2007 XML"
--infilter="Microsoft WinWord 5"
--infilter="MS WinWord 5"
নটিলাস স্ক্রিপ্ট
এই স্ক্রিপ্টটি LibreOffice কে LibreOffice এর সাথে সামঞ্জস্যপূর্ণ ফাইলগুলিকে পিডিএফে রূপান্তর করতে ব্যবহার করে।
#!/bin/bash
## PDFconvert 0.1
## by Glutanimate (https://askubuntu.com/users/81372/)
## License: GPL 3.0
## depends on python, libreoffice
## Note: if you are using a non-default LO version (e.g. because you installed it
## from a precompiled package instead of the official repos) you might have to change
## 'libreoffice' according to the version you're using, e.g. 'libreoffice3.6'
# Get work directory
base="`python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' $NAUTILUS_SCRIPT_CURRENT_URI`"
#Convert documents
while [ $# -gt 0 ]; do
document=$1
libreoffice --headless --invisible --convert-to pdf --outdir "$base" "$document"
shift
done
ইনস্টলেশন নির্দেশাবলীর জন্য এখানে দেখুন: আমি কীভাবে নটিলাস স্ক্রিপ্ট ইনস্টল করতে পারি?
দ্রষ্টব্য: আমি এই প্রশ্নটি থেকে আমার উত্তরটি মুছে ফেলার এবং এখানে একটি পরিবর্তিত সংস্করণ পোস্ট করার সিদ্ধান্ত নিয়েছি যখন বুঝলাম যে ফাইলগুলি unoconv
মোটেই psw
ভালভাবে মোকাবেলা করে না এবং সেগুলি সফলভাবে অন্যান্য ফর্ম্যাটে রূপান্তরিত করে না। ফর্ম্যাট docx
এবং সমস্যাগুলির সাথেও সমস্যা হতে পারে xlsx
।
তবে Libreoffice
সম্পূর্ণরূপে অনেকগুলি ফাইলের সমর্থন করে; সম্পূর্ণ ডকুমেন্টেশন অফিসিয়াল সাইটে উপলব্ধ, যা বৈধ ইনপুট এবং আউটপুট ফর্ম্যাট বিশদ।
আপনি কমান্ড-লাইন libreoffice
রূপান্তর ইউটিলিটি বা ইউনোকনভ ব্যবহার করতে পারেন , যা সংগ্রহস্থলগুলিতে উপলব্ধ। আমি unoconv
খুব দরকারী বলে মনে করি এবং এটি সম্ভবত আপনি চান। তাকাট সংক্ষিপ্তভাবে উল্লেখ করলেও unoconv
, আমি ভেবেছিলাম যে আরও কিছু বিশদ এবং একটি ব্যাচের রূপান্তর ওয়ান-লাইন দেওয়ার জন্য এটি কার্যকর হবে।
টার্মিনালটি ব্যবহার করে আপনি cd
আপনার ফাইলগুলি ধারণ করে এমন ডিরেক্টরিতে সক্ষম হন এবং তারপরে এই জাতীয় ওয়ান-লাইনার চালিয়ে ব্যাচ তাদের সকলকে রূপান্তর করে:
for f in *.odt; do unoconv -f pdf "${f/%pdf/odt}"; done
(এই ওয়ান-লাইনারটি আমার উত্তরের স্ক্রিপ্টটিতে এই উত্তরে বৈশিষ্ট্যযুক্ত একটি পরিবর্তন )
আপনি যদি পরে অন্য কোনও ফাইল ফর্ম্যাট ব্যবহার করতে চান তবে কেবল বিকল্পের জন্য odt
এবং pdf
অন্য কোনও সমর্থিত ইনপুট এবং আউটপুট ফর্ম্যাটগুলির জন্য। আপনি ফাইল প্রকারের জন্য সমর্থিত ফর্ম্যাটগুলি সন্ধান করতে পারেন unoconv -f odt --show
। একটি একক ফাইল রূপান্তর করতে উদাহরণস্বরূপ unoconv -f pdf myfile.odt
,।
প্রোগ্রামটির আরও তথ্য এবং বিকল্পগুলি টার্মিনালে প্রবেশ করে man unoconv
বা অনলাইনে উবুন্টু ম্যানাপেজগুলিতে গিয়ে খুঁজে পাওয়া যাবে ।
এই খুব সাধারণ এবং লাইটওয়েট নটিলাস স্ক্রিপ্টটি unoconv
LibreOffice এর সাথে সামঞ্জস্যপূর্ণ নির্বাচিত ফাইলগুলি পিডিএফ ফর্ম্যাটে রূপান্তর করতে ব্যবহার করে:
#!/bin/sh
#Nautilus Script to convert selected LibreOffice-compatible file(s) to PDF
#
OLDIFS=$IFS
IFS="
"
for filename in $@; do
unoconv --doctype=document --format=pdf "$filename"
done
IFS=$OLDIFS
আমি একটি নতুন উত্তর যুক্ত করছি, কারণ সাম্প্রতিক সময়ে প্যানডোক ওডিটি ফাইলগুলি পড়ার সক্ষমতা অর্জন করে একাধিক নতুন রূপান্তর পথ খোলে ।
প্যান্ডোক যখন কোনও ফাইল ফর্ম্যাটে পড়েন, তখন এটি এটিকে অভ্যন্তরীণ বিন্যাসে রূপান্তরিত করে, "নেটিভ" (যা জেএসএনের একটি রূপ)।
এর নেটিভ ফর্ম থেকে, এটি ডকুমেন্টটি অন্য ফর্ম্যাটগুলির পুরো পরিসরে রফতানি করতে পারে। কেবল পিডিএফই নয়, ডকবুক, এইচটিএমএল, ইপাব, ডোকএক্স, এএসসিআইআইডোক, ডোকুউইকি, মিডিয়াউইকি এবং কী-নয় ...
যেহেতু এখানে চেয়েছিলেন আউটপুট ফর্ম্যাটটি পিডিএফ, আমাদের বিভিন্ন পথের আরেকটি পছন্দ রয়েছে, প্যানডোক পিডিএফ-ইঞ্জিন কল করছে তার দ্বারা সরবরাহ করা । এখানে বর্তমানে উপলভ্য পিডিএফ ইঞ্জিনগুলির তালিকা রয়েছে (প্যান্ডোক v2.7.2 এর জন্য বৈধ এবং পরবর্তী সংস্করণগুলি কেবলমাত্র একটি ছোট তালিকা সমর্থন করতে পারে):
pdflatex: ফলে প্রয়োজন লেটেক্ Pandoc ছাড়াও ইনস্টল করার জন্য।
xelatex: ফলে প্রয়োজন XeLaTeX Pandoc ছাড়াও ইনস্টল করা (সাধারণ একটি অতিরিক্ত প্যাকেজ হিসাবে উপলব্ধ TeX ডিস্ট্রিবিউশন )।
প্রসঙ্গ: এর জন্য পানডোক ছাড়াও কনটেক্সট ইনস্টল করা প্রয়োজন ; কনটেক্সট বেশিরভাগ সাধারণ টেক্স বিতরণে অতিরিক্ত প্যাকেজ হিসাবে উপলব্ধ )।
lualatex: এর জন্য পান্ডোকের পাশাপাশি লুয়াটেক্স ইনস্টল করা প্রয়োজন (সাধারণ টেক্স বিতরণের অতিরিক্ত প্যাকেজ হিসাবে উপলব্ধ )।
পিডিএফ্রফ: এর জন্য প্যান্ডোকের পাশাপাশি জিএনইউ রফও ইনস্টল করা দরকার।
wkhtml2pdf: এর জন্য পানডোক ছাড়াও wkhtmltopdf ইনস্টল করা প্রয়োজন ।
যুবরাজ: এর জন্য প্যান্ডোকের পাশাপাশি প্রিন্সএক্সএমএল ইনস্টল করা দরকার।
ওয়েজপ্রিন্ট: এর জন্য প্যান্ডোকের পাশাপাশি ওয়েসপ্রিন্ট ইনস্টল করা প্রয়োজন ।
প্যান্ডোকের সাথে একীভূত হয়ে আরও কয়েকটি এবং আরও নতুন পিডিএফ ইঞ্জিন রয়েছে, যা আমি এখনও নিজেকে ব্যবহার করি নি এবং যা আমি বর্তমানে আরও বিশদে বর্ণনা করতে পারি না: টেকটোনিক এবং ল্যাটেক্স্মেক ।
সতর্কতা: আশা করবেন না যে আপনার মূল নথির উপস্থিতি ওডিটির মুদ্রণ পূর্বরূপ বা পিডিএফ এক্সপোর্টের সমস্ত পিডিএফ আউটপুটগুলিতে অভিন্ন হবে! প্যান্ডোক, যখন রূপান্তরকরণ বিন্যাস সংরক্ষণ করে না , এটি বিষয়বস্তু এবং নথির কাঠামো সংরক্ষণ করে : অনুচ্ছেদে অনুচ্ছেদে থাকে, জোর দেওয়া শব্দের উপর জোর দেওয়া হয়, শিরোনাম থাকে শিরোনাম ইত্যাদি। তবে সামগ্রিক চেহারা যথেষ্ট পরিবর্তন করতে পারে।
pdflatex:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdflatex
XeLaTeX:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=xelatex
LuaLaTeX:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=lualatex
প্রসঙ্গ:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=context
জিএনইউ ট্রফ:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=pdfroff
wkhtmltopdf:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=wkhtml2pdf
PrinceXML:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=prince
weasyprint:
pandoc -f odt -o mydoc.pdf mydoc.odt --pdf-engine=weasyprint
রূপান্তরকরণের জন্য উপরের কমান্ডগুলি সর্বাধিক প্রাথমিক। আপনি যে পিডিএফ ইঞ্জিনটি বেছে নিয়েছেন তার উপর নির্ভর করে, আউটপুট পিডিএফ ফাইলের উপস্থিতি নিয়ন্ত্রণ করতে অন্য অনেক বিকল্প থাকতে পারে। উদাহরণস্বরূপ, ল্যাটেক্সের মাধ্যমে এই সমস্ত পথগুলিতে নিম্নলিখিত অতিরিক্ত প্যারামিটারগুলি যুক্ত করা যেতে পারে:
-V geometry:"paperwidth=23.3cm, paperheight=1000pt, margin=11.2mm, top=2cm"
যা উপরের প্রান্তে 2 সেমি এবং অন্যান্য তিনটি প্রান্তে 1.12 সেন্টিমিটারের মার্জিন সহ একটি কাস্টম পৃষ্ঠার আকার (DIN A4 এর চেয়ে কিছুটা বড়) ব্যবহার করবে।