কিভাবে একটি পিডিএফ থেকে পাঠ্য নিষ্কাশন? [বন্ধ]


152

কেউ কি পিডিএফ থেকে পাঠ্য এবং চিত্রগুলি বের করার জন্য কোনও লাইব্রেরি / এপিআই সুপারিশ করতে পারেন? ডকুমেন্টটির পূর্ব-পরিচিত অঞ্চলগুলিতে থাকা পাঠ্যটিতে আমাদের সক্ষম হওয়া দরকার, সুতরাং এপিআইকে পৃষ্ঠায় প্রতিটি উপাদানগুলির অবস্থানিক তথ্য আমাদের দিতে হবে।

আমরা চাই যে ডেটা আউটপুট xmlবা jsonবিন্যাসে আসুক। আমরা বর্তমানে পিডিএফটেক্সটস্ট্রিমটি দেখছি যা দেখতে বেশ ভাল লাগছে, তবে অন্যান্য লোকের অভিজ্ঞতা এবং পরামর্শ শুনতে চাই।

পিডিএফ থেকে পাঠ্যক্রমিকভাবে পাঠানোর জন্য বিকল্পগুলি (বাণিজ্যিকগুলি বা বিনামূল্যে) রয়েছে?



1
অত্যন্ত সহজ (কোন অবস্থানে তথ্য) কিছু প্রয়োজন তাদের জন্য, এই Perl Regex চলা করতে পারেন: /^\s*\[?\((.*?)\)\]?\s*T[Jj]/mg। এটি কেবল টিজে / টিজে অপারেটরের জন্য অনুসন্ধান করে, যা একটি পিডিএফে সমস্ত সাধারণ পাঠ্যকে বোঝায়।
অ্যালেক্স আর

1
টমরোশ পিডিএফবক্স লাইব্রেরিটি ব্যবহার করুন এটি অ্যান্ড্রয়েডে ভাল কাজ করে
ফয়সালআহমেড

উত্তর:


113

আমাকে একটি টেবিলের সাথে একটি 400 পৃষ্ঠার পিডিএফ ফাইল দেওয়া হয়েছিল যা আমাকে আমদানি করতে হয়েছিল - ভাগ্যক্রমে কোনও চিত্র নেই। ঘোস্টস্ক্রিপ্ট আমার জন্য কাজ করেছে:

gswin64c -sDEVICE=txtwrite -o output.txt input.pdf

আউটপুট ফাইলটি শিরোনাম ইত্যাদির সাথে পৃষ্ঠাগুলিতে বিভক্ত ছিল, তবে ফাঁকা লাইন ইত্যাদির বাইরে বের করতে এবং সমস্ত 30,000 রেকর্ডে চুষতে কোনও অ্যাপ্লিকেশন লেখা সহজ ছিল। -dSIMPLEএবং -dCOMPLEXএই ক্ষেত্রে কোন পার্থক্য নেই।


37
লিনাক্স এবং সাইগউইনের gsপরিবর্তে কমান্ডটি রয়েছে gswin64c। পুরোপুরি কাজ করে। কোনও পেটেন্ট পেইড ক্র্যাপ নেই এটা ঠিক কাজ করে।
জ্যানস

4
হ্যাঁ, দুর্দান্ত কাজ করে! এখন আমি আমার পিডিএফ ফাইলগুলিতে দায়বদ্ধতা সহ "গ্রেপ" ব্যবহার করতে পারি। যেহেতু আমি পড়ার চেয়ে আরও ভাল গ্রেপ করতে পারি, এটি একটি জয়! (:-) আপভোট।
ডেভিড এলসন

1
আমার কেবল সমস্যাটি হ'ল এটি এম্বেডড 'পুরাতন' ফন্ট সহ পিডিএফএস এ ব্যবহার করা। স্থানীয়ভাবে উত্পাদিত পিডিএফগুলির জন্য পুরোপুরি কাজ করে তবে অস্পষ্ট উত্সগুলির সাথে আরও শক্ত। অন্যথায়, একটি দুর্দান্ত স্ক্রিপ্টলেট।
জন এম


পাঠ্য ফাইল হিসাবে সংরক্ষণের পরিবর্তে স্টডআউট আউটপুট ব্যবহার করুন gswin64c -sDEVICE=txtwrite -o- input.pdf। উত্স (আমার দ্বারা কিছুটা পরিবর্তিত): gist.github.com/drmohundro/560d72ed06baaf16f191ee8be34526ac
LuH

33

আজ যেহেতু আমি জানি: PDF ফাইল থেকে টেক্সট নিষ্কাশন জন্য ভাল জিনিস হল টিইটি, টেক্সট নিষ্কাশন টুলকিট । টিইটি হ'ল পিডিএফলিব ডটকমের পরিবারের অংশ।

পিডিএফলিব.কম হ'ল টমাস মের্জের সংস্থা। আপনি যদি তার নামটি স্বীকৃতি না পান: থমাস মের্জ "পোস্টস্ক্রিপ্ট এবং পিডিএফ বাইবেল" র লেখক।

টিইটির প্রথম অবতার একটি গ্রন্থাগার । পৃষ্ঠার প্রতিটি উপাদান সম্পর্কিত অবস্থানগত তথ্য সহ এটি সম্ভবত বুডা 6006 যা যা করতে চেয়েছিল তা করতে পারে। ওহ, এবং এটি চিত্রগুলিও বের করতে পারে। এটি চিত্রগুলিকে পুনরায় সংযুক্ত করে যা টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো হয়ে আছে।

pdflib.com এছাড়াও এই প্রযুক্তির আরেকটি অবতার, অ্যাক্রোব্যাটের জন্য টিইটি প্লাগইন সরবরাহ করে । এবং তৃতীয় অবতার হ'ল পিডিএফলিব টিইটি আইইফিল্টার । এটি ব্যবহারকারী ডেস্কটপগুলির জন্য একক সরঞ্জাম tool এগুলি উভয়ই ব্যক্তিগত, অ-বাণিজ্যিক উদ্দেশ্যে ব্যবহারের জন্য বিনামূল্যে (বিয়ারের মতো) মুক্ত।

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

আমি কেবল ডেস্কটপ স্ট্যান্ডএলোন সরঞ্জাম পরীক্ষা করেছি এবং তারা তাদের ওয়েবপৃষ্ঠায় যা বলে তা সত্য is এটির একটি খুব ভাল কমান্ডলাইন রয়েছে। আমার কিছু "সমস্যাযুক্ত" পিডিএফ পরীক্ষার ফাইলগুলি আমার সম্পূর্ণ সন্তুষ্টির জন্য হ্যান্ডেল করেছিল।

এই জিনিসটি এখন থেকে প্রতিটি পরিশীলিত এবং চ্যালেঞ্জিং পিডিএফ পাঠ্য নিষ্কাশন প্রয়োজনীয়তার জন্য আমার সুপারিশ হবে।

টিইটি হ'ল দুর্দান্ত। এটি টেবিলগুলি সনাক্ত করে। টেবিলের অভ্যন্তরে, এটি একাধিক কলামগুলিকে বিস্তৃত সেলগুলি সনাক্ত করে। এটি পৃথকভাবে প্রতিটি টেবিল ঘরের টেবিল সারি এবং সামগ্রীগুলি সনাক্ত করে। এটি হাইফেনেশনের সাথে খুব ভাল আচরণ করে: এটি হাইফেনগুলি সরিয়ে দেয় এবং সম্পূর্ণ শব্দ পুনরুদ্ধার করে। এটি অ-এসসিআইআই ভাষাগুলি (সিজেকে, আরবি এবং হিব্রু সহ) সমর্থন করে। লিগচারের মুখোমুখি হওয়ার সময়, এটি মূল চরিত্রগুলি পুনরুদ্ধার করে ...

একবার চেষ্টা করে দেখো.


32
এখানে কোনও পরীক্ষামূলক সংস্করণ নেই এবং it 440 ডলার "এটি চেষ্টা করে দেখুন" করার জন্য কিছুটা।
রক স্ট্রিনিয়া


এই পরিষেবাটি কোনও এপিআইয়ের মাধ্যমে উপলব্ধ?
বার্ট

1
আমি এটি পরীক্ষা করেছি, এটি কলামগুলি চিনতে পারে না। আমি একটি ইংরাজির ট্যাবলয়েডের প্রথম পৃষ্ঠাটি স্ক্যান করেছি। পাঠ্যটি কাগজে তিনটি কলামে বিভক্ত করা হয়েছিল, তবে এই প্লাগইনটি বাক্যগুলিকে মিশ্রিত করে এটি জিব্বারিত দেখাচ্ছে। ঘোস্টস্ক্রিপ্ট যা নিখরচায় ঠিক একই আউটপুট ছিল।
NoWhereToBeSeen

1
@ রেডহটস্ক্যাবিলিটি: এছাড়াও বিটিডাব্লু, টিইটি সঠিক পরামিতিগুলির সাথে ব্যবহার করা হলে কলমকে চিনতে পারে । তবে আমি এটি ডকুমেন্টেশন পড়তে এবং কীভাবে তা খুঁজে বার করার জন্য উচ্চাকাঙ্ক্ষী জেএস স্ক্রিপ্টারের অনুশীলন হিসাবে রেখেছি ...
কার্ট ফেফেল

29

একটি দক্ষ কমান্ড লাইন সরঞ্জাম, ওপেন সোর্স, কোনও ফি ছাড়াই লিনাক্স এবং উইন্ডো উভয় ক্ষেত্রেই উপলভ্য: কেবল পিডিফোটটেক্সট নামকরণ করা হয়েছে। এই সরঞ্জামটি এক্সপিডিএফ লাইব্রেরির একটি অংশ।

http://en.wikipedia.org/wiki/Pdftotext


4
সাইডেনোটে: -layoutসারণী সংরক্ষণের জন্য স্যুইচটি ব্যবহার করুন , বেশ ভাল কাজ করে।
সেবাস্তিয়ান


12

এখানে আমার পরামর্শ। আপনি যদি পিডিএফ থেকে পাঠ্য আহরণ করতে চান তবে আপনি পিডিএফ ফাইলটি গুগল ডক্সে আমদানি করতে পারবেন, তারপরে এটি আরও বন্ধুত্বপূর্ণ ফর্ম্যাটে যেমন .html, .odf, .rtf, .txt ইত্যাদিতে রফতানি করতে পারেন, ড্রাইভ এপিআই ব্যবহার করে এর সবগুলিই All । এটি নিখরচায় * এবং শক্তিশালী। একবার দেখুন:

https://developers.google.com/drive/v2/references/files/insert https://developers.google.com/drive/v2/references/files/get

এটি একটি বিশ্রামের এপিআই হওয়ায় এটি সমস্ত প্রোগ্রামিং ভাষার সাথে সামঞ্জস্যপূর্ণ। আমি যে লিঙ্কগুলি পোস্ট করেছি সেগুলির জাভা,। নেট, পাইথন, পিএইচপি, রুবি এবং অন্যান্য সহ অনেকগুলি ভাষার কাজের উদাহরণ রয়েছে।

আমি আসা করি এটা সাহায্য করবে.


2
আমি এই বিকল্পটি ব্যবহার করেছি এবং আমি এটির প্রস্তাব দেব না। গুগলের পিডিএফ পাঠ্য নিষ্কাশন অনেক বিকল্পের মতো ভাল নয় (উদাহরণস্বরূপ, অ-ইংরেজির জন্য) এবং এটি খুব খুব স্লোওও।
Björn Lindqvist

10

পিডিএফটেক্সটস্ট্রিম (যা আপনি বলেছিলেন যে আপনি তাকিয়ে ছিলেন) এখন একক থ্রেডেড অ্যাপ্লিকেশনগুলির জন্য বিনামূল্যে । আমার মতে এটির মান অন্যান্য গ্রন্থাগারের তুলনায় অনেক ভাল (উদাহরণস্বরূপ ফঙ্কি এমবেডড ফন্ট ইত্যাদির জন্য)।

বিকল্পভাবে, আপনার অ্যাপাচি পিডিএফক্স , ওপেন সোর্সটি দেখে নেওয়া উচিত।


পিডিএফটেক্সটস্ট্রিম অ্যান্ড্রয়েডে সমর্থিত নয়। এন্ড্রয়েডের জন্য কি এর মতো আরও ভাল লাইব্রেরি উপলব্ধ?
ফয়সাল আহমেদ

@ ফয়সালআহমেদ পিডিএফবক্স সম্পর্কে কি?
রেনাউড

হ্যাঁ পিডিএফবক্স অ্যান্ড্রয়েডেও সমর্থিত নয় .... পিডিএফটেক্সটস্ট্রিম এবং পিডিএফবক্স উভয়ই এমন কিছু বিভক্ত অংশ ব্যবহার করে যা অ্যান্ড্রয়েডে সমর্থিত নয়
ফয়সালআহমেড

আমি এই লাইব্রেরিটি ব্যবহার করছি যা অ্যান্ড্রয়েড github.com/TomRoush/PdfBox-
ফয়সালআহমেড

6

ডকোটিক.পিডিএফ লাইব্রেরি পিডিএফ ফাইল থেকে পাঠ্য সরল পাঠ্য হিসাবে বা প্রতিটি অংশের স্থানাঙ্ক সহ পাঠ্য খণ্ডগুলির সংগ্রহ হিসাবে ব্যবহার করতে ব্যবহৃত হতে পারে ।

ডকোটিক.পিডিএফ পিডিএফ থেকে চিত্রগুলি বের করার জন্যও ব্যবহার করা যেতে পারে ।

দাবি অস্বীকার: আমি বিট মিরাকলের পক্ষে কাজ করি।


6

এখানে একটি মন্তব্যে উইন্ডোজ জিএস ব্যবহার করা হয়েছে। লিনাক্স / ওএসএক্স-তেও নিম্নলিখিত সিনট্যাক্স সহ আমার কিছুটা সাফল্য ছিল:

gs \
 -q \
 -dNODISPLAY \
 -dSAFER \
 -dDELAYBIND \
 -dWRITESYSTEMDICT \
 -dSIMPLE \
 -f ps2ascii.ps \
 "${input}" \
 -dQUIET \
 -c quit

আমি এর dSIMPLEপরিবর্তে ব্যবহার করেছি dCOMPLEXকারণ পরেরগুলি প্রতি লাইনে 1 টি অক্ষর আউটপুট করে।


5

যেহেতু প্রশ্নটি বিশেষত এক্সএমএল হিসাবে পিডিএফ থেকে ডেটা পাওয়ার বিকল্প সরঞ্জাম সম্পর্কিত তাই আপনি বাণিজ্যিক সরঞ্জাম "বাইটস্কাউট পিডিএফ এক্সট্র্যাক্টর এসডিকে" যা সঠিকভাবে করতে সক্ষম তা একবার দেখে নিতে আগ্রহী হতে পারেন: পিএমএল থেকে এক্সএমএল হিসাবে পাঠ্য এক্সট্র্যাক্ট করুন অবস্থান তথ্য (x, y) এবং ফন্ট তথ্য:

উত্স পিডিএফ পাঠ্য:

Products | Units | Price 

আউটপুট এক্সএমএল:

 <row>
 <column>
  <text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="212" y="126" width="47" height="11">Products</text> 
  </column>
 <column>
  <text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="428" y="126" width="27" height="11">Units</text> 
  </column>
 <column>
  <text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="503" y="126" width="26" height="11">Price</text> 
  </column>
</row>

পিএস: অতিরিক্তভাবে এটি পাঠ্যটিকে একটি টেবিল ভিত্তিক কাঠামোতেও ভেঙে দেয়।

প্রকাশ: আমি বাইটস্কাউটের পক্ষে কাজ করি


3

আমি বর্তমানে ("সহজ" সরঞ্জামগুলির তালিকার মধ্যে) যে জিনিসটি ভাবতে পারি তা হ'ল ঘোস্টস্ক্রিপ্ট (বর্তমান সংস্করণটি v.8.71) এবং পোস্টস্ক্রিপ্ট ইউটিলিটি প্রোগ্রাম ps2ascii.ps। ঘোস্টস্ক্রিপ্ট এটিকে তার libউপ-ডিরেক্টরিতে পাঠায়। এটি চেষ্টা করুন (উইন্ডোজে):

gswin32c.exe ^
   -q ^
   -sFONTPATH=c:/windows/fonts ^
   -dNODISPLAY ^
   -dSAFER ^
   -dDELAYBIND ^
   -dWRITESYSTEMDICT ^
   -dCOMPLEX ^
   -f ps2ascii.ps ^
   -dFirstPage=3 ^
   -dLastPage=7 ^
   input.pdf ^
   -dQUIET ^
   -c quit

এই কমান্ডটি 3-7 এর পৃষ্ঠাগুলি প্রসেস করে input.pdfps2ascii.ps"অদ্ভুত" সংখ্যা এবং অতিরিক্ত ইনফোগুলি কী বোঝায় তা দেখার জন্য ফাইলটিতেই মন্তব্যগুলি পড়ুন ( তারা স্ট্রিং, অবস্থান, প্রস্থ, রঙ, ছবি, আয়তক্ষেত্র, ফন্ট এবং পৃষ্ঠা বিরতি নির্দেশ করে ... )। একটি "সাধারণ" পাঠ্য আউটপুট পেতে, -dCOMPLEXঅংশটি দ্বারা প্রতিস্থাপন করুন -dSIMPLE


2
আপনি অনুমান হিসাবে, এটি শুধুমাত্র ASCII পরীক্ষা আউটপুট করে। ফ্রি থাকাকালীন, আপনি ইংরাজী ব্যতীত অন্য ভাষাগুলির সাথে সফ্টওয়্যারটির জন্য দুর্দান্ত পরিকল্পনা নয়।
ইউজারএক্স

3
@ ইউজারেক্স: আপনি যেমন অনুমান করতে পারেন এটি নিখরচায় সফ্টওয়্যার: অতএব উত্স কোড উপলব্ধ। নন-এসসিআইআই-র সহায়তার জন্য প্রসারিত করা সম্ভব ...
কার্ট ফেফেল

@ ইউজারেক্স: আজ আমি পিডিএফলাইব.কম থেকে টেক্সট এক্সট্রাকশন টুলকিট 'টিইটি' আবিষ্কার করেছি। আমার অন্য উত্তর দেখুন।
কার্ট ফেফিল

ঘোস্টস্ক্রিপ্ট 9.07 এর PS2ascii আমার ওপেনবিএসডি সিস্টেমে খুব সুন্দরভাবে কাজ করেছে। আমি সবেমাত্র 526-পৃষ্ঠার পিডিএফকে সরল পাঠ্যে রূপান্তর করেছি। এখন আমি নোটগুলির জন্য সহজেই গ্রেপ করতে এবং পাঠাতে পারি। আমি সহজ কমান্ড ব্যবহার করেছি ps2ascii book.pdf notes.txt। যদি আপনার দস্তাবেজটি মূলত ASCII হয় তবে আপনার ভাগ্য ভাল।
ক্লিন্ট পাচল

3

আমি জানি যে এই বিষয়টি বেশ পুরানো, তবে এই প্রয়োজনীয়তা এখনও জীবিত। আমি অনেকগুলি নথি, ফোরাম এবং স্ক্রিপ্ট পড়েছি এবং একটি নতুন অগ্রণী তৈরি করেছি যা সংকুচিত এবং সঙ্কুচিত পিডিএফ সমর্থন করে:

https://gist.github.com/smalot/6183152

কিছু ক্ষেত্রে, সুরক্ষার কারণে কমান্ড লাইন নিষিদ্ধ। সুতরাং একটি নেটিভ পিএইচপি ক্লাস অনেক প্রয়োজন মাপসই করতে পারে।

আশা করি এটি সদা সাহায্য করবে


2

চিত্র আহরণের জন্য, পিডিফাইমেজগুলি লিনাক্স বা উইন্ডোজ (উইন 32) এর জন্য একটি ফ্রি কমান্ড লাইন সরঞ্জাম:

pdfimages: একটি পোর্টেবল ডকুমেন্ট ফর্ম্যাট (পিডিএফ) ফাইল থেকে চিত্রগুলি বের করুন এবং সংরক্ষণ করুন


2

অ্যাপাচি পিডিএফবক্সে এই বৈশিষ্ট্য রয়েছে - পাঠ্যের অংশটি এতে বর্ণিত হয়েছে:

http://pdfbox.apache.org/apidocs/org/apache/pdfbox/util/PDFTextStripper.html

উদাহরণ বাস্তবায়নের জন্য https://github.com/WolfgangFahl/pdfindexer দেখুন er

টেস্টকেস TestPdfIndexer.testExtracting দেখায় যে এটি কীভাবে কাজ করে


1

কুইকপিডিএফ একটি যুক্তিসঙ্গত গ্রন্থাগার বলে মনে হচ্ছে যা যুক্তিসঙ্গত দামের জন্য আপনার যা করা উচিত তা করা উচিত।

http://www.quickpdflibrary.com/ - তাদের একটি 30 দিনের ট্রায়াল রয়েছে।


0

আমার ম্যাকিনটোস সিস্টেমে আমি দেখতে পাচ্ছি যে "অ্যাডোব রিডার" যুক্তিসঙ্গতভাবে ভাল কাজ করে। আমি আমার ডেস্কটপে একটি উপন্যাস তৈরি করেছি যা "অ্যাডোব রিডার.এপ" নির্দেশ করে, এবং আমি যা করি তা হ'ল উপসর্গের উপর একটি পিডিএফ-ফাইল হ'ল এটি এডোব রিডারে সক্রিয় নথি এবং তারপর ফাইল-মেনু থেকে, আমি "পাঠ্য হিসাবে সংরক্ষণ করুন ..." চয়ন করি, এটির একটি নাম দিন এবং এটি কোথায় সংরক্ষণ করবেন, "সংরক্ষণ করুন" এ ক্লিক করুন এবং আমার কাজ শেষ হয়েছে।


5
ওপি একটি পিডিএফ থেকে প্রোগ্রামাগ্রামিকভাবে পাঠ্য আহরণের জন্য একটি সমাধান খুঁজছিল । আপনার উত্তর পরিবর্তে একটি ম্যানুয়াল রুটিন প্রস্তাব।
mkl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.