পিডিএফ ফাইলের কোডটি কীভাবে দেখতে এবং সম্পাদনা করতে হয়


12

আমি ভাবছিলাম কীভাবে পিডিএফ ফাইলের কোডটি দেখতে এবং সম্পাদনা করব?

  1. দেখার দ্বারা, আমি বাইনারি ফর্ম্যাটটি দেখতে চাই না, তাই আমার মনে হয় hexdumpআমি যা চাই তা হতে পারে না। আমি চেষ্টা করেছি gedit, তবে পিডিএফ বিষয়বস্তু ডিকোড করতে কোনও এনকোডিং পদ্ধতি ব্যবহার করা যাবে না।

  2. সম্পাদনা করে, আমি তাদের জন্য অনুসন্ধান করতে /Fitএবং /XYZউদাহরণস্বরূপ সেডগুলিতে এটিকে পরিবর্তন করতে চাই । তবে আমার কমান্ডটি sed s/\/Fit/\/XYZ/ < 1.pdf > 2.pdfআমার প্রত্যাশার মতো আমার পিডিএফটির উপস্থিতি পরিবর্তন করবে না যদিও এটি কোনও ত্রুটির খবর দেয় না report আমি ভাবছিলাম যে sedপিডিএফ ফাইলগুলিতে আসলে কাজ করতে পারে যেন সেগুলি সরল পাঠ্য?

আমার প্রশ্নের প্রসঙ্গটি এই প্রশ্ন থেকে পাওয়া যাবে । আমার ওএস হ'ল উবুন্টু 10.10।

উত্তর:


9

আপনি sedবাইনারি ফাইলগুলি ব্যবহার করতে পারেন (কমপক্ষে GNU সেড; কিছু প্রয়োগের নাল অক্ষরযুক্ত ফাইলগুলির সাথে সমস্যা হতে পারে বা একটি নিউলাইন চরিত্রের সাথে শেষ না হওয়া)। তবে আপনি যে কমান্ডটি ব্যবহার /Fitকরেছিলেন তা প্রতিটি লাইনের প্রথম উপস্থিতির পরিবর্তে এবং পিডিএফ ফাইলে লাইনগুলি বেশ অর্থহীন। আপনাকে সমস্ত উপস্থিতি প্রতিস্থাপন করতে হবে:

 sed s/\/Fit/\/XYZ/g

এটি কেবল শক্ত প্রতিস্থাপনকারী /Fitশব্দটি অনুসরণ না করা হলে প্রতিস্থাপন করা আরও দৃ be় হবে (উদাহরণস্বরূপ প্রতিস্থাপন না করা /Fitness; আপনার ফাইলে এতে /Fitসমস্যা দেখা দেয় কিনা তা আমি জানি না )। এখানে একটি উপায়:

perl -pe 's!/Fit\b!/XYZ!g'

ধন্যবাদ! এটি এখন কাজ করে! (1) আমি ভাবছিলাম যে বাইনারি সামগ্রীগুলিতে কীভাবে অনুসন্ধানের অক্ষর রয়েছে? সেড কি অনুসন্ধানের আগে ক্যোয়ারী অক্ষরগুলিকে প্রথম এনকোড করে? (২) শেষ আদেশে !, \bএবং এর gঅর্থ কী? পার্ল ছাড়া কি কেবল সেড দিয়েই করা যায়?
টিম

1
@ টিম (1) শেড ডেটা মেমোরিতে লোড করে, এতে কাজ করে এবং মুদ্রণ করে। এটি কেন কিছু এনকোড প্রয়োজন? (২) এর gঅর্থ প্রতিটি লাইনের সমস্ত উপস্থিতি দুটি সেড এবং পার্ল প্রতিস্থাপন করা। !বিভাজক হয়; আপনি sকমান্ডের জন্য বিভাজক হিসাবে (প্রায়) যে কোনও অক্ষর চয়ন করতে পারেন ( এটি সেড এবং পার্ল উভয় ক্ষেত্রে যায়)। \bএকটি শব্দ সীমানা অর্থ; এটি পার্লে বিদ্যমান তবে সেডে নেই।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

(1) সম্পর্কে, কারণ আপনি যে অক্ষরগুলি কমান্ডের সাথে যুক্ত করেছেন তা মানব পাঠযোগ্য। যদি অনুসন্ধান করার বিষয়বস্তুটি সম্পূর্ণ বাইনারি হয় তবে সেখানে কীভাবে শব্দটি পাওয়া যাবে?
টিম

@ টিম টেক্সট হ'ল বাইনারি ডেটা যা মানুষের পাঠযোগ্য হতে পারে happens
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

1
@ টিম হ্যাঁ, আপনি ক্যোয়ারিতে বাইনারি ডেটা পাস করতে পারেন। আপনাকে অক্ষরে অক্ষরে প্রবেশ করতে হবে আপনার সেড বা শেল উত্স কোডে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

17

আপনার প্রথম প্রশ্ন সম্পর্কে ("উত্সের কোডটি দেখছেন, তবে কোনও বাইনারি নেই"): আপনার কাছে অভ্যন্তরীণ বাইনারি স্ট্রিমগুলি ডি-কমপ্রেস করার জন্য কয়েকটি বিকল্প রয়েছে যা অনেকগুলি অবজেক্টের সাথে সংযুক্ত।

এর জন্য আমার প্রিয় সরঞ্জামটি কিউপিডিএফ , সমস্ত বড় ওএস প্ল্যাটফর্মগুলিতে উপলব্ধ। নিম্নলিখিত কমান্ডটি সমস্ত স্ট্রিম এবং সমস্ত অবজেক্ট স্ট্রিমগুলি ডি- কম্রেস করে:

 qpdf --qdf --object-streams=disable orig.pdf expanded.pdf

এখন আপনি যে কোনও পাঠ্য সম্পাদককে আপনার পিডিএফ খুলতে পারেন। (সেখানে এখনও কিছু বাইনারি ব্লব থাকতে পারে: উদাহরণস্বরূপ, ফন্ট ফাইল এবং আইসিসি প্রোফাইলগুলি, যা কিউপিডিএফটি প্রসারিত করার কোনও অর্থ দেয় না)।

করতে পুনরায় কম্প্রেসexpanded.pdf আবার সম্পাদনা করার পরে, আপনি চালাতে পারেন:

 qpdf expanded.pdf orig2.pdf

(পিডিএফগুলি ম্যানুয়ালি সম্পাদনা করার সময় সাবধান! এটি করার জন্য আপনাকে তাদের অভ্যন্তরীণ বাক্য গঠন সম্পর্কে আরও অনেক কিছু জানতে হবে a একক বাইট যুক্ত বা মুছার সাথে সাথে আপনি পিডিএফ পাঠকদের কাছ থেকে ত্রুটি বার্তাগুলি পেতে পারেন যা আর পারবেন না এটি খোলার, কারণ PDF গুলি অভ্যন্তরীণ ToC, দূষিত করছে যা বাইট-অফসেট গণনার উপর ভিত্তি করে। শুধু প্রতিস্থাপন Fitদ্বারা XYZযদিও, স্ট্রিং জরিমানা যেতে হবে ...)


1
আপনি পাঠ্য যোগ বা মুছতে পারেন। যখন কোনও অবজেক্ট স্ট্রিমের দৈর্ঘ্য পরিবর্তন হয় তখন fix-qdfবায়ু অফসেটগুলি কিউপিডিএফ এর অংশ হিসাবে প্রোগ্রামটি ব্যবহার করে পুনরায় সংশোধন করা যায়। যদিও আপনাকে এখনও কিছুটা সতর্ক থাকতে হবে। Qpdf.sourceforge.net/files/qpdf-manual.html#ref.qdf
এইচ।

@ এইচ। রিট্টিচ: মন্তব্যে থেক্স ... কীভাবে আপনি মনে করেন যে এটি সমস্যার বিষয়ে একটি নতুন দৃষ্টিভঙ্গি উন্মুক্ত করে? আপনি কি ভেবেছিলেন যে আমরা জানি না যে আমরা এভাবে পাঠ্য যুক্ত করতে বা মুছতে পারি?
কার্ট ফেফেল

@ কুরসফিফেল: আপনি যা জানেন সে সম্পর্কে আমি কোনও অনুমান করি না। উত্তরে বলা হয়েছে যে পিডিএফ সম্পাদনা করার জন্য এই ফাইলটিতে থাকা বস্তুর বাইট অফসেট সংরক্ষণ করা দরকার । যাইহোক, পরে ব্যবহার করে বাইট অফসেটগুলি সংশোধন করার সময় এটি পরিবর্তন করা সম্ভব fix-qdf। সুতরাং, আপনি যদি বিভিন্ন দৈর্ঘ্যের স্ট্রিং দ্বারা একটি স্ট্রিং প্রতিস্থাপন করতে চান তবে এটি সম্ভব, তবে আপনাকে fix-qdfসরঞ্জামটি ব্যবহার করতে হবে । আমি বলব, এটি উত্তরের একটি দরকারী সংযোজন।
এইচ। রিট্টিচ

@ এইচ। রিটিচ: আপনার দৃষ্টিকোণ দেওয়ার জন্য ধন্যবাদ x আমি যখন বস্তুর বাইট অফসেট সংরক্ষণ প্রয়োজনীয়তার ওপর গুরুত্বারোপ আমি পরামর্শ মানুষ চায়নি কীভাবে তারা এই করতে হবে। আপনি যদি আপনার মন্তব্যটি কিছুটা আলাদাভাবে উচ্চারণ করেন তবে আমি আপনার মন্তব্যের উদ্দেশ্যটি আরও দ্রুত বুঝতে পারতাম।
কর্ট ফেফিল

1

sedলাইন-ভিত্তিক, এটি বাইনারি ফাইলগুলির জন্য উপযুক্ত নয়, যা লাইন নয় ব্লক হিসাবে কাঠামোযুক্ত।
পরিবর্তে bbe (bbe-.sourceforge.net) ব্যবহার করে দেখুন।

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

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


আপনি সুইচ sedব্যবহার করে সম্পাদনা করার চেষ্টা করতে -bপারেন। যদি এটি কাজ করে তবে আমি এটি আমার উত্তরে যুক্ত করব।
ফিলোমাথ

@ টিম: "খালি কিছু দেখায় না" বলতে কী বোঝায়, খালি খালি? কোন ত্রুটি বার্তা? এছাড়াও, আপনি কি এক্সএম্যাকস দিয়ে চেষ্টা করতে পারেন? (তাদের তিনটিই আমার পক্ষে কাজ করেছিল)।
ফিলোমাথ

কিছু মনে করবেন না -b, এটি সাইগউইন নির্দিষ্ট।
ফিলোমাথ

ইমাকস বলেছেন "ফাইল 1.pdf বড় (9MB), সত্যিই খোলা? (Y বা n)"। আমি "y" বেছে নিয়েছি, এবং তারপরে কিছুই নেই।
টিম

সম্ভবত ইম্যাক্স সমস্যা, আপনার কি এক্সএম্যাকস আছে? (আমি সবেমাত্র কোনও সমস্যা ছাড়াই একটি 31 এমবি পিডিএফ খুললাম)।
ফিলোমাথ

0

পিডিএফ খোলার জন্য এটি দেখতে, জিনিসগুলি প্রতিস্থাপন করতে, একটি নতুন পিডিএফ লিখতে ইত্যাদির জন্য LibreOffice বা ওপেন অফিস ব্যবহার করুন I

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


3
(১/২) নিম্নলিখিত বিষয় সম্পর্কে সচেতন থাকুন: লিবারঅফিস কোনও স্থানীয় পিডিএফ সম্পাদক নয়। যখন এটি একটি পিডিএফ খুলবে, এটি সমস্ত পৃষ্ঠাগুলিকে একটি ভেক্টর চিত্রে রূপান্তর করে (যা মূল পিডিএর থেকে রাস্টার অংশগুলি রাস্টার অংশ হিসাবে রাখতে পারে) এবং এটি লিব্রেফিস ড্র অঙ্কিত অংশে খোলায় লিব্রে অফিস স্যুট। তারপরে, এটি সম্পাদিত পিডিএফ ফাইলটি সংরক্ষণ করে, এটি একটি পিডিএফ ফাইল হবে যা নেটিভ LibreOffice অঙ্কন বিন্যাস (প্রত্যয় .odg সহ ) থেকে পিডিএফে রফতানি করা হয়েছিল ।
কুর্ট ফেফিল

3
(2/2) এই কর্মপ্রবাহের অপ্রত্যাশিত পার্শ্ব প্রতিক্রিয়া হতে পারে। তদতিরিক্ত, LibreOffice অঙ্কন অ্যাপ্লিকেশনটি মূল পিডিএফ থেকে সমস্ত উপাদান সঠিকভাবে আমদানি করতে সক্ষম হবে না। তবে, অনেক ক্ষেত্রে এটি এখনও সেই সমস্ত লোকদের জন্য একটি দরকারী সরঞ্জাম হতে পারে যাদের কাছে আরও ভাল উপায় উপলব্ধ নেই available
কুর্ট ফেফিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.