سؤال

أبحث عن طريقة سريعة وموثوقة لقراءة / تحليل ملفات PDF الكبيرة في Ruby (على Linux و OSX).

حتى الآن لقد وجدت القديم وبسيط مجموعة أدوات PDF.pdftotext.- الكتابة) و قارئ PDF, ، والتي لم تكن قادرة على قراءة معظم ملفاتي. على الرغم من أن المكتبتين يوفران بالضبط الوظيفة التي كنت أبحث عنها.

سؤالي: هل فاتني شيئا؟ هل هناك أداة أكثر ملاءمة (أسرع وأكثر موثوقية) لحل مشكلتي؟

هل كانت مفيدة؟

المحلول

قد تجد Docsplit. مفيد:

Docsplit هو أداة مساعدة سطر الأوامر ومكتبة روبي لتقسيم المستندات في أجزاء المكونات الخاصة بها: نص عادي Outf-8، صور الصفحة أو الصور المصغرة بأي شكل من الأشكال، ملفات PDF، صفحات واحدة، والبيانات الوصفية المستندية (عنوان، مؤلف، عدد الصفحات ...)

نصائح أخرى

بعد محاولة طرق مختلفة، أنا أستخدم مجموعة أدوات PDF. حاليا. انها قديمة جدا، لكنها سريعة ومستقرة وموثوقة. الى جانب ذلك، لا يحتاج حقا إلى أن تكون جديدة، لأنها تلتف فقط XPDF Commandline Utilities..

يمكنك استخدام JRURY و GAVA PDF مكتبة محلل مثل Apachepdfbox (https://www.ohloh.net/p/pdfbox.). أنظر أيضا http://java-source.net/open-source/pdf-libries..

إليك بعض الخيارات:

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

من هذا الرابط، والبحث في Sourceforge، هناك مرافق سطر الأوامر قد تفعل ما تريد، مثل هذا واحد: http://pdftohtml.sourceforge.net/

اعتمادا على الاحتياجات الخاصة بك وما يبدو أن ملفات PDF، يمكنك إلقاء نظرة على استخدام API ل Google Docs (تحميل ملف PDF ثم قم بتنزيله كنص)، أو يمكنه أيضا تجربة شيء مثل جوارق. وبعد لقد كان لدي الكثير من الحظ تحليل النص النصي مع GORC في الماضي، وكنت عليك فقط أن ترتد إلى قذيفة للقيام بذلك، مثل gocr -i whatever.pdf (أعتقد أنه يعمل مع ملفات PDF).

الجانب السلبي لجميع هذه هي أنهم ليسوا مناورات خالص روبي، ولكن يبدو أن الكثير من مشاريع التعرف الحر الحر جيدة (ومجاني) قد فعلت بهذه الطريقة.

إذا كنت بحاجة فقط إلى الحصول على المحتوى النصي من ملف PDF، فإن Pdftohtml في SourceForge هو فعال. لا يناسب التعامل مع الصور.

هل كان لديك نظرة على compinpdf. مكتبة؟

إنه حل روبي خالص يسمح ببعض عمليات معالجة PDF، مثل استخراج الصفحات، تتراكم صفحة PDF واحدة على ترقيم الصفحة الأخرى، كتابة النص والجداول الأساسية، إلخ ".

فيما يلي مثال لغمض ملف PDF موجود مع شعار. يقوم المثال بقراءة ملف PDF، واستخرج صفحة واحدة لاستخدامها كخطط ويقوم بختم ملف PDF آخر.

require 'combine_pdf'
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf = CombinePDF.load "content_file.pdf"
pdf.pages.each {|page| page << company_logo}
pdf.save "content_with_logo.pdf"

يمكنك أيضا ختم النص أو عدد الصفحات أو الاستخدام:

require 'combine_pdf'

pdf = CombinePDF.load "content_file.pdf"

pdf.number_pages #adds page numbers. you can add formatting and placement options.

pdf.pages.each {|page| page.textbox "One Way To Stamp"}

#you can a shortcut method to stamp pages
pdf.stamp_pages "Another way to stamp"

#you can use the shortcut method for both text and PDF stamps
company_logo = CombinePDF.load("company_logo.pdf").pages[0]
pdf.stamp_pages company_logo

# you can use write simple tables
pdf.pages[0].write_table headers: ['first name', 'surname'], table_data: [['John', 'Doe'], ['Mr.', 'Smith']]

pdf.save "content_with_logo.pdf"

ليس المقصود بالعمليات المعقدة، ولكنه يكمل معظم المكتبات المؤذن من PDF ويسمح لك باستخدام قوالب PDF بدلا من كتابة كل شيء من الصفر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top