पाठ के लिए थंबनेल उत्पन्न करें?


10

मुझे कुछ पाठ फ़ाइलों के लिए थंबनेल बनाने की आवश्यकता है। जाहिर है कि सिस्टम में किसी भी तरह से ऐसा करने की क्षमता है (स्क्रीन शॉट देखें)। क्या कोई तरीका है जिससे मैं इन चित्रों तक पहुँच सकता हूँ और बाद में उपयोग के लिए इन्हें कॉपी कर सकता हूँ?

या इसके लिए कोई विशेष कमांड (उपकरण) है?

somefolder.png

मैंने इस पर ध्यान दिया: कमांड लाइन थंबनेलिंग

और यह: मैं नॉटिलस को पूर्व-थंबनेल बनाने के लिए कैसे निर्देश दे सकता हूं?

जो उपयोगी थे लेकिन कोई भी पाठ से निपट नहीं सकता था।


@ रमनो, प्रतीक को किस आकार की आवश्यकता होगी?
जैकब व्लिजम

@JacobVlijm एक थंबनेल बनाने के लिए विचार है --- मूल रूप है script -s width input_url output_fileजो कि नॉटिलस द्वारा उपयोग किया जाने वाला प्रारूप है। उदाहरण के लिए देखें rlog.rgtti.com/2011/11/24/… और जुड़ा हुआ पेज ...
Rmano

जवाबों:


5

टेक्स्ट आइकन बनाने के लिए Imagemagick का उपयोग करना

यहां भी उसी सिद्धांत के आधार पर , नीचे दी गई स्क्रिप्ट इमेजमेगिक की मदद से टेक्स्ट फाइल से टेक्स्ट आइकन बनाती है।

गोल पृष्ठभूमि की छवि का रंग और पाठ का रंग एक स्क्रिप्ट के सिर में सेट किया जा सकता है (साथ ही साथ कई अन्य गुण भी)।

यहाँ छवि विवरण दर्ज करें

यह क्या करता है
यह टेक्स्टफाइल पढ़ता है, प्रत्येक पंक्ति n_lines = 4के पहले चार अक्षर (सेट इन ), पहले सात अक्षर (सेट n_chars = 10) लेता है , और आकार की एक छवि पर एक ओवरले बनाता है, जैसे सेट psize = "100x100"

कैसे इस्तेमाल करे

स्क्रिप्ट imagemagickको स्थापित करने की आवश्यकता है:

sudo apt-get install imagemagick

फिर:

  1. एक खाली फ़ाइल में स्क्रिप्ट की प्रतिलिपि बनाएँ
  2. इसे इस रूप में सहेजें create_texticon.py
  3. सिर अनुभाग में सेट करें:

    • आइकन की पृष्ठभूमि का रंग
    • आइकन की टेक्स्टलेयर का रंग
    • निर्मित आइकन का आकार
    • आइकन में दिखाने के लिए लाइनों की संख्या
    • आइकन में दिखाने के लिए प्रति पंक्ति (प्रथम) वर्णों की संख्या
    • पथ जहाँ छवि को बचाने के लिए
  4. इसे अपने टेक्स्टफिल के साथ एक तर्क के रूप में चलाएं:

    python3 /path/to/create_texticon.py </path/to/textfile.txt>
    

लिपी

#!/usr/bin/env python3
import subprocess
import sys
import os
import math

temp_dir = os.environ["HOME"]+"/"+".temp_iconlayers"
if not os.path.exists(temp_dir):
    os.mkdir(temp_dir)

# --- 
bg_color = "#DCDCDC"                                # bg color
text_color = "black"                                # text color
psize = [64, 64]                                    # icon size
n_lines = 4                                         # number of lines to show
n_chars = 9                                         # number of (first) characters per line
output_file = "/path/to/output/icon.png"            # output path here (path + file name)
#---

temp_bg = temp_dir+"/"+"bg.png"; temp_txlayer = temp_dir+"/"+"tx.png"
picsize = ("x").join([str(n) for n in psize]); txsize = ("x").join([str(n-8) for n in psize])

def create_bg():
    work_size = (",").join([str(n-1) for n in psize])
    r = str(round(psize[0]/10)); rounded = (",").join([r,r])
    command = "convert -size "+picsize+' xc:none -draw "fill '+bg_color+\
              ' roundrectangle 0,0,'+work_size+","+rounded+'" '+temp_bg
    subprocess.call(["/bin/bash", "-c", command])

def read_text():
    with open(sys.argv[1]) as src:
        lines = [l.strip() for l in src.readlines()]
        return ("\n").join([l[:n_chars] for l in lines[:n_lines]])

def create_txlayer():
    subprocess.call(["/bin/bash", "-c", "convert -background none -fill "+text_color+\
                      " -border 4 -bordercolor none -size "+txsize+" caption:"+'"'+read_text()+'" '+temp_txlayer])

def combine_layers():
    create_txlayer(); create_bg()
    command = "convert "+temp_bg+" "+temp_txlayer+" -background None -layers merge "+output_file
    subprocess.call(["/bin/bash", "-c", command])

combine_layers

क्या यह समाधान लगातार है?
α atsнιη

आप लगातार क्या मतलब है? स्क्रिप्ट आइकन बनाता है, या क्या मैंने प्रश्न को गलत समझा है?
याकूब Vlijm

1
@ कसीया एक थम्बर्स के रूप में उपयोग करने के लिए, rlog.rgtti.com/2011/11/24/… और rlog.rgtti.com/2010/11/28/adding-a-gnomenautilus-thumbnailail --- Nautilus इसे अपडेट करेगा। खुद ब खुद। अछा सुझाव; अब pygmentसिंटैक्स का उपयोग करने के बारे में सोचकर इसे उजागर करना और यह सही होगा। धन्यवाद!
रमनो

2
@JacobVlijm की जरूरत नहीं बस स्क्रिप्ट को सही जगह पर छोड़ दें और /usr/share/thumbnailers/...फ़ाइल लिखें और आइकन स्वचालित रूप से दिखाई देंगे, और सिस्टम द्वारा प्रबंधित किया जाएगा (फ़ाइल परिवर्तनों पर अपडेट किया गया, आदि)
रमनो

1
@JacobVlijm जो भी --- मुझे विचार मिला। मुझे लगता है कि इसका उत्तर पर्याप्त है। अफ़सोस की बात है कि हम इसे करने के सिस्टम तरीके का लाभ नहीं उठा सकते हैं, लेकिन मुझे लगता है कि यह कुछ निम्न-स्तरीय लाइब्रेरी में कठिन कोडित है।
रमानो

1

विचार :

पाठ फ़ाइल को पीडीएफ में कनवर्ट करें और pdfdrawथंबनेल उत्पन्न करने के लिए उपयोग करें।

unoconv एक सॉफ्टवेयर है जो विभिन्न दस्तावेजों के बीच परिवर्तित होता है जिसे OpenOffice ऑफिस सूट समझता है।

इस विधि का लाभ: लगभग सभी दस्तावेज़ों के लिए बल्क थंबनेल आसानी से एक स्क्रिप्ट बनाकर उत्पन्न किया जा सकता है।

देखें सार चरणों के लिए।

  1. OpenOffice हेडलेस पैकेज स्थापित करें

    sudo apt-get install  openoffice.org-headless  openoffice.org-java-common  openoffice.org-writer  openoffice.org-calc  openoffice.org-impress
    
  2. UNO अजगर पुस्तकालय स्थापित करें

    sudo apt-get install python-uno unoconv
    
  3. आवश्यक फोंट स्थापित करें (विशेषकर अंतर्राष्ट्रीय भाषा के लिए)

    /usr/share/fonts/truetype/तब चलाने के लिए फ़ॉन्ट की प्रतिलिपि बनाएँfc-cache

  4. OpenOffice को एक सेवा के रूप में चलाएं

    soffice -headless -nofirststartwizard -accept="socket,host=localhost,port=8100;urp;StarOffice.Service"
    
  5. Unoconv कमांड का उपयोग करके दस्तावेज़ को PDF में बदलें

    unoconv -f pdf __[filename]__
    
  6. MuPDF टूल का उपयोग करके PDF थंबनेल बनाएं

    pdfdraw -r 100 -o __[output-thumbnail]__ __[pdf-file]__ 1  
    

एसओ पर अनौपचारिक सवाल


1
हम्म ... टेक्स्ट फ़ाइल वर्डप्रोसेसर फाइलें नहीं हैं। यहां काफी बुनियादी भ्रांति है। पाठ फ़ाइल प्रोग्राम स्रोत हैं, लॉग, बस ".txt" fles, आदि। कार्यालय के दस्तावेज और पीडीएफ में उनके थंबनेल ठीक काम कर रहे हैं।
रमनो

@ रमनो: पीडीएफ के माध्यम से जाना एक ऐसी तकनीक है जिसका उपयोग अक्सर ईसीएम सॉफ्टवेयर द्वारा किया जाता है, यहां तक ​​कि पूर्वावलोकन बनाते समय, यहां तक ​​कि उन स्वरूपों के लिए भी, जो आमतौर पर पीडीएफ में परिवर्तित होते हैं, जैसे लॉग फाइलें। तो, यह एक अच्छा विचार है।
निकोलस राउल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.