ডিজেভুকে পিডিএফ এ রূপান্তর করা এবং বিষয়বস্তুর সারণী সংরক্ষণ করা, এটি কীভাবে সম্ভব?


9

আমি বেশ কয়েকটি অনলাইন এবং অফলাইন সরঞ্জাম চেষ্টা করেছি কিন্তু রূপান্তরকালে সামগ্রীর সারণী (টিওসি) তথ্য সংরক্ষণ করা হয়নি।

আমি একটি 5000 পৃষ্ঠার ফিনিশ অভিধানটি রূপান্তর করতে চাই যা ডিজেভিউ ফর্ম্যাটে রয়েছে এবং শব্দগুলি দ্রুত সন্ধানের জন্য প্রায় 5000 টিওসি এন্ট্রি কাঠামোগতভাবে কাঠামোগতভাবে কাঠামোগতভাবে রচিত হয়েছে।

কোনও ধারণা কীভাবে ডিজেভিইউতে পিডিএফ রূপান্তরকালে টিওসি তথ্য সংরক্ষণ করা সম্ভব?

উত্তর:


5

আপডেট: user3124688 স্ক্রিপ্ট dpsprep এ এই প্রক্রিয়াটি কোড আপ করেছে


আমি এমন কোনও সরঞ্জাম জানি না যা আপনার জন্য রূপান্তর করবে। আপনার অবশ্যই এটি করতে সক্ষম হওয়া উচিত, তবে এটি কিছুটা সময় নিতে পারে। আমি বেসিক প্রক্রিয়াটির রূপরেখা করব। আপনার ওপেন সোর্স কমান্ড লাইন ইউটিলিটিগুলি pdftkএবং djvused(ডিজেভিউলিবার অংশ) প্রয়োজন হবে। এগুলি আপনার প্যাকেজ পরিচালক (জিএনইউ / লিনাক্স) বা তাদের ওয়েবসাইটগুলি (উইন্ডোজ, ওএস এক্স) থেকে উপলব্ধ available

  • পদক্ষেপ 1: ফাইল পাঠ্য রূপান্তর

    প্রথমে ডিজেভিইউ ফাইলটিকে পিডিএফে রূপান্তর করতে কোনও বুক ব্যবহার করুন (বুকমার্ক ছাড়াই)।

    ধরুন ফাইলগুলি ডাকা হয়েছে filename.djvuএবং filename.pdf

  • পদক্ষেপ 2: ডিজেভিউর রূপরেখা বের করুন

    এরপরে, ডিজেভিইউর আউটলাইন ডেটা একটি ফাইলে আউটপুট করুন, এর মতো:

    djvused "filename.djvu" -e 'print-outline' > bmarks.out
    

    এটি সিরিয়ালযুক্ত গাছের ফর্ম্যাটে DJVU নথি বুকমার্কের তালিকাভুক্ত একটি ফাইল। আসলে এটি কেবল একটি এসএক্সপিআর , এবং সহজেই পার্স করা যায়। ফর্ম্যাটটি নিম্নরূপ:

    file ::= (bookmarks
               <bookmark>*)
    bookmark ::= (name
                   page
                   <bookmark>*)
    name ::= "<character>*"
    page ::= "#<digit>+"
    

    উদাহরণ স্বরূপ:

    (bookmarks
      ("bmark1"
        "#1")
      ("bmark2"
        "#5"
        ("bmark2subbmark1"
          "#6")
        ("bmark2subbmark2"
          "#7"))
      ("bmark3"
        "#9"
        ...))
    
  • পদক্ষেপ 3: DJVU রূপরেখাকে পিডিএফ মেটাডেটা ফর্ম্যাটে রূপান্তর করুন

    এখন, আমাদের এই বুকমার্কগুলি পিডিএফ মেটাডেটার প্রয়োজনীয় ফর্ম্যাটে রূপান্তর করতে হবে। এই ফাইলটির ফর্ম্যাট রয়েছে:

    file ::= <entry>*
    entry ::= BookmarkBegin
              BookmarkTitle: <title>
              BookmarkLevel: <number>
              BookmarkPageNumber: <number>
    title ::= <character>*
    

    সুতরাং আমাদের উদাহরণ হয়ে উঠবে:

     BookmarkBegin
     BookmarkTitle: bmark1
     BookmarkLevel: 1
     BookmarkPageNumber: 1
     BookmarkBegin
     BookmarkTitle: bmark2
     BookmarkLevel: 1
     BookmarkPageNumber: 5
     BookmarkBegin
     BookmarkTitle: bmark2subbmark1
     BookmarkLevel: 2
     BookmarkPageNumber: 6
     BookmarkBegin
     BookmarkTitle: bmark2subbmark2
     BookmarkLevel: 2
     BookmarkPageNumber: 7
     BookmarkBegin
     BookmarkTitle: bmark3
     BookmarkLevel: 1
     BookmarkPageNumber: 9
    

    মূলত, আপনার কেবলমাত্র এসএক্সপিআর ট্রিটি চলার জন্য একটি স্ক্রিপ্ট লিখতে হবে, স্তরটি পর্যবেক্ষণ করে, এবং প্রতিটি বিন্যাসের নাম, পৃষ্ঠার নম্বর এবং স্তরটি সঠিক ফরমেটে আউটপুট করতে হবে।

  • পদক্ষেপ 4: রূপান্তরিত বুকমার্কগুলিতে পিডিএফ মেটাডেটা এবং স্প্লাইস বের করুন

    একবার রূপান্তরিত তালিকা পেয়ে গেলে, আপনার রূপান্তরিত পিডিএফ ফাইল থেকে পিডিএফ মেটাডেটা আউটপুট করুন:

    pdftk "filename.pdf" dump_data > pdfmetadata.out
    

    এখন, ফাইলটি খুলুন এবং শুরু হওয়া লাইনটি সন্ধান করুন: NumberOfPages:

    এই লাইনের পরে রূপান্তরিত বুকমার্কগুলি সন্নিবেশ করান। নতুন ফাইল হিসাবে সংরক্ষণ করুনpdfmetadata.in

  • পদক্ষেপ 5: বুকমার্কগুলি সহ পিডিএফ তৈরি করুন

    এখন আমরা এই মেটাডেটা যুক্ত করে একটি নতুন পিডিএফ ফাইল তৈরি করতে পারি:

    pdftk "filename.pdf" update_info "pdfmetadata.in" output out.pdf
    

    ফাইলটি out.pdfআপনার পিডিএফের একটি অনুলিপি হতে হবে ডিজেভিইউ ফাইল থেকে আমদানিকৃত বুকমার্কগুলির সাথে।


3

ব্যবহারকারী @ পিরিলি (আপনার ধন্যবাদ!) দ্বারা প্রদত্ত উপরের খুব স্পষ্ট রূপরেখার ভিত্তিতে, আমি একটি ডিজেভিউ প্রয়োগ করেছি পিডিএফ রূপান্তরকারী যা ওসিআর পাঠ্য এবং বুকমার্ক কাঠামো উভয়ই সংরক্ষণ করে। আপনি এটি এখানে খুঁজে পেতে পারেন:

https://github.com/kcroker/dpsprep

ওসিআর ডেটার জন্য স্বীকৃতিগুলি উবুন্টু ফোরামে @ জিটাতে যান!


বুকমার্ক পৃষ্ঠা নম্বর ক্ষেত্রগুলিতে অ-সংখ্যাযুক্ত পাঠ্য সহ আমার কাছে একটি ডিজেভিউ ফাইল ছিল, সুতরাং পার্সার সেগুলি পড়েনি। আমি এর সাথে প্রতিস্থাপন j.split('#')[1]করেছি (int(re.findall(r'\d+', j.split('#')[1])[0])+1)এবং এটি দুর্দান্ত কাজ করেছে। ডেবিয়ান জেসির প্রয়োজন:sudo apt-get install pdftk djvulibre-bin python-pip ruby ruby-dev libmagickwand-dev; sudo pip install sexpdata; sudo gem install iconv pdfbeads
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.