এইচটিএমএল ফাইলগুলিকে পিডিএফে রূপান্তর করা [বন্ধ]


128

আমাকে একটি এক্সিজিটিং (এক্স) এইচটিএমএল-ডকুমেন্ট থেকে স্বয়ংক্রিয়ভাবে একটি পিডিএফ ফাইল তৈরি করতে হবে। ইনপুট ফাইলগুলি (প্রতিবেদনগুলি) বরং একটি সাধারণ, টেবিল-ভিত্তিক লেআউট ব্যবহার করে, তাই সত্যই অভিনব জাভাস্ক্রিপ্ট / সিএসএস স্টাফের জন্য সমর্থনটির প্রয়োজন হয় না।

যেহেতু আমি জাভাতে কাজ করতে অভ্যস্ত, এমন একটি সমাধান যা জাভা-প্রকল্পে সহজেই ব্যবহার করা যায় সেগুলি পছন্দনীয়। যদিও এটি শুধুমাত্র উইন্ডোজ সিস্টেমে কাজ করা প্রয়োজন।

এটি করার একটি উপায় যা সম্ভবপর, তবে ভাল মানের আউটপুট তৈরি করে না (কমপক্ষে বাক্সের বাইরে) পিডিএফ ফাইলগুলি তৈরি করতে CSS2XSLFO , এবং অ্যাপাচি FOP ব্যবহার করছে । আমার যে সমস্যার মুখোমুখি হয়েছিল তা হ'ল সিএসএস-অ্যাট্রিবিউটগুলি সুন্দরভাবে রূপান্তরিত হওয়ার সময়, টেবিলের বিন্যাসটি টেবিলের ঘর থেকে প্রবাহিত হয়ে টেবিল-বিন্যাসটি বেশ গণ্ডগোল করে।

জেকেক্স, গেকো রেন্ডারিং ইঞ্জিনটি ব্যবহারের জন্য একটি জাভা-এপিআইয়ের দিকেও আমি তাত্ক্ষণিকভাবে নজর দিয়েছি।

ইন্টারনেট এক্সপ্লোরার রেন্ডারিং ইঞ্জিন থেকে রেন্ডার করা পৃষ্ঠাটি ধরার এবং এটি একটি পিডিএফ-প্রিন্টার সরঞ্জামটিতে স্বয়ংক্রিয়ভাবে প্রেরণের কোনও উপায় আছে কি? উইন্ডোজগুলিতে ওএলই প্রোগ্রামিংয়ের আমার কোনও অভিজ্ঞতা নেই, সুতরাং কী কী সম্ভব এবং কী তা আমার কোনও ধারণা নেই।

তোমার কি কোন ধারনা আছে?


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

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

আমি এইচটিএমএল থেকে পিডিএফ তৈরির সাথে আটকে আছি যা সিরিলিক অক্ষর রয়েছে। বাদ দেওয়া সিরিয়ালিক অক্ষর বাদে সবকিছু ঠিক আছে। এই ধরণের সমস্যা আছে কেউ?
ক্রিস্তিজান ইলিভ

@ ক্রিসিলিভ: আমার একই রকম সমস্যা ছিল এবং আমি যতদূর মনে করতে পারি, ব্যবহৃত ফন্টটি খুব গুরুত্বপূর্ণ ছিল। বেশিরভাগ ফন্টগুলি সম্পূর্ণ ইউটিএফ 8 অক্ষর সমর্থন করে না, তবে নিম্নলিখিতগুলির উচিত: 'ফন্ট-পরিবার: আরিয়াল ইউনিকোড এমএস;' (Css)। এছাড়াও সঠিক এনকোডিংটি ব্যবহার করার বিষয়টি নিশ্চিত করুন (আমি সর্বদা ইউটিএফ -8 ব্যবহার করার পরামর্শ দেব)
পানশ্যাচ

উত্তর:


73

ফ্লাইং সসারের এক্সএইচটিএমএল রেন্ডারার প্রকল্পের PDF- এ এক্সএইচটিএমএল outputting জন্য সমর্থন আছে। এখানে একটি উদাহরণ দেখুন ।


20
উড়ন্ত সসারের সাথে আসল সমস্যাটি হ'ল এটি পিডিএফ রেন্ডার করতে পুনরাবৃত্তি ব্যবহার করে, এটি একটি এজিপিএল ভি 3 লাইসেন্সযুক্ত লাইব
ডেভিড হাফম্যান

11
ফ্লাইং সসার দ্বারা ব্যবহৃত পুনরুক্তিটির সংস্করণ ২.০.৮ যা এলজিপিএল এর অধীনে উপলব্ধ ছিল। কেবলমাত্র 5 বা তদূর্ধ্ব সংস্করণগুলি আরও সীমাবদ্ধ লাইসেন্সে রয়েছে। stackoverflow.com/questions/2692000/…
গ্যারি

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

3
@ লেটারালফ্র্যাকাল যতদূর আমি বলতে পারি, ফ্লাইং সসার 9.0.8 (সর্বশেষতম সংস্করণ, আমি মনে করি) আইটেক্সট ২.১..7 ব্যবহার করে, যা অনুমতিপ্রাপ্ত লাইসেন্স --- এলজিপিএল সহ শেষ আইটেক্সট সংস্করণ is mvnrepository.com/artifact/org.xhtmlrenderer/flying-saucer-pdf/…
জোনাথন ক্রসমার

2
পুনঃটুইট পিডিএফ-এর জন্য দুটি ফ্লাইংসসার প্যাকেজ রয়েছে, একটি আইটেক্সট ভি 2 এর জন্য এবং একটি আইটেক্সট ভি 5 এর জন্য। ধরে নিচ্ছি উভয়ের সমান কার্যকারিতা রয়েছে; এজিপিএল ঝুঁকি পাশ থেকে পদক্ষেপ করা যেতে পারে।
পার্সেন্টাল ফ্র্যাক্টাল

49

আপনি কি WKHTMLTOPDF চেষ্টা করেছেন ?

এটি একটি সাধারণ শেল ইউটিলিটি, ওয়েবকিটের একটি মুক্ত উত্স বাস্তবায়ন। দুটোই ফ্রি।

আমরা এখানে একটি ছোট টিউটোরিয়াল সেট করেছি

সম্পাদনা (2017):

যদি আজ এটি কিছু নির্মাণ করা হত তবে আমি আর সেই পথে যাব না।
তবে পরিবর্তে http://pdfkit.org/ ব্যবহার করবে।
সম্ভবত ব্রাউজারে চলার জন্য এটির সমস্ত নোডেজ নির্ভরতা একে একে মুছে ফেলা।


16
সরাসরি এইচটিএমএল-পৃষ্ঠা-থেকে-পিডিএফ রূপান্তরকরণের জন্য, আমি যা দেখেছি, নিখরচায় বা ব্যবসায়িক যে কোনও কিছু থেকে এটি ভাল better
এমজিওউইন

এটি কোনও নন ম্যাক ওএসে কাজ করে?
ইরান মেডান

1
@ ইরান, আমরা এটি লিনাক্সে ব্যবহার করি। আমি মনে করি উইন্ডোজ সংস্করণটিও রয়েছে
মাইকে

1
@ ম্যাক হ্যাঁ, উইন্ডোজ সংস্করণও রয়েছে।
ভিসিকারি

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

44

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

এইচটিএমএল থেকে পিডিএফ তৈরি করা এরকম কিছু হয়:

Document doc = new Document(PageSize.A4);
PdfWriter.getInstance(doc, out);
doc.open();
HTMLWorker hw = new HTMLWorker(doc);
hw.parse(new StringReader(html));
doc.close();

9
এটি এজিপিএল, জিপিএল থেকেও খারাপ বলে মনে হচ্ছে, আপনি কেবল পিডিএফ পরিবেশন করলেও ওপেন সোর্স হওয়া দরকার এবং আইটিেক্সট সার্ভার সাইড হয়।
ইরান মেডান

10
@ ইরান, কেবল সর্বশেষ নন-এজিপিএল সংস্করণটি ব্যবহার করুন (com.lowagie: itext: মাভেনে 2.1.7)।
এখনি

1
এইচটিএমএল ওয়ার্কার এক্সটিএমএল ওয়ার্কারের পক্ষে আইটেক্সটের নতুন সংস্করণগুলিতে অবনতিযুক্ত; তবে সিএসএস সমর্থন উভয় ক্ষেত্রেই দুর্বল (দেখুন ডেমো.ইয়েটেক্সটসপ্পোর্টস / এক্সএমএল ওয়ার্কার / সাইটেক্সট / ড ) এবং আমার প্রয়োজনের জন্য পর্যাপ্ত ছিল না। বিপরীতে ফ্লাইং সসারটি নিখুঁত ছিল।
পিনো

আপনি এলজিপিএল সংস্করণ ব্যবহার করতে পারেন যা পাওয়া যাবে github.com/albfernandez/itext2
ভ্লাদিমির রোজকভ

4

আপনি তহবিল থেকে থাকে, তাহলে কিছুই beats প্রিন্স এক্সএমএল যেমন এই ভিডিওটি শো


1
আপনি যদি প্রিন্সের জন্য কোনও সস্তা বিকল্প খুঁজছেন তবে ডকরাপটর.কম চেষ্টা করুন। এটি ইঞ্জিন হিসাবে প্রিন্স ব্যবহার করে।
জুলি

এবং আপনি যদি আরও সস্তা হতে চান তবে আরও বিকল্পের সাথে htm2pdf.co.uk ব্যবহার করে দেখুন - এটি ওয়েবকিট এবং ব্যবহারকারীদের সত্যিকারের
WYSIWIG

3

ইন্টারনেট এক্সপ্লোরার রেন্ডারিং ইঞ্জিন থেকে রেন্ডার করা পৃষ্ঠাটি ধরার এবং এটি একটি পিডিএফ-প্রিন্টার সরঞ্জামটিতে স্বয়ংক্রিয়ভাবে প্রেরণের কোনও উপায় আছে কি?

এটিই অ্যাক্টিভপিডিএফ কীভাবে কাজ করে, যা ভাল মানে আপনি কী পাবেন তা আপনি জানেন এবং এটিতে যুক্তিসঙ্গত স্টাইলিং সমর্থন রয়েছে has

এটি আমার পাওয়া কয়েকটি প্যাকেজগুলির মধ্যে একটি (কয়েক বছর আগের দিকে তাকানোর পরে) যা আসলে বিভিন্ন পৃষ্ঠা-ব্রেক ব্রেক সিএসএস কমান্ডকে সমর্থন করে।


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

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


সহায়ক উত্তরের জন্য ধন্যবাদ। আমি মনে করি না যে দামের কারণে অ্যাক্টিভপিডিএফ সত্যিই উপযুক্ত, তবে এরকম কিছু উপস্থিত থাকা ভাল to
panschk

গ্রাবিজিটির এইচটিএমএল পিডিএফ এপিআইএল : গ্র্যাজ.ইট / এইচটিএমএল- টুপিডিএফ- আইপিএইপিএক্স একইভাবে কাজ করে এটি ব্রাউজারে এইচটিএমএলকে রেন্ডার করে এবং তারপরে পিডিএফ তৈরি করে এটি নিশ্চিত করে যে আরও অনেকগুলি পিডিএফ রূপান্তর আছে।
ব্যবহারকারী 1474090

2

আপনি একটি এক্সটেনশন সহ একটি হেডলেস ফায়ারফক্স ব্যবহার করতে পারেন। দৌড়াতে এটি বেশ বিরক্তিকর তবে এটি ভাল ফলাফল দেয়।

পরীক্ষা করে দেখুন এই উত্তরটি আরও তথ্যের জন্য।


যদি কোনও ফ্লাইয়ের পৃষ্ঠাগুলিকে সমান্তরালে পিডিএফ তে রূপান্তর করতে হয় তবে খুব স্কেলযোগ্য সমাধানের মতো শব্দ হয় না। কয়েকটি অনুরোধ যদি এফএফ ব্যবহার করে রূপান্তরের ফলে আসে তবে আপনার সার্ভারটি কয়েকটি রূপান্তরিত পৃষ্ঠাগুলি পরিবেশন করতে কয়েক জিআইজি মেমরি হারিয়ে ফেলবে। এটি আপনার সার্ভারকে একটি ডসের জন্য খুলবে।
এমপি।

আরও ভাল তবে অনুরূপ: github.com/ariya/phantomjs/wiki/Screen-Capture ( we-love-php.blogspot.com/2012/12/… অনুসারে পিডিএফের আসল পাঠ্য রয়েছে, রাস্টারাইজড নয়)
এনএফজি

0

আপনি যদি আপনার প্রশ্নের পাশের বারটি দেখে থাকেন তবে আপনি অনেকগুলি সম্পর্কিত প্রশ্ন দেখতে পাবেন ...

আপনার প্রসঙ্গে, সহজ পদ্ধতি হ'ল পিডিএফক্রিটরের মতো পিডিএফ প্রিন্ট ড্রাইভার ইনস্টল করা এবং এই আউটপুটটিতে কেবল পৃষ্ঠাটি মুদ্রণ করা।


এটি কিভাবে জাভা সমাধান? এটি একটি উইন্ডো প্রিন্ট ড্রাইভার।
ধূসর

ওপি স্পষ্টভাবে উইন্ডোজ উল্লেখ করেছে। এবং আমি মনে করি অন্যান্য সিস্টেমে একই রকম ড্রাইভার রয়েছে। ওপি কেবল
জাভাটিকে

0

অ্যামিউনি ওয়েবকিটপিডিএফটি উইন্ডোজ-কেবলমাত্র সমাধানের জন্য জেএনআইয়ের সাথে ব্যবহার করা যেতে পারে। এটি বাণিজ্যিক ও অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে পিডিএফ / এক্সএএমএল রূপান্তর লাইব্রেরিতে একটি এইচটিএমএল।

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

সাধারণ অস্বীকৃতি প্রযোজ্য

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