나는 프린터를 가지고 있습니다 (삼성 M2022W)은 양면 인쇄를 지원하지 않습니다.
그러나 수동으로 양면을 인쇄하고 싶습니다. 즉, 짝수 페이지를 인쇄한 다음 해당 페이지를 프린터에 다시 삽입하고 홀수 페이지를 시작합니다. 문제는 내 데비안 시스템에 "수동 이중" 옵션이 없다는 것입니다. 그리고 "홀수/짝수 페이지만" 옵션도 없습니다.
*unix에서 수동으로 양면에 쉽게 인쇄하는 방법은 무엇입니까?
답변1
OP의 답변에 답변하기에는 약간 늦었다는 것을 알고 있지만 이것을 찾는 사람은 누구나 내 답변을 확인하고 싶을 것입니다.이중Sourceforge에서의 프로젝트. 비양면 프린터의 양면 인쇄를 에뮬레이트할 뿐만 아니라 여러 인쇄 작업을 한 번에 일괄 인쇄할 수 있으므로 일괄 처리 전체에서 한 번만 페이지를 제거하고 다시 삽입하면 됩니다.
Duplexpr은 명령줄과 GUI 인터페이스를 모두 지원합니다. Bash로 작성되었으며 재사용 가능한 기능이 많아 상대적으로 수정이 쉽습니다. 저는 10년 넘게 여러 다른 프린터에서 매일 이 기능을 사용해 왔으며 여전히 계속 개발하고 있습니다.
가끔 양면 인쇄를 원하거나 프린터가 지원하는 모든 유용한 기능에 액세스해야 하는 경우에도 확인해 보십시오 xpp
. 프린터가 할 수 있는 거의 모든 일을 할 수 있지만 매번 원하는 것을 말해야 하고, 많이 사용하면 조금 낡아질 수 있습니다.
답변2
노력하다
$ lp -o page-set=odd filename
# ... manually flip pages ...
$ lp -o page-set=even filename
문서에서여기.
답변3
.it 이라는 패키지가 gnome-manual-duplex
기본적으로 많은 프린터에서 작동합니다. 다른 경우에는 수동 설정이 필요할 수 있습니다.
답변4
수동 양면 인쇄를 위한 간단한 쉘 스크립트를 작성했습니다. lpoptions -l
프린터에서 지원하는 인쇄 옵션을 찾는 데 사용됩니다 .
Printer=DeskJet-2130-series
PageSize=A4
InputSlot=Main
ColorModel=KGray
MediaType=Plain
OutputMode=Normal
file_list=()
print_status=()
file_count=0
red=$'\e[1;31m'
grn=$'\e[1;32m'
yel=$'\e[1;33m'
blu=$'\e[1;34m'
mag=$'\e[1;35m'
cyn=$'\e[1;36m'
end=$'\e[0m'
current_file=0
for file in "$@"
do
echo "$file"
file_list[$file_count]=$file
print_status[$file_count]="pending"
file_count=$((file_count+1))
done
function print_status_text() {
fmt="%-100s%-12s\n"
for ((i=0;i<$file_count;i++))
do
file=${file_list[$i]}
status=${print_status[$i]}
if [ $status == "pending" ]
then
printf "$fmt" "${blu}$file${end}" "${blu}$status${end}"
elif [ $status == "ready" ]
then
printf "$fmt" "${mag}$file${end}" "${mag}$status${end}"
elif [ $status == "printing" ] || [ $status == "processing" ]
then
printf "$fmt" "${yel}$file${end}" "${yel}$status${end}"
elif [ $status == "skipped" ]
then
printf "$fmt" "${red}$file${end}" "${red}$status${end}"
else
printf "$fmt" "${grn}$file${end}" "${grn}$status${end}"
fi
done
}
trap ctrl_c INT
function ctrl_c() {
for ((e=$current_file;e<$file_count;e++))
do
print_status[$e]="skipped"
done
clear
print_status_text
exit 0
}
for ((n=0;n<$file_count;n++))
do
current_file=$n
clear
file=${file_list[$n]}
print_status[$n]="ready"
print_status_text
echo ""
echo -e "\e[93m\e[5mPress enter to START printing...\e[0m\e[0m"
read -p ""
clear
print_status[$n]="processing"
print_status_text
# separate even and odd pages
# remove old temp files
if [ -f "/tmp/odd.pdf" ]; then
rm "/tmp/odd.pdf"
fi
if [ -f "/tmp/even.pdf" ]; then
rm "/tmp/even.pdf"
fi
pdftk "$file" cat odd output /tmp/odd.pdf && pdftk "/tmp/odd.pdf" cat end-1 output "/tmp/out.pdf" && rm /tmp/odd.pdf && mv /tmp/out.pdf /tmp/odd.pdf >> /dev/null
pdftk "$file" cat even output /tmp/even.pdf && pdftk "/tmp/even.pdf" cat end-1 output "/tmp/out.pdf" && rm /tmp/even.pdf && mv /tmp/out.pdf /tmp/even.pdf >> /dev/null
evenCount=$(pdfinfo /tmp/even.pdf | awk '/^Pages:/ {print $2}')
oddCount=$(pdfinfo /tmp/odd.pdf | awk '/^Pages:/ {print $2}')
if [ $evenCount -gt 0 ] && [ $evenCount -lt $oddCount ]; then
# create blank pdf if not exists
if [ ! -f "/tmp/blank.pdf" ]; then
convert xc:none -page A4 /tmp/blank.pdf
fi
# join blank pdf and even pdf
pdftk /tmp/blank.pdf /tmp/even.pdf cat output /tmp/out.pdf
rm /tmp/even.pdf
mv /tmp/out.pdf /tmp/even.pdf
fi
if [ $oddCount -lt $evenCount ]; then
# create blank pdf if not exists
if [ ! -f "/tmp/blank.pdf" ]; then
convert xc:none -page A4 /tmp/blank.pdf
fi
# join blank pdf and even pdf
pdftk /tmp/blank.pdf /tmp/odd.pdf cat output /tmp/out.pdf
rm /tmp/odd.pdf
mv /tmp/out.pdf /tmp/odd.pdf
fi
clear
# print even pages
if [ $evenCount -gt 0 ]; then
lp -d "$Printer" -o PageSize="$PageSize" -o InputSlot="$InputSlot" -o ColorModel="$ColorModel" -o MediaType="$MediaType" -o OutputMode="$OutputMode" "/tmp/even.pdf" > /dev/null
print_status[$n]="printing"
print_status_text
echo ""
echo -e "\e[95m\e[5mPress enter to print SIDE TWO...\e[0m\e[0m"
read -p ""
fi
clear
# print odd pages
if [ $oddCount -gt 0 ]; then
lp -d "$Printer" -o PageSize="$PageSize" -o InputSlot="$InputSlot" -o ColorModel="$ColorModel" -o MediaType="$MediaType" -o OutputMode="$OutputMode" "/tmp/odd.pdf" > /dev/null
fi
print_status[$n]="completed"
print_status_text
done