รับจำนวนคำของเอกสาร PDF ใน Evince


22

มีวิธีใดบ้างที่ฉันจะได้รับการนับจำนวนคำของเอกสาร PDF ที่ฉันดูใน Evince โปรแกรมดูไฟล์ PDF เริ่มต้นของ Ubuntu ฉันสามารถแปลงเอกสารเป็นไฟล์ข้อความและรับจำนวนคำจากเทอร์มินัล แต่ฉันอยากจะได้อย่างรวดเร็วโดยไม่ต้องใช้เทอร์มินัล มีปลั๊กอินที่สามารถทำสิ่งนี้ได้หรือมีอยู่แล้วภายในและฉันเพิ่งหายไปหรือไม่

ป.ล. ผมไม่ต้องการที่จะเปลี่ยนมุมมองของฉันเป็น Evince เป็นมุมมองเริ่มต้น PDF ในอูบุนตูและฉันค่อนข้างชอบที่จะทำมากที่สุดเท่าที่เป็นไปได้โดยใช้การใช้งานเริ่มต้นตั้งแต่มากของพวกเขา, Evince รวมที่ดีจริงๆ

pdf  evince 

คำตอบ:


31

คุณสามารถทำได้ผ่านทางบรรทัดคำสั่ง:

pdftotext filename.pdf - | tr -d '.' | wc -w

ขอบคุณ แต่อย่างที่ฉันพูดในคำถามฉันไม่จำเป็นต้องใช้บรรทัดคำสั่งสำหรับสิ่งนี้

4
@Chris ลองรวมระบบ ("<คำสั่งด้านบน>") ในรหัส evince แล้ว
Gödel

11

วิธีการเกี่ยวกับสคริปต์ทุบตีอย่างรวดเร็วที่ต้องมีความเยือกเย็นและชัดเจน เมื่อถูกเรียกโดยไม่มีอาร์กิวเมนต์มันจะให้กล่องโต้ตอบเพื่อให้คุณสามารถเลือกไฟล์ เมื่อถูกเรียกพร้อมด้วยอาร์กิวเมนต์ (หรือหลังจากกล่องโต้ตอบที่กล่าวมา) ทั้งคู่จะเปิดไฟล์ในการแสดงและให้กล่องโต้ตอบพร้อมการนับจำนวนคำ

กล่าวอีกนัยหนึ่งให้คัดลอกสิ่งต่อไปนี้ลงในไฟล์ข้อความที่เรียกว่าevince-word-count.shหรือบางสิ่งบันทึกไว้ที่ใดที่หนึ่งในเส้นทางของคุณ (เช่น~/bin/) ทำให้สามารถดำเนินการได้ (ผ่านการคลิกขวาของ Nautilus และคุณสมบัติหรือด้วยchmod +x ~/bin/evince-word-count.sh)

#!/bin/bash
if [ "$#" -gt "0" ] ; then
    filename="$1"
else
    filename="$(zenity --file-selection)"
fi
evince "$filename" &
zenity --info --text "This PDF has $(pdftotext "$filename" - | tr -d '.' | wc -w) words"
exit 0

ตอนนี้คลิกขวาที่ไฟล์ PDF บางส่วนใน nautilus เลือก "Open with ... " แล้วเปิดมันด้วย evince-word-count.sh ตอนนี้เมื่อคุณเปิด PDF ทั้งคู่จะเปิดออกและจะนับจำนวนคำให้คุณ

ข้อความแสดงแทน


คุณสามารถวางไฟล์นี้ใน /home/$USER/.local/share/nautilus/scripts/ ซึ่งทำให้คลิกได้จากคลิกขวาใน Nautilus (ตัวจัดการไฟล์ Ubuntu วานิลลา)
Daniel Holm

10

การตอบสนองจาก Olaf Leidinger ในรายชื่อผู้รับจดหมายของ Evince:

ฉันคิดว่าคุณสมบัติดังกล่าวเหมาะสมกว่าสำหรับผู้แก้ไขเอกสารเนื่องจากมีข้อมูลเพิ่มเติมเกี่ยวกับเอกสารในฐานะผู้ดูธรรมดาและการนับคำเป็นเรื่องเล็กน้อย นำไฟล์ PDF เป็นตัวอย่าง สิ่งที่คุณเห็นเป็นข้อความอาจเป็นรูปร่างกราฟิกแบบเวกเตอร์ แม้ว่าข้อความจะมีอยู่ในไฟล์ PDF คำเหล่านั้นที่คุณเห็นอาจประกอบด้วยคำว่า "ดึงข้อความที่ตำแหน่ง (y, x)" - คำสั่ง - เช่นในกรณีของ umlauts หรือท้ายบรรทัด ดังนั้นคำเดียวอาจนับเป็นหลายคำ ดังนั้นฉันคิดว่ามันอาจจะยากที่จะใช้คุณสมบัติดังกล่าวได้อย่างน่าเชื่อถือ ลองดู pdftotext เพื่อดูว่าฉันหมายถึงอะไร

2
ไฟล์ใดก็ตามที่ใช้ในการกำหนดเอกสารอาจพิจารณาว่าเป็น "ซอร์สโค้ด" และ Evince คือเครื่องที่ประมวลผลโค้ด มันไม่ยุติธรรม (และเป็นไปไม่ได้) ที่จะถาม source code editor (เช่น text editor) เพื่อกำหนดว่า output ของการประมวลผลจะเป็นอะไรดังนั้นลองดูที่ output (เช่น image / text ที่เรนเดอร์ใน Evince / poppler) การนำไปใช้ใน Evince จะเป็นประโยชน์กับฉันตั้งแต่ฉัน "เข้ารหัส" เอกสารของฉันในโปรแกรมแก้ไขข้อความที่ไม่เชื่อเรื่องภาษาและใช้ Evince (ผ่าน Pandoc และ pdflatex) เพื่อ "เรียกใช้" แหล่งข้อมูลของฉัน ในตอนท้ายเท่านั้นที่เราจะแน่ใจได้ว่าสิ่งที่ทำผ่าน พิจารณารหัสความคิดเห็น
user29020

4

ฉันไม่เชื่อว่าเป็นไปได้ (เป็นไปได้ทางเทคนิค แต่ยังไม่ได้ใช้งาน)

คุณต้องจำไว้ว่า Evince เป็นผู้ดูเอกสารและการนับจำนวนคำนั้นเป็นคุณสมบัติที่จำเป็นสำหรับบรรณาธิการ (ใช่ฉันรู้ว่ามันไม่ได้เป็นอย่างนั้นเสมอไป)

คุณอาจต้องการติดต่อนักพัฒนา Evinceและถามว่าพวกเขาจะมีความสนใจในการใช้คุณสมบัตินี้หรือไม่


1
ขอบคุณ ฉันได้ติดต่อพวกเขาและฉันจะเก็บคำถามไว้จนกว่าฉันจะได้รับคำตอบที่ชัดเจน

เมื่อคุณได้ยินกลับรู้สึกอิสระที่จะตอบคำถามของคุณอย่างมีประสิทธิภาพ :)
8128

Evince ไม่ได้เป็น "ผู้ดู" อย่างเคร่งครัด การสร้างและการดูและแก้ไขเอกสารนั้นเป็นขั้นตอนการทำงานที่ใหญ่กว่าไม่ใช่แค่ "แก้ไข" และ "ดู" เกี่ยวกับคำถาม: Evince ปัจจุบันอนุญาตให้คัดลอกข้อความที่เลือก นั่นไม่ใช่บทบาท "มุมมอง" อย่างเคร่งครัด Evince อยู่ในตำแหน่งที่ยอดเยี่ยมในการค้นหาจำนวนคำที่เกิดขึ้นเนื่องจากเป็น "renderer" สุดท้ายของสิ่งที่เราอ่านจริง ๆ (หรือส่งไปยังผู้เผยแพร่) มีวิธีระบุคำที่แสดงทั้งหมดแล้ว (ลองคลิกสองครั้งที่คำ!) ฉันชอบ Evince ที่จะให้สิ่งนี้ในกล่อง "ไฟล์ -> คุณสมบัติ" มันบอกจำนวนหน้า (ตามเรนเดอร์) แล้ว
user29020
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.