पीडीएफ़ जैसे टूल के साथ पीडीएफ फाइल के पन्नों को फिर से व्यवस्थित करते समय बुकमार्क को कैसे संरक्षित करें?


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 को मेरे मामले में सुधार करने की आवश्यकता है, क्योंकि मैं एक पृष्ठ हटा दूंगा।

    इस प्रकार, मुझे बुकमार्क को सही पृष्ठों तक ले जाने के लिए BookmarkPageNumber को कम करना होगा।

    php कोड:

    $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
    

pdftk 2.01 का उपयोग करते हुए डेबियन पर परीक्षण किया गया


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)
Vser

6

आपको करने की आवश्यकता है pdftk in.pdf dump_data > in.info, तब update_infoजनरेट करते समय पैरामीटर जोड़ें out.pdf। से उद्धृत man pdftk:

update_info <info data filename | - | PROMPT>

इनपुट डेटा फ़ाइल से मिलान करने के लिए एकल पीडीएफ जानकारी शब्दकोश में संग्रहीत मेटाडेटा को बदलता है। इनपुट डेटा फ़ाइल डंप_डेटा से आउट from के समान सिंटैक्स का उपयोग करती है। गैर- ASCII वर्णों को XML संख्यात्मक संस्थाओं के रूप में एन्कोड किया जाना चाहिए। यह पीडीएफ के एक्सएमपी स्ट्रीम में संग्रहीत मेटाडेटा को नहीं बदलता है, अगर इसमें एक है। उदाहरण के लिए:

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

  update_info_utf8 <info data filename | - | PROMPT>

इसके अलावा update_info के अलावा इनपुट UTF-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। `
टिम

@ मैं यह पुष्टि कर सकता हूं कि यह वास्तव में काम नहीं करता है। क्या आपको किसी भी मौके से इसका कोई हल मिला है?
Glutanimate

1
मेरे सरसरी तौर पर Google ट्रॉलिंग से पता चलता है कि बुकमार्क बिल्कुल भी नियंत्रित नहीं हैं।
वॉनब्रांड

5

मैन पेज को ध्यान से पढ़ना , यह कहता है कि update_infoजो भी प्रारूप dump_dataउत्पन्न करता है उसमें डेटा लेता है । संभवतः पृष्ठ फेरबदल के अनुसार समायोजित किया जाना चाहिए। असंभव नहीं लगता है , लेकिन स्वचालित यह नहीं है।

Pdftk साइट केवल ऊपर हिट और बनाने / परिणाम के रूप में बुकमार्क संपादित करना देता है। सभी Google पीडीएफ और पुनर्गठन में बुकमार्क के मामले के बारे में जानते हैं, उपरोक्त संचालन और उनके द्वारा प्रदान किए गए चमत्कारों पर गीतात्मक एक्सप्रेशंस और इस धागे ;-) पर हिट है।

तो ऐसा लगता है कि यह नहीं किया जा सकता है। टिप्पणियाँ कुछ संभावनाओं का सुझाव देती हैं, जो कोशिश करने पर काम नहीं करती थीं।


1

"pdfmod" एक सरल ग्राफिकल टूल है जो मौजूदा पीडीएफ से एक या मोड पेज को हटाने की अनुमति देता है। यह केवल कुछ क्लिकों की बात है। यह पीडीएफ में सामग्री की जानकारी और क्रॉस-लिंकिंग को भी संरक्षित करता है।

"pdftk" अच्छा काम करता है और मैं इसे लंबे समय से उपयोग कर रहा था, लेकिन मैं पीडीएफ से एक या दो पृष्ठ हटाने के बाद सामग्री खो देता था। उन पीडीएफ फाइलों को "pdftk" और "pdfmod" में परीक्षण किया जाता है जो ओपनऑफिस से बनाई जाती हैं।

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


pdfmodpdftkजब यह मेटाडेटा को संरक्षित करने की बात आती है तो बेहतर लगता है । exiftoolआउटपुट का एक अंतर दिखाता है कि pdfmodमेटाडेटा को संरक्षित करता है, लेकिन pdftkसब कुछ संरक्षित नहीं करता है, भले ही आप उपयोग करें dump_data_utf8और update_info_utf8
user1338062
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.