क्या मैं फ्रीवेयर के साथ एक पीडीएफ की सामग्री को संपादित / बना सकता हूं?


0

मेरे पास कई हिस्सों के साथ एक पीडीएफ है। मैं पीडीएफ को आसानी से नेविगेट करने के लिए सामग्री तालिका बनाना चाहूंगा। मैं एक पर करना चाहते हैं MAC यह फ्रीवेयर के साथ। (एक कमांड-लाइन कार्यक्रम बहुत अच्छा होगा।)

क्या यह संभव है? इसी तरह के प्रश्न पहले भी पूछे गए हैं , लेकिन जहां तक ​​मैं बता सकता हूं, दिया गया सबसे अच्छा उत्तर PDFOutliner है , जो फ्रीवेयर नहीं है।

जवाबों:


2

मैंने पाया कि PDFtk सर्वर और सुसंगत PDF कमांड लाइन उपकरण पीडीएफ कमांड लाइन उपयोगिताओं की एक विस्तृत श्रृंखला है।

मैंने टूल को चालू और बंद दोनों तरह से उपयोग किया है, लेकिन कभी भी TOC काम करने की आवश्यकता नहीं है। सुसंगत उपयोग उदाहरण पृष्ठ में बुकमार्क अनुभाग ऐसा लगता है कि यह प्रयोग करने के लिए एक दृष्टिकोण हो सकता है:

6. बुकमार्क

cpdf -list-bookmarks in.pdf

In.pdf में बुकमार्क सूचीबद्ध करें। यह उत्पादन होगा:

0 "Part 1" 1 open
1 "Part 1A" 2
2 "Part 1B" 3
0 "Part 2" 4
1 "Part 2a" 5

cpdf -add-bookmarks bookmarks.txt in.pdf -o out.pdf

एक तैयार फ़ाइल से उसी रूप में बुकमार्क जोड़ें। बुकमार्क करने के लिए।


1
बस, यही मैं चाह रहा था। चूंकि cpdf -add-bookmarksपीडीएफ की सामग्री की पुरानी तालिका को अधिलेखित किया गया है, इसलिए इसका उपयोग करके बुकमार्क को संपादित करना प्रतीत होता है cpdf, जाने का तरीका है: (1) cpdf -list-bookmarks in.pdf > out.txt; (२) संपादित करना out.txt; (३) cpdf -add-bookmarks...
एलेक्स रॉबर्ट्स

0

यहाँ एक अजगर लिपि है जो एक अल्पविकसित टीओसी का निर्माण करने के लिए MacOS पर चलेगी। आपको इनपुट फ़ाइल और आउटपुट फ़ाइलनाम के लिए अपने स्वयं के मान दर्ज करने की आवश्यकता होगी, और प्रत्येक प्रविष्टि के लिए पृष्ठ संख्या और लेबल।

#!/usr/bin/python
# -*- coding: utf-8 -*-

# CREATE PDF OUTLINES v.1.0 : Add a simple list of Bookmarks to a PDF.

from Foundation import  NSURL, NSString
import Quartz as Quartz
import sys

# You will need to change these filepaths to a local test pdf and an output file.
infile = "/path/to/file.pdf"
outfile = '/path/to/output.pdf'

def getOutline(page, label):
    myPage = myPDF.pageAtIndex_(page)
    pageSize = myPage.boundsForBox_(Quartz.kCGPDFMediaBox)
    x = 0
    y = Quartz.CGRectGetMaxY(pageSize)
    pagePoint = Quartz.CGPointMake(x,y)
    myDestination = Quartz.PDFDestination.alloc().initWithPage_atPoint_(myPage, pagePoint)
    myLabel = NSString.stringWithString_(label)
    myOutline = Quartz.PDFOutline.alloc().init()
    myOutline.setLabel_(myLabel)
    myOutline.setDestination_(myDestination)
    return myOutline

pdfURL = NSURL.fileURLWithPath_(infile)
myPDF = Quartz.PDFDocument.alloc().initWithURL_(pdfURL)
if myPDF:
    # Create Outlines. Add the Page Index (from 0) and label in pairs here:
    myTableOfContents = [
        (0, 'Page 1'), 
        (1, 'Page 2'),
        (2, 'Page 3')
        ]
    allMyOutlines = []
    for index, outline in myTableOfContents:
        allMyOutlines.append(getOutline(index, outline))

    rootOutline = Quartz.PDFOutline.alloc().init()
    for index, value in enumerate(allMyOutlines):
        rootOutline.insertChild_atIndex_(value, index)
    myPDF.setOutlineRoot_(rootOutline)
    myPDF.writeToFile_(outfile)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.