ฉันมีสำเนาสแกนลายเซ็นที่เป็นลายลักษณ์อักษรของฉันและฉันต้องการนำไปใช้กับเอกสารบางอย่างในบล็อคลายเซ็น ฉันเคยทำสิ่งนี้บน Windows ตลอดเวลา แต่ตอนนี้ฉันมีเฉพาะ Linux
เป็นไปได้ไหม ฉันจะเพิ่มภาพลายเซ็นให้กับไฟล์ PDF ใน Linux (Gnome 3) ได้อย่างไร?
ฉันมีสำเนาสแกนลายเซ็นที่เป็นลายลักษณ์อักษรของฉันและฉันต้องการนำไปใช้กับเอกสารบางอย่างในบล็อคลายเซ็น ฉันเคยทำสิ่งนี้บน Windows ตลอดเวลา แต่ตอนนี้ฉันมีเฉพาะ Linux
เป็นไปได้ไหม ฉันจะเพิ่มภาพลายเซ็นให้กับไฟล์ PDF ใน Linux (Gnome 3) ได้อย่างไร?
คำตอบ:
การใช้ Xournal คุณสามารถใส่คำอธิบายประกอบ PDF และเพิ่มรูปภาพที่กำหนดเอง (เช่น PNG แบบโปร่งใส) แม้ว่าจะใช้สำหรับการจดบันทึกและวาดรูปด้วยมือเปล่า แต่ก็สามารถใส่คำอธิบายประกอบ PDF ได้
บน Ubuntu:
ข้อมูลเพิ่มเติมได้ที่http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
เป็นมูลค่าการกล่าวขวัญXournalซึ่งมี UI ที่ดีและอนุญาตให้เพิ่มข้อความรูปภาพและบันทึกย่อที่เขียนด้วยมือลงในไฟล์ PDF ปัญหาเดียวที่ฉันมีคือมันดูเหมือนจะไม่สามารถจัดการข้อความจากรูปแบบ PDF ดั้งเดิมได้เป็นอย่างดี
ฉันพบสคริปต์นี้ซึ่งคุณสามารถแก้ไขเพื่อแนบลายเซ็นไปยังไฟล์ PDF ที่มีอยู่
คุณยังสามารถดาวน์โหลดได้จาก URL pastebin นี้:
นอกจากนี้ยังมีคำถามและคำตอบบน AskUbuntu ที่มีวิธีการอื่น ๆ อีกมากมายสำหรับการทำเช่นนี้ คำถาม & คำตอบคือ: จะวางรูปภาพในไฟล์ pdf ที่มีอยู่ได้อย่างไร .
xv
? มันเป็นเรื่องยากเกินไปที่จะติดตั้งxv
และก็ไม่ได้ซอฟแวร์ฟรี ...
ผู้คนมากมายแนะนำให้ Xournal แต่ฉันพบว่ามันทำงานเป็น Gimp รุ่นที่ฉันไม่สามารถใช้ได้ ดังนั้นหากคุณคุ้นเคยกับ Gimp ฉันขอแนะนำให้ลอง
ฉันทำสิ่งนี้เป็นประจำเมื่อฉันต้องการลงชื่อเอกสารหน้าเดียวและใช้เวลาไม่เกินห้านาที น่าเสียดายที่นี่ไม่สามารถใช้งานได้หากคุณต้องการให้ลงชื่อทุกหน้าของเอกสารหลายหน้า ในกรณีหลังฉันเพิ่งพิมพ์ลงชื่อและสแกนอีกครั้ง!
xournal
ทำงานไม่ถูกต้องดูเหมือนว่ามีข้อบกพร่องในส่วนติดต่อผู้ใช้และฉันไม่สามารถปรับขนาดหรือย้ายภาพหลังจากที่นำเข้า xv
ไม่ได้คอมไพล์ต้องการแพทช์หลายตัวในรหัส C จากนั้นในที่สุดก็ใช้งานไม่ได้เช่นกัน updf
หรืออูบุนตู PPA ของมันไม่มีอยู่อีกต่อไปแล้ว (ทดสอบบนอูบุนตู xenial ธันวาคม 2559) gimp
เป็นวิธีที่จะไปขอบคุณสำหรับสิ่งนี้!
convert original_name.mng output_name.pdf
. นั่นคือทั้งหมดที่ ถ้าความละเอียดของเอาต์พุตต่ำลองขยายขนาดของรูปภาพ pdf ในขณะที่นำเข้า pdf ที่จุดเริ่มต้น: ลองใช้ความกว้างเช่น "2000" เมื่อส่งออกไปยัง MNG อย่าลืมตรวจสอบตัวเลือก "ระดับการบีบอัด" สูงสุดวิธีนี้ไฟล์สุดท้ายจะไม่หนักเกินไป
ผมเคยมีประสบการณ์ที่ดีพอสมควรกับUPDF
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
แล้วแก้ไขข้อผิดพลาดโดยการแก้ไข 2 สายในสคริปต์
เรียกใช้ uPdf เลือกเครื่องมือเพิ่มภาพวาดสี่เหลี่ยมรอบ ๆ บริเวณที่คุณต้องการให้ลายเซ็นไปและเลือกไฟล์รูปภาพด้วยลายเซ็นของคุณ PNG ที่มีพื้นหลังโปร่งใสทำงานได้ดีที่สุด
lst
ไฟล์ที่สร้าง/etc/apt/sources.list.d
ด้วยตนเอง
sudo dpkg -i file.deb; sudo apt install -f
แล้วแก้ไขรหัส Python ดังกล่าวในคำตอบ
ในขณะที่ใส่คำสั่งลายเซ็นของฉันเองลงในเชลล์สคริปต์ฉันกำลังมองหาวิธีในการเลือกพื้นที่ที่ควรใช้ลายเซ็นแบบโต้ตอบ โชคดีที่ฉันพบคำถามนี้และสคริปต์ของEmmanuel Branlardมีแนวคิดเกี่ยวกับวิธีการทำ (ด้วยxv
) ฉันใช้งานประเด็นต่อไปนี้:
display
แทนxv
stdbuf -oL
และ-update
ตัวเลือกเพื่อดูตัวอย่างสดpdftk stamp
เพื่อป้องกันการเสื่อมคุณภาพของภาพgpg
pdftk
wipe
ดังนั้นนี่คือรหัส:
#!/bin/env zsh
#dependencies: pdftk, ImageMagick, gpg, wipe, openssl
signature=~/PGP/signature.png.gpg
f=${1%.pdf}
page=$2
density=144
bo=0.2 #baseline overlap in relation to y-size of the signature
pagecount=$(pdftk $f.pdf dump_data | grep NumberOfPages | sed "s/.*: //")
#sign on last page by default
if [ -z "$page" ]; then page=$pagecount; fi
function cleanup
{
echo "Cleaning up..."
rm $f.$page.pdf
wipe $f.$page.signature.pdf $f.$page.signed.pdf $f.signed.pdf signature.png
}
trap cleanup EXIT
echo "Signing document $f.pdf on page $page."
echo "Decrypting signature..."
gpg -d $signature > signature.png
identity=$(identify -format "%w,%h,%x,%y" signature.png)
sdata=(${(s/,/)identity})
echo "Please give the signature area with two clicks and finish by pressing ‘q’!"
#extract page
pdftk $f.pdf cat $page output $f.$page.pdf
cp $f.$page.pdf $f.$page.signed.pdf
size=$(identify -format "%wx%h" $f.$page.pdf)
#select signature area
display -density $sdata[3]x$sdata[4] -immutable -alpha off -update 1 -debug X11 -log "%e" -title "sign $f.pdf#$page" $f.$page.signed.pdf 2>&1 >/dev/null | \
grep --line-buffered "Button Press" | \
stdbuf -oL sed -r "s/^.*\+([0-9]+)\+([0-9]+).*$/\1,\2/" | \
while read line
do
p1=($p2)
p2=(${(s/,/)line})
if [ -n "$p1" ]
then
p=(0 0)
if (( p1[1] < p2[1] )); then dx=$((p2[1]-p1[1])); p[1]=$p1[1]; else dx=$((p1[1]-p2[1])); p[1]=$p2[1]; fi
if (( p1[2] < p2[2] )); then dy=$((p2[2]-p1[2])); p[2]=$p1[2]; else dy=$((p1[2]-p2[2])); p[2]=$p2[2]; fi
dy=$((dy*(1+bo)))
if (( $dx*$sdata[2] > $sdata[1]*$dy ))
then
resize=$(((dy+0.0)/sdata[2]))
p[1]=$((p[1]+(dx-resize*sdata[1])/2))
else
resize=$(((dx+0.0)/sdata[1]))
p[2]=$((p[2]+(dy-resize*sdata[2])/2))
fi
echo "Inserting signature..."
convert -density $density -size $size xc:transparent \( signature.png -resize $((resize*100))% \) -geometry +$p[1]+$p[2] -composite $f.$page.signature.pdf
pdftk $f.$page.pdf stamp $f.$page.signature.pdf output $f.$page.signed.pdf
unset p1 p2
fi
done
if [ -z "$p" ]
then
echo "You have to click two times. Aborting..."
exit 1
fi
echo "Joining PDF pages..."
sew=( pdftk A=$f.pdf B=$f.$page.signed.pdf cat )
if (( page > 1 )); then
sew+=A1-$((page-1))
fi
sew+=B
if (( page < pagecount )); then
sew+=A$((page+1))-end
fi
sew+=( output $f.signed.pdf )
$sew
echo "Encrypting PDF file..."
pdftk $f.signed.pdf output $f.signenc.pdf user_pw PROMPT owner_pw $(openssl rand -base64 32) allow AllFeatures
เพื่อความสมบูรณ์มีสคริปต์ทางเลือกในการทำเช่นนี้ซึ่งไม่ได้แปลงไฟล์ PDF เป็นภาพ (คุณภาพต่ำ) ซึ่งตรงกันข้ามกับที่กล่าวถึง : https://github.com/martinruenz/signpdf
ประสบการณ์ของฉันกับโซลูชันอื่น ๆ คือ:
โปรแกรมดู PDF Okular มีคำอธิบายประกอบในตัว เปิด PDF ที่คุณต้องการลงชื่อเลือกบทวิจารณ์บนแถบด้านซ้ายเลือกตัวเลือกที่สามบนเมนูป๊อปอัปที่ระบุว่า 'เส้นอิสระ' วาดลายเซ็นของคุณ หากคุณต้องการให้หมึกสีดำค่อนข้างเป็นสีเขียวนีออนเลือก 'การตั้งค่า' จากเมนูเลือก 'กำหนดค่า Okular' เลือกปุ่ม 'คำอธิบายประกอบ' ทางด้านซ้าย เลือก 'Freehand Line' จากตัวเลือกจากนั้นเลือกปุ่ม 'แก้ไข' คุณสามารถปรับทั้งความหนาของเส้นและสีได้ที่นี่ กดใช้และเพลิดเพลินกับ
updf ดีจริงๆสำหรับสิ่งนี้ เมื่อใช้การแสดงตัวอย่างบน MacOS เพื่อ "ลงชื่อ" เอกสาร updf จะมอบประสบการณ์ผู้ใช้ที่ใกล้เคียงที่สุดให้กับสิ่งนี้
การทำงานต่อไปนี้บน Ubuntu 14.10 และ Debian 8
ฉันไม่ต้องการเพิ่มบุคคลที่สามในระบบของฉันดังนั้นให้ updf ทำงานด้วยวิธีต่อไปนี้แทน:
$ bzr branch lp:updf
จากนั้นทำการแก้ไข 2 บรรทัดตามที่อ้างอิงจากคำตอบอื่น
ติดตั้งการพึ่งพา:
# apt-get install python-poppler gir1.2-gtk-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-poppler-0.18 python-cairo librsvg2-2 gir1.2-rsvg-2.0 python-gi-cairo
(ข้างต้นก็เพียงพอ; อาจไม่จำเป็นต้องมีทุกแพ็คเกจ)
จากนั้นโปรแกรมไพ ธ อนนั้นสามารถเรียกใช้แทนได้:
$ ./src/updf.py
น่าเสียดายที่คุณภาพอาจได้รับผลกระทบอย่างรุนแรงในเอกสารขาออกเมื่อเทียบกับเอกสารป้อนเข้า วิธีที่ถูกต้องในการทำเช่นนี้คือการวางซ้อนลายเซ็นและไม่เปลี่ยนแปลงต้นฉบับในกระบวนการแบบไม่สูญเสีย ในขณะที่ updf ปรากฏขึ้นเพื่อมีส่วนร่วมในการเข้ารหัสของต้นฉบับอีกครั้ง
python-gi-cairo
การอ้างอิงเพื่อให้ทำงานได้
ฉันดำเนินธุรกิจและ Xournal ไม่มีคุณภาพหรือความกว้างในการควบคุมไฟล์ pdf ที่ฉันต้องการ
ฉันยังใช้หรือใช้ลายเซ็นดิจิทัลตลอดเวลา
Master PDF Editor (รุ่นที่ 5 ณ วันนี้) เป็นแอปพลิเคชันที่ต้องเสียเงินซึ่งเกินความคาดหมายได้อย่างง่ายดาย คุณสมบัติที่สำคัญ: - ลงนามในเอกสาร - กรอกแบบฟอร์ม - แก้ไขข้อความและวัตถุ - ใส่คำอธิบายประกอบและเน้นเอกสาร - รวมและแยกไฟล์ PDF - ฯลฯ
สำหรับรายละเอียดเพิ่มเติมไปที่: https://code-industry.net/masterpdfeditor/?-about&ver=5438