কীভাবে আমি পিডিএফ ফাইলটি একক পৃষ্ঠাগুলিতে দ্রুত বিভক্ত করতে পারি (ie টার্মিনাল কমান্ড লাইন থেকে)?


23

আমার একটি পিডিএফ ফাইল 6 পৃষ্ঠার দীর্ঘ যা আমি 1.pdf, 2.pdf, 3.pdf, ইত্যাদিতে বিভক্ত করতে চাই ...

পূর্বরূপটি এর জন্য আশ্চর্যজনকভাবে কাজ করে না (যতক্ষণ না আমি কিছু মিস করছি)।

আমি কমান্ড লাইন থেকে এই সাধারণ কাজটি করতে সক্ষম হতে চাই, তবে এই মুহুর্তে আমি কাজটি সম্পন্ন করে এমন কোনও কিছুই নেব (স্কেচি সফ্টওয়্যার ডাউনলোড না করে)

FYI http://users.skynet.be/tools/ বিজ্ঞাপন হিসাবে কাজ করে না।


2
একটি ভাল কমান্ড-লাইন সমাধান এই এসই উত্তর থেকে । আপনি হোমব্রিউ ব্যবহার করে ভুত স্ক্রিপ্ট ইনস্টল করতে পারেন ।
ফিডেলি

উত্তর:


21

প্রিভিউতে পিডিএফ খুলুন এবং তারপরে ভিউ মেনুতে থাম্বনেইস নির্বাচন করুন। Ctrl আপনি যে পৃষ্ঠাগুলি এখন চান তা নির্বাচন করুন এবং সেগুলি ডেস্কটপে রেখে দিন।


1
এটি ভাল কাজ করেছে। প্রায় 30 মিনিটের জন্য ফ্লাইং করার পরে এটি করতে আমাকে প্রায় 30 সেকেন্ড সময় নিয়েছিল। কিছু লোক এই কৌশলটি ডাব্লু / অটোমেটারের সাথে একত্রে ব্যবহার করছেন তবে আমি এখনও এটি চেষ্টা করি নি।
ব্যবহারকারী 39131339

35

এটি ব্যবহার করে অর্জন করা যেতে পারে pdfseparate। আপনি হোমব্রিউ দিয়ে পপলার ইনস্টল করতে পারেন brew install poppler। এটি ইনস্টল করা হবে pdfseparate। পিডিএফ বিভক্ত করতে document.pdfমধ্যে একক পৃষ্ঠাগুলি মধ্যে 1.pdf, 2.pdfইত্যাদি ব্যবহার:

pdfseparate document.pdf %d.pdf

1
popplerপিডিএফ ডকুমেন্টগুলি এসভিজিতে রূপান্তর করতে সক্ষম হওয়ার জন্য একদিন আগে ইনস্টল করা হয়েছে pdf2svg। কমান্ড popplerদিয়ে আসে যে খেয়াল pdfseparateকরেন নি। যেহেতু উপরের স্বীকৃত উত্তরটি (ডেস্কটপের পূর্বরূপ সহ সমস্ত পিডিএফ পৃষ্ঠাগুলি টেনে আনছে এবং ফেলেছে) আমার "চারপাশে ক্লিক করুন" প্রয়োজন এবং যেহেতু আমি টার্মিনালে সমাধানগুলি পছন্দ করি যা কেবলমাত্র একটি একক কমান্ড লাইনের দ্বারা স্বয়ংক্রিয়ভাবে কাজ করে, pdfseparateআমার প্রয়োজন ঠিক এটিই। এই ইঙ্গিতটির জন্য অনেক ধন্যবাদ!
অরভিড

মজার বিষয় হল, পিডিএফস্যাপেরেট পিডিএফ তৈরি করে যার মোট আকার মূল পিডিএফের আকারের চেয়ে অনেক বড়। 1.9 এমবি সহ আমার 400 পৃষ্ঠাগুলির ডকুমেন্ট ছিল। বিভক্ত হওয়ার পরে, আমি প্রায় 60 এমবি পেয়েছিলাম something
কনস্টান্টিন

5

আপনি যদি কমান্ড লাইন থেকে এটি করতে আগ্রহী হন তবে আপনি কাজটি করতে বেনিয়ামিন হানের স্প্লিটপিডিএফ পাইথন স্ক্রিপ্টটি দেখতে পারেন। এই ক্ষেত্রে:

splitPDF.py in.pdf 3 5

in.pdf3 এবং 5 পৃষ্ঠায় বিভক্ত হয়ে 3 ফাইলগুলিতে ফাইলটি বিভক্ত হবে ।


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

1
আমার মতো python splitPDF.py MyPDF.pdf $(seq -s ' ' 1 10 411)কাজ করেছে
ডিজিগ

1
শব্দ দুর্দান্ত। আমি এই MacOS এর 10.13.3 সরাসরি কাজ করে নিশ্চিত
MichaelCodes


1

আপনি যদি অনেকগুলি পৃষ্ঠাগুলি নিষ্কাশন করতে চান তবে নীচের স্ক্রিপ্টটি আপনি এ জাতীয় কলটি ব্যবহার করতে পারেন (ধরে নেওয়া হয়েছে যে আপনি এটি আপনার সিস্টেমের প্যাথের কোথাও, উদাহরণস্বরূপ / usr / স্থানীয় / বিন ফাইল করে pdfextract.py ফাইল করতে পারেন, এবং এটি কার্যকর করার জন্য নির্ধারণ করেন) chmod 744 pdfextract.py এর সাথে অনুমতি):

পিডিএফেক্সট্রাক্ট.পি - ফাইল-ইন / পাথ / টু / লার্জ / পিডিএফ - ফাইল-আউট / পাথ / টু / নতুন / পিডিএফ - স্টার্ট - স্টপ

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


import argparse
import os
import subprocess as sp


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--file-in', required=True, type=str, dest='file_in')
    parser.add_argument('--file-out', required=True, type=str, dest='file_out')
    parser.add_argument('--start', required=True, type=int, dest='start', default=-1)
    parser.add_argument('--stop', required=True, type=int, dest='stop', default=-1)

    args = parser.parse_args()
    assert os.path.isfile(args.file_in)
    assert not os.path.isfile(args.file_out)

    # remove temporary files
    for el in os.listdir('/tmp'):
        if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
            os.remove(os.path.join('/tmp', el))

    sp.check_call('pdfseparate -f {:d} -l {:d} {:s} /tmp/pdfseparate-%d.pdf'.format(args.start, args.stop, args.file_in), shell=True)

    cmd_unite = 'pdfunite '
    for i in range(args.start, args.stop + 1):
        cmd_unite += '/tmp/pdfseparate-{:d}.pdf '.format(i)
    cmd_unite += args.file_out
    sp.check_call(cmd_unite, shell=True)

    # remove temporary files
    for el in os.listdir('/tmp'):
        if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
            os.remove(os.path.join('/tmp', el))


if __name__ == "__main__":
    main()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.