ভার্চুয়াল প্রিন্টার হিসাবে শেল স্ক্রিপ্ট ব্যবহার করা


10

আমার কাছে একটি শেল স্ক্রিপ্ট রয়েছে যা একটি পিডিএফ ফাইলটি আর্গুমেন্ট হিসাবে গ্রহণ করে এবং অতিরিক্ত প্রিন্টারের নির্দিষ্ট বিকল্পগুলির সাথে এটি মুদ্রণ করে। আমি কীভাবে এই স্ক্রিপ্টটিকে ভার্চুয়াল প্রিন্টার হিসাবে যুক্ত করতে পারি যা জিইউআই থেকে নির্বাচন করা যেতে পারে?

শেল স্ক্রিপ্ট একটি ম্যানুয়াল দ্বৈত স্ক্রিপ্ট যা একটি পিডিএফ ফাইল নেয়, এমনকি পৃষ্ঠাগুলি মুদ্রণ করে, একটি ব্যবহারকারীকে জেনটি ব্যবহার করে পৃষ্ঠাগুলি ফ্লিপ করতে অনুরোধ জানায় এবং তারপরে বিজোড় পৃষ্ঠাগুলি মুদ্রণ করে।

আমার বর্তমান কর্মপ্রবাহটি হ'ল:

  1. ফাইল -> মুদ্রণ -> ফাইলে সংরক্ষণ করুন -> tmp.pdf
  2. my_duplex_script tmp.pdf
  3. rm tmp.pdf

এটিকে তৈরি করার কোনও উপায় আছে কি:

  1. ফাইল -> মুদ্রণ -> আমার_স্ক্রিপ্ট_আস_ ভার্চুয়াল_প্রিন্টার

দ্রষ্টব্য: এটি লিনাক্স পুদিনা 13 দারুচিনিতে হয়। আমি চেষ্টা করেছি gnome-manual-duplexকিন্তু এটি আমার কাজ করে না।


জিইউআই ডায়ালগ যা থেকে আমি একটি পিডিএফ ফাইল মুদ্রণ করতে পারি স্ট্যান্ডার্ড জিটিকে প্রিন্ট ডায়ালগ

my_duplex_script

#!/bin/bash

lp_args=
while getopts o: opt
do
    case "$opt" in
        o)  lp_args="$lp_args -o $OPTARG" ;;
        \?) echo >&2 Invalid argument; exit 1 ;;
    esac
done
shift `expr $OPTIND - 1`

file=$1
page_count=$(pdfinfo "$file" | grep Pages | awk '{print $2}')
is_odd=`expr $page_count % 2`

if [ $is_odd -eq 1 ]
then
    #outputting blank
    echo | lp -s -t "$file"-blank
fi

#printing even reversed
lp -s -o page-set=even -o outputorder=reverse $lp_args -t "$file"-even "$file"

if zenity --question --text="Flip and reinsert the entire stack when printing has finished." --ok-label="Proceed" --cancel-label="Cancel"
then
    #printing odd reversed
    lp -s -o page-set=odd -o outputorder=reverse $lp_args -t "$file"-odd "$file"
else
    echo >&2 User abort
    exit 1
fi

exit 0

উত্তর:


2

আমি এটি কখনও চেষ্টা করে দেখিনি তবে এমন একটি সরঞ্জাম আছে tea4cupsযা বলে মনে হচ্ছে আপনি আপনার স্ক্রিপ্টটির প্রি-হুক প্রয়োগ করতে পারেন যা মুদ্রণটি করবে। এরপরে আপনি এই মুদ্রণটি বাতিল হয়ে যেতে পারেন এবং কাপের মাধ্যমে প্রকৃত প্রিন্টারে না গিয়ে, পরিবর্তে আপনার স্ক্রিপ্টটি মুদ্রণটি করতে দেয়।

উদ্ধৃতাংশ

সম্ভাবনা সীমাহীন :

  • একই সময়ে বেশ কয়েকটি প্রিন্টারে একই কাজটি প্রেরণ করুন, যা সিইপিএস দিয়ে সম্ভব নয়।
  • সমস্ত মুদ্রণ কাজের পিডিএফ সংরক্ষণাগার স্বয়ংক্রিয় করুন।
  • নিষিদ্ধ সদৃশ মুদ্রণ কাজ (নমুনা কনফিগারেশন ফাইলে একটি সাধারণ উদাহরণ দেখানো হয়েছে)
  • 15 মিনিটের মধ্যে একটি মুদ্রণ অ্যাকাউন্টিং সমাধান তৈরি করুন (হ্যাঁ, এটি বাস্তবের জন্য)
  • ইত্যাদি ...

টি 4cups নিম্নলিখিত সুবিধাগুলি সরবরাহ করে:

টি 4 সিইউপিএস কমান্ড প্রবর্তনের জন্য তিনটি উপায় সরবরাহ করে:

  • ফিল্টারগুলি: একটি ফিল্টার প্রিন্টারে প্রেরণের আগে বা ইনপুট ডেটাগুলি নীচে সংজ্ঞায়িত প্রাক এবং পোস্ট হুকের কাছে সরবরাহ করার আগে তা সংশোধন করতে পারে। বর্তমানে একক ফিল্টার মুদ্রণ সারি প্রতি সংজ্ঞায়িত করা যেতে পারে।
  • প্রাক-পুস্তক: প্রকৃত প্রিন্টারে প্রিন্ট কাজ প্রেরণের আগে এগুলি চালু করা গ্যারান্টিযুক্ত। কোনও প্রিহুক যা -1 প্রস্থান করে মুদ্রণ কাজটি বাতিল করতে পারে। যে কোনও সংখ্যক প্রি-হুককে নির্দিষ্ট প্রিন্ট কাতারের জন্য সংজ্ঞায়িত করা যায়।
  • পোস্ট হুকস: প্রকৃত প্রিন্টারে প্রিন্ট কাজ প্রেরণের পরে এগুলি চালু করার গ্যারান্টিযুক্ত, যদি পূর্ববর্তী কোনও পূর্ববর্তী দ্বারা চাকরীটি বাতিল না করা হয়। যে কোনও সংখ্যক পোস্টহুক নির্দিষ্ট প্রিন্ট কিউর জন্য সংজ্ঞায়িত করা যেতে পারে।

2

আমি কীভাবে এই স্ক্রিপ্টটিকে ভার্চুয়াল প্রিন্টার হিসাবে যুক্ত করতে পারি যা জিইউআই থেকে নির্বাচন করা যেতে পারে?

ভার্চুয়াল প্রিন্টারের বিজ্ঞাপন দেওয়ার জন্য, কেবল আপনার সম্পাদনা করুন /etc/printcap। এটি খুব সহজ নয়, কারণ PRINTCAP এর বাক্য গঠনটি অভ্যস্ত হওয়া দরকার।

এটি কীভাবে করবেন তার একটি উদাহরণ এখানে সাম্বার সাথে পিডিএফ পরিষেবা দেখানো হয়েছে :

# /etc/printcap
# PDF Service entry

lp|pdf|PDF Printer:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/pdf:\
        :af=/var/spool/lpd/pdf/acct:\
        :mx#0:sh:\
        :if=/usr/bin/smbprint:

এখানে /usr/bin/smbprintস্ক্রিপ্টটি একটি মুদ্রক ফিল্টার হিসাবে ব্যবহৃত হয়। প্রিন্টার নিজেই /dev/null

সম্ভবত আপনাকে ইনস্টল করতে হবে cups-bsd, তবে এটি প্রায়শই ডিফল্ট কনফিগার থাকে।


মনে রাখবেন যে printcapBSD lpr বা lprNG এর জন্য কনফিগারেশন ফাইল, সিইপিএসের জন্য নয় যা আজকাল ডি ফ্যাক্টো স্ট্যান্ডার্ড এবং এটি পুদিনার মান is
গিলস 23'20

অতএব আমি cups-bsdপ্যাকেজটি উল্লেখ করেছি , যা পুদিনাটিতে উপলব্ধ, ডিফল্টরূপে ইনস্টলড এবং ভাল সমর্থিত। cups-bsdএলআরপিএন না! এটি কেবল একটি মোড়ক, যা কাপের জন্য বিএসডি মুদ্রণের কার্যকারিতা সরবরাহ করে যাতে প্রিন্টিংয়ের জন্য অ্যাপ্লিকেশনগুলি সমর্থন করে lpr(যেমন এক্সপিডিএফ)।

0

পার্টিতে দেরীতে হলেও আমি একই জিনিস করতে চেয়েছিলাম এবং আমি অন্য কোনও সমাধান পাইনি।

আমি কীভাবে এটি সমাধান করেছি তা এখানে লিখব, সম্ভবত অন্যরা সমাধানটিকে দরকারী বলে মনে করবেন।

  • কাপ মুদ্রণ করতে ফাইল ধরার জন্য একটি ফিল্টার তৈরি করে
  • ফাইলটি মুদ্রণের জন্য একটি ব্যাকএন্ড তৈরি করেছে
  • একটি দুর্দান্ত এবং সহজ ইনস্টলার তৈরি করেছেন।

সোর্স কোডটি গিথুবে রয়েছে: https://github.com/dentys03/manual_duplex_linux

এটি যে কোনও এইচপি প্রিন্টারে কাজ করা উচিত। অন্যান্য প্রিন্টারের জন্য খুব সহজেই খাপ খাইয়ে নেওয়া হয়েছে বলে আমার ধারণা।

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