পাইথনে পিডিএফ ফাইলগুলি কীভাবে তৈরি করবেন [বন্ধ]


156

আমি এমন একটি প্রকল্পে কাজ করছি যা ব্যবহারকারীর কাছ থেকে কিছু চিত্র নেবে এবং তারপরে একটি পিডিএফ ফাইল তৈরি করবে যাতে এই সমস্ত চিত্র থাকে।

পাইথনে এটি করার কোনও উপায় বা কোনও সরঞ্জাম আছে? উদাহরণস্বরূপ ইমেজ 1 + চিত্র 2 + চিত্র 3 -> পিডিএফ ফাইল থেকে একটি পিডিএফ ফাইল (বা eps, PS) তৈরি করতে চান?


47
সন্দেহ হলে, py;-) দ্বারা আপনি যা যা অনুসন্ধান করছেন তা উপস্থাপন করুন
এমজিভি

8
আরেকটি তাই সার্চ কৌতুক: [language or tag] some_keyword হিসাবে [python] PDFবা[python] PDF image
mjv

: এখানে আসার matplolib ব্যবহার করছেন তাদের জন্য stackoverflow.com/questions/17788685/...
ডেভিড পার্ক

আমি এই প্রশ্নটিকে অগ্রাহ্য করেছি কারণ গ্রহণযোগ্য উত্তরটি ভুল উত্তর ....
নৌকা কোডার

উত্তর:


39

আমি পিপিডিএফ পরামর্শ দিচ্ছি । এটি সত্যিই দুর্দান্ত কাজ করে। আমি কিছুক্ষণ আগে একটি ব্লগ পোস্টও লিখেছিলাম, আপনি এটি এখানে খুঁজে পেতে পারেন ।


7
পাইপডিএফ 2 এর একটি বর্তমান কাঁটাচামচ এখানে অবস্থিত ।
এডমন্ড বারনেট

98
মনে রাখবেন যে পিআইডিডিএফ কেবল পিডিএফ / কাট / ইত্যাদি কাটবে existing বিদ্যমান পিডিএফ সামগ্রী - আপনি কোনও পিডিএফ-তে পাঠ্য বা চিত্র যুক্ত করতে পারবেন না।
ড্রেভিকো

3
পিপিপিএফ 2 নতুন পিডিএফ ডকুমেন্ট তৈরি করার জন্য নয়, 4 সিএস
মিশেলেক

160

এই পৃষ্ঠায় ইঙ্গিতগুলি অনুসরণ করার পরে আমার অভিজ্ঞতা এখানে।

  1. পিপিপিএফ ফাইলগুলিতে চিত্রগুলি এম্বেড করতে পারে না। এটি কেবল বিভক্ত হয়ে একত্রী হতে পারে। (উত্স: এর ডকুমেন্টেশন পৃষ্ঠার মাধ্যমে Ctrl + F ) কোনটি দুর্দান্ত, তবে আপনার যদি ইতিমধ্যে পিডিএফটিতে এমবেড করা চিত্র না থাকে তবে তা নয় not

  2. পাইপডিএফ 2 এর পিআইপিডিএফ শীর্ষে কোনও অতিরিক্ত ডকুমেন্টেশন আছে বলে মনে হয় না।

  3. রিপোর্টল্যাব খুব বিস্তৃত। ( ইউজারগাইড ) তবে, কিছুটা সিআরটিএল + এফ এবং এর উত্সের মাধ্যমে গ্রেপিংয়ের মাধ্যমে, আমি এটি পেয়েছি:

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

রিপোর্টল্যাব দুর্দান্ত, তবে এর ডকুমেন্টেশনে উপরোক্তদের মতো হেলোরওয়ার্ডগুলি অন্তর্ভুক্ত করে উপকার পাবেন।


13
আমি অবশ্যই বলব যে আমি যে পিডিএফ প্রজন্মের চেষ্টা করেছি তার জন্য রিপোর্টল্যাবই সেরা, অবশ্যই সবচেয়ে সম্পূর্ণ। তবে এটিও কিছুটা জটিল। blog.pythonlibrary.org/2010/03/08/… blog.pythonlibrary.org/2010/09/21/…
জোসে

1
আমি ঠিক তাই খুঁজছিলাম
মার্টেন

@ জোসালভাটিয়েররা ধন্যবাদ জোসে ... এটি সত্যিই সহজ। ব্লগ লিঙ্কের জন্য ধন্যবাদ।
অরিন্দম রায়চৌধুরী

33

আমি পিডিএফকিটকে পরামর্শ দিই । (ইনস্টলেশন গাইড )

এটি এইচটিএমএল ফাইল থেকে পিডিএফ তৈরি করে। আমি আমার পাইথন পিরামিড স্ট্যাক থেকে 2 টি ধাপে পিডিএফ তৈরি করতে এটি বেছে নিয়েছি:

  1. আপনার জন্য পিডিএফ ডকুমেন্টের জন্য স্টাইল এবং মার্কআপের জন্য মেকো টেম্পলেটগুলির সাথে সার্ভার-সাইড রেন্ডারিং
  2. নির্বাহ pdfkit.from_string(...)পরামিতি হিসাবে রেন্ডার এইচটিএমএল পাস করে পদ্ধতি

আপনি স্টাইলিং এবং ইমেজ সমর্থিত একটি পিডিএফ ডকুমেন্ট পাবেন।

আপনি নিম্নলিখিত হিসাবে এটি ইনস্টল করতে পারেন:

  • পাইপ ব্যবহার

    pip install pdfkit

  • আপনাকে wkhtmltopdf ( উবুন্টুতে ) ইনস্টল করতে হবে ।

14

আপনি এটি (পাইথন-পিডিএফ-প্রজন্মের জন্য) চেষ্টা করতে পারেন বা আপনি পিকিউটি চেষ্টা করতে পারেন , যার পিডিএফ প্রিন্টিংয়ের জন্য সমর্থন রয়েছে।

পিডিএফ জেনারেশনের জন্য পাইথন

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

Http://www.devshed.com/c/a/Python/Python-for-PDF- জেনারেশন/# whooCFCPh3TAks368.99 এ আরও পড়ুন


লিঙ্কটি আর কাজ করে না।
রবার্ট কোচ

9

এখানে একটি সমাধান রয়েছে যা কেবলমাত্র মানক প্যাকেজগুলির সাথে কাজ করে। matplotlibপিডিএফ এ পরিসংখ্যানগুলি সংরক্ষণ করার জন্য একটি পিডিএফ ব্যাকএন্ড রয়েছে। আপনি সাবপ্লট দিয়ে একটি চিত্র তৈরি করতে পারেন, যেখানে প্রতিটি সাবপ্লট আপনার চিত্রের একটি। আপনার চিত্রের সাথে গোলযোগ করার পূর্ণ স্বাধীনতা আছে: শিরোনাম যুক্ত করা, অবস্থানের সাথে খেলুন ইত্যাদি your একবার আপনার চিত্র শেষ হয়ে গেলে পিডিএফে সংরক্ষণ করুন। প্রতিটি কল savefigপিডিএফ এর অন্য পৃষ্ঠা তৈরি করবে।

পৃষ্ঠার 1 এবং পৃষ্ঠায় 2 পৃষ্ঠার পাশাপাশি প্লট 2 চিত্রের নীচে উদাহরণ।

from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
from scipy.misc import imread
import os
import numpy as np

files = [ "Column0_Line16.jpg", "Column0_Line47.jpg" ]
def plotImage(f):
    folder = "C:/temp/"
    im = imread(os.path.join(folder, f)).astype(np.float32) / 255
    plt.imshow(im)
    a = plt.gca()
    a.get_xaxis().set_visible(False) # We don't need axis ticks
    a.get_yaxis().set_visible(False)

pp = PdfPages("c:/temp/page1.pdf")
plt.subplot(121)
plotImage(files[0])
plt.subplot(122)
plotImage(files[1])
pp.savefig(plt.gcf()) # This generates page 1
pp.savefig(plt.gcf()) # This generates page 2
pp.close()

আমার পরীক্ষায় কোডটি 2 টি চিত্র সহ একক পৃষ্ঠা উত্পন্ন করে
নির্মাণকারী


7

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


1
বাহ, Qt আশ্চর্যজনক দেখাচ্ছে। তারা বলে যে তারা 15 প্লাটফর্ম সমর্থন করে, ইনক। উইন্ডোজ, ম্যাক ওএস এক্স, লিনাক্স, অ্যান্ড্রয়েড, আইওএস, উইন্ডোজ আরটি প্লাস এই রিয়েল-টাইম অপারেটিং সিস্টেম- সংহততা কিউএনএক্স ভিএক্স ওয়ার্কস qt.io/qt- ফ্রেমওয়ার্ক । আর, যেহেতু আমি একটি পাইথন ফ্যান, আমি মত "PyQt কিউটি এবং পাইথন সব সুবিধার সম্মিলন। প্রোগ্রামার সব কিউটি শক্তির আছে, কিন্তু পাইথন সরলতা সঙ্গে এটি কাজে লাগান করতে সক্ষম হয়।" Riverbankcomputing.co.uk / সফ্টওয়্যার / পাইক্ট / পরিচয়
অ্যানি দ্য অ্যাজিল

7

আমি বিশ্বাস করি যে ম্যাটপ্ল্লোলিবের গ্রাফিক্স, পাঠ্য এবং অন্যান্য বস্তুগুলিকে পিডিএফ নথিতে সিরিয়ালাইজ করার ক্ষমতা রয়েছে।


হ্যা, তুমি পারো. এই উত্তরের উত্তরটি কীভাবে এটি করা যায় তার কয়েকটি ভাল লিঙ্ক রয়েছে।
ড্রেভিকো

6

আমি পিডিএফ ফাইল তৈরি করতে rst2pdf ব্যবহার করি , যেহেতু আমি HTML এর চেয়ে আরএসটির সাথে বেশি পরিচিত with এটি প্রায় কোনও ধরণের রাস্টার বা ভেক্টর চিত্র এম্বেডিং সমর্থন করে।

এটির রিপোর্টালব দরকার , তবে আমি দেখতে পেলাম যে রিপোর্টালব ব্যবহারের জন্য এতটা সোজা এগিয়ে নেই (কমপক্ষে আমার জন্য)।


6

fpdf পাইথন (খুব)। এবং প্রায়শই ব্যবহৃত হয়। পাইপিআই / পাইপ অনুসন্ধান দেখুন। তবে সম্ভবত এটির নাম পরিবর্তন করে পিপিপিডিএফ থেকে এফপিডিএফ করা হয়েছিল। বৈশিষ্ট্যগুলি থেকে: পিএনজি, জিআইএফ এবং জেপিজি সমর্থন (স্বচ্ছতা এবং আলফা চ্যানেল সহ)


1
আপনার উত্তরটি অস্পষ্ট, তবে থিয়েরের অবশ্যই পিএফপিডিএফ pfoject pyfpdf.readthedocs.io/en/latest
Wojciech Kaczmarek

নামকরণের সমস্ত বিভ্রান্তি একটি সত্যই দুঃখজনক। এই উত্তর এবং @WojciechKaczmarek এর মন্তব্য সত্যিই আরও উন্নতি এবং মনোযোগ প্রাপ্য। পাইএফপিডিএফ হ'ল মূলত পিএইচপি-তে লিখিত প্রায়শই ব্যবহৃত পিডিএফ লাইব্রেরির একটি অজগর বন্দর।
আইডিয়াগ্রাম


3

এটি আপনার ইমেজ ফাইলগুলি কী ফর্ম্যাটে রয়েছে তার উপর নির্ভর করে, তবে এখানে কাজ করে এমন একটি প্রকল্পের জন্য আমি রিমোটসেন্সিংআরগ্রাফিক থেকে লিবিটিআইএফএফ- তে টিফ 2 পিডিএফ সরঞ্জামটি ব্যবহার করেছি । মূলত স্রেফ টিফ 2 পিডিএফ.এক্সিকে কল করার জন্য আমার সাবস্ক্রাইস ব্যবহার করা হয়েছিল যাতে আমার যে ধরণের ঝুড়ি ছিল তা পড়তে এবং আমি যে ধরণের পিডিএফ চেয়েছিলাম তা আউটপুট দেয়। যদি সেগুলি টিফস না হয় তবে আপনি সম্ভবত পিআইএল ব্যবহার করে সেগুলি টিফসে রূপান্তর করতে পারবেন, বা উপরে বর্ণিত রিপোর্টল্যাবের মতো আপনার চিত্রের ধরণের (বা চিত্রগুলি বিচিত্র হবে যদি আরও জেনেরিক) আরও নির্দিষ্ট একটি সরঞ্জাম পেতে পারেন।


3

fpdf আমার জন্য ভাল কাজ করে। রিপোর্টল্যাব থেকে অনেক সহজ এবং সত্যই বিনামূল্যে। ইউটিএফ -8 নিয়ে কাজ করে।


2
লিঙ্ক / বর্ণনা: fpdf.org এফপিডিএফ একটি পিএইচপি ক্লাস যা খাঁটি পিএইচপি দিয়ে পিডিএফ ফাইল তৈরি করতে দেয়, এটি পিডিএফ লাইব্রেরি ব্যবহার না করে বলা হয়। এফপিডিএফ থেকে এফ হ'ল ফ্রি: আপনি যে কোনও ধরণের ব্যবহারের জন্য এটি ব্যবহার করতে পারেন এবং এটি আপনার প্রয়োজন অনুসারে পরিবর্তন করতে পারেন। এফপিডিএফের অন্যান্য সুবিধা রয়েছে: উচ্চ স্তরের ফাংশন। এখানে এর প্রধান বৈশিষ্ট্যগুলির একটি তালিকা রয়েছে: পরিমাপের ইউনিট, পৃষ্ঠা ফর্ম্যাট এবং মার্জিনের পছন্দ, পৃষ্ঠা শিরোনাম এবং পাদচরণ পরিচালনা, স্বয়ংক্রিয় পৃষ্ঠা বিরতি, স্বয়ংক্রিয় লাইন ব্রেক এবং পাঠ্য সমর্থনযোগ্য, চিত্র সমর্থন (জেপিইজি, পিএনজি এবং জিআইএফ), রঙ, লিঙ্কগুলি, ট্রুটাইপ, টাইপ 1 এবং এনকোডিং সমর্থন, পৃষ্ঠা সংক্ষেপণ
অ্যানি দ্য অ্যাজিল

12
প্রশ্নটি বিবেচনা করে খুব প্রাসঙ্গিক নয় পাইথন সম্পর্কিত ছিল, পিএইচপি নয়
কিংআরডিকাল

1
কেন এই সর্বনাশ? অজগর জন্য fpdf উপলব্ধ। পিপ ইনস্টল fpdf কাজ করে
ব্যবহারকারী 1981924

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

3

রিনোহাইটেপ পিডিএফ, পিএনজি এবং জেপিইজি চিত্রগুলি (স্থানীয়ভাবে) এবং অন্যান্য বিটম্যাপ ফর্ম্যাটগুলি (যখন বালিশ ইনস্টল করা থাকে) এম্বেডিং সমর্থন করে।

(সম্পূর্ণ প্রকাশ: আমি রিনোহাইটাইপের লেখক)


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

3

আপনি যদি ল্যাটেক্সের সাথে পরিচিত হন তবে আপনি পাইলেটেক্স বিবেচনা করতে চাইতে পারেন

পাইলেটেক্সের অন্যতম সুবিধা হ'ল চিত্রের গুণমান নিয়ন্ত্রণ করা সহজ। আপনার পিডিএফের চিত্রগুলি মূল চিত্রগুলির মতো একই মানের হবে। রিপোর্টলব ব্যবহার করার সময়, আমি অভিজ্ঞতা পেয়েছি যে চিত্রগুলি স্বয়ংক্রিয়ভাবে সংকুচিত হয়েছিল এবং চিত্রের গুণমান হ্রাস পেয়েছে।

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

একটি একক চিত্রের সাথে পিডিএফ তৈরির উদাহরণ কোড:

from pylatex import Document, Figure

doc = Document(documentclass="article")
with doc.create(Figure(position='p')) as fig:
fig.add_image('Lenna.png')

doc.generate_pdf('test', compiler='latexmk', compiler_args=["-pdf", "-pdflatex=pdflatex"], clean_tex=True)

পাইলেটেক্স (পিপ ইনস্টল পাইলেটেক্স) ইনস্টল করার পাশাপাশি আপনার ল্যাটেক্স ইনস্টল করতে হবে। উবুন্টু এবং অন্যান্য ডেবিয়ান সিস্টেমের জন্য আপনি চালাতে পারেন sudo apt-get install texlive-full। আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আমি মিক্সেক্সের প্রস্তাব দেব

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