পিডিএফটকির মতো সরঞ্জামগুলির সাথে পিডিএফ ফাইলের পৃষ্ঠাগুলি পুনরায় সাজানোর সময় বুকমার্কগুলি কীভাবে সংরক্ষণ করবেন?


12

আমি pdftkবুকমার্কস / আউটলাইন সহ পিডিএফ ফাইলের পৃষ্ঠাগুলি পুনরায় সাজানোর জন্য ব্যবহার করছি , তবে এর পরে, আউটপুট ফাইলটি মূলের বুকমার্কগুলি হারিয়ে ফেলে।

আমার আদেশ pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf

আমি ভাবছিলাম পৃষ্ঠাগুলি পুনরায় সাজানোর সময় আমি কীভাবে বুকমার্কগুলি রাখতে পারি?

উত্তর:


10

এখানে একটি কার্যনির্বাহী সমাধান দেওয়া হল। তবে আপনার প্রয়োজন অনুসারে আপনাকে এটি সামঞ্জস্য করতে হবে।

আমার উদাহরণে আমি একটি পিডিএফের প্রথম পৃষ্ঠাটি সরিয়েছি এবং তারপরে আমাকে সঠিক অবস্থানগুলিতে নির্দেশ করতে বুকমার্কগুলি আপডেট করতে হবে।

  1. পৃষ্ঠা 1 টি in.pdf থেকে সরান:

    pdftk A=in.pdf cat A2-end output temp.pdf
    
  2. in.pdf থেকে একটি in.info ফাইল তৈরি করুন:

    pdftk in.pdf dump_data > in.info
    
  3. in.info আমার ক্ষেত্রে সংশোধন করা দরকার, যেহেতু আমি একটি পৃষ্ঠা সরিয়ে দেব।

    সুতরাং, বুকমার্কগুলিকে সঠিক পৃষ্ঠাগুলি নিয়ে যাওয়ার জন্য আমার বুকমার্কপেজ নাম্বারটি এক করে কমাতে হবে।

    পিএইচপি কোড:

    $file = "in.info";
    $data = file_get_contents($file);
    
    foreach (explode("\n", $data) as $row) {
        $tmp = explode(": ", $row);
    
        if ($tmp[0] == "BookmarkPageNumber") {
            if ($tmp[1] != "1") $tmp[1]--;
            echo $tmp[0].": ".$tmp[1]."\n";
        } else {
            echo $row."\n";
        }
    }
    
  4. ফাইনাল আউট.পিডিএফ তৈরি করুন:

    pdftk temp.pdf update_info in2.info output out.pdf
    

পিডিএফটক ২.০১ ব্যবহার করে ডেবিয়ানে কাজ করার পরীক্ষা করা হয়েছে


1
আমার জন্যও কাজ করেছেন। হতে পারে আপনি কীভাবে আপনার স্ক্রিপ্টটি কার্যকর করতে পারেন তার কোনও ইঙ্গিত যোগ করতে পারেন (কীভাবে কোনও ধারণা নেই ...) বা পাইথন স্ক্রিপ্ট যুক্ত করতে পারেন:#!/usr/bin/python output = open('res.info','w') with open('temp.info','r') as f: for line in f: if line.startswith("BookmarkPageNumber"): output.write( "BookmarkPageNumber: "+ str(int(line.split()[1])+1)+"\n") else: output.write(line)
ভেসার

6

আপনাকে করতে হবে pdftk in.pdf dump_data > in.info, তারপরে update_infoজেনারেট করার সময় প্যারামিটার যুক্ত করুন out.pdf। থেকে উদ্ধৃতি man pdftk:

update_info <info data filename | - | PROMPT>

ইনপুট ডেটা ফাইলের সাথে মেলে একা পিডিএফ এর তথ্য অভিধানে সঞ্চিত মেটাডেটা পরিবর্তন করে। ইনপুট ডেটা ফাইলটি ডাম্প_ডাটা থেকে আউট-এর মতো একই সিনট্যাক্স ব্যবহার করে। অ ASCII অক্ষরগুলিকে XML সংখ্যার সত্তা হিসাবে এনকোড করা উচিত। এটি পিডিএফের এক্সএমপি স্ট্রমে থাকা মেটাডেটা পরিবর্তন করে না, যদি এটি থাকে। উদাহরণ স্বরূপ:

             pdftk in.pdf update_info in.info output out.pdf

  update_info_utf8 <info data filename | - | PROMPT>

আপডেট_আইনফো হিসাবে একই যে ইনপুটটি ইউটিএফ -8 হিসাবে এনকোড করা আছে।


ধন্যবাদ! আমি এই ফাইলটি "in.info" কীভাবে পাব?
টিম

@ টিম: সম্পাদিত। আমি আশা করি এটি এখন পরিষ্কার হয়ে গেছে। অবশ্যই কাজ করার dump_data_utf8জন্য update_info_utf8আপনাকে অবশ্যই ব্যবহার করা উচিত ।
ফিলোমাথ

3
ধন্যবাদ! এটি এখনও কাজ করে না। আমার কমান্ড তিনটি ধাপ আছে: pdftk in.pdf dump_data > in.info, pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdfএবং pdftk out.pdf update_info in.info output out1.pdfএখনও কোনও বুকমার্ক নেই out1.pdf। `
টিম

@ টিম আমি নিশ্চিত করতে পারি যে এটি আসলে কাজ করে না। আপনি কি কোনও সুযোগে এর সমাধান পেয়েছেন?
গ্লুটানীমেট

1
আমার অভিশাপ গুগল ট্রলিংয়ের পরামর্শ দেয় যে বুকমার্কগুলি হ্যান্ডল করা হয় না।
ভনব্র্যান্ড

5

ম্যান পেজটি যত্ন সহকারে পড়তে বলা হয়েছে যে এটি যে update_infoকোনও ফর্ম্যাট dump_dataতৈরি করে তার ডেটা নেয় takes এটি সম্ভবত পৃষ্ঠা শফলিং অনুসারে সামঞ্জস্য করতে হবে। অসম্ভব শোনাচ্ছে না , তবে এটি স্বয়ংক্রিয় নয়।

PDFtk সাইটে শুধুমাত্র উপরে আঘাত এবং তৈরি / ফলাফল হিসাবে সম্পাদনা বুকমার্ক দেয়। সমস্ত গুগল পিডিএফ এবং পুনর্গঠনের বুকমার্কগুলির বিষয় সম্পর্কে জানে, উপরোক্ত ক্রিয়াকলাপগুলি এবং তারা যে অফার করে তা প্রকাশ করে এবং এই থ্রেড ;-) - এ হিট।

সুতরাং মনে হচ্ছে এটি করা যায় না। মন্তব্যগুলিতে কিছু সম্ভাবনার কথা বলা হয়েছে, যা চেষ্টা করার সময় কার্যকর হয়নি।


1

"পিডিএফডমড" একটি সাধারণ গ্রাফিকাল সরঞ্জাম যা একটি বিদ্যমান পিডিএফ থেকে এক বা মোড পৃষ্ঠা মুছে ফেলতে দেয়। এটি কেবল কয়েকটি ক্লিকের বিষয়। এটি পিডিএফ-তে সামগ্রী তথ্য এবং ক্রস লিঙ্কিং সংরক্ষণ করে।

"pdftk" ভাল কাজ করে এবং আমি এটি দীর্ঘকাল ব্যবহার করছিলাম তবে আমি পিডিএফ থেকে এক বা দুটি পৃষ্ঠা মুছে ফেলার পরে সামগ্রী হারাতে চাইতাম। "পিডিএফটিটক" এবং "পিডিএফডমড" এ পরীক্ষা করা হয় এমন পিডিএফ ফাইলগুলি ওপেন অফিস থেকে তৈরি করা হয়।

https://apps.fedoraproject.org/packages/pdfmod


pdfmodpdftkমেটাডেটা সংরক্ষণের ক্ষেত্রে এটির চেয়ে ভাল মনে হয় । exiftoolআউটপুটটির ভিন্নতা দেখায় যে pdfmodমেটাডেটা সংরক্ষণ করে pdftkতবে আপনি dump_data_utf8& ব্যবহার করলেও সমস্ত কিছু সংরক্ষণ করে না update_info_utf8
ব্যবহারকারী 1338062
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.