এইচটিএমএলে পিডিএফ এম্বেড করার প্রস্তাবিত উপায় কী?
- আইফ্রেম?
- বস্তু?
- বসান?
অ্যাডোব এ সম্পর্কে নিজেকে কী বলে?
আমার ক্ষেত্রে, পিডিএফটি ফ্লাইতে উত্পন্ন হয়, সুতরাং এটি ফ্লাশ করার আগে এটি তৃতীয় পক্ষের সমাধানে আপলোড করা যায় না।
এইচটিএমএলে পিডিএফ এম্বেড করার প্রস্তাবিত উপায় কী?
অ্যাডোব এ সম্পর্কে নিজেকে কী বলে?
আমার ক্ষেত্রে, পিডিএফটি ফ্লাইতে উত্পন্ন হয়, সুতরাং এটি ফ্লাশ করার আগে এটি তৃতীয় পক্ষের সমাধানে আপলোড করা যায় না।
উত্তর:
সম্ভবত সেরা পন্থা হ'ল পিডিএফ.জেএস লাইব্রেরি ব্যবহার করা । এটি কোনও তৃতীয় পক্ষের প্লাগইন ছাড়াই পিডিএফ ডকুমেন্টগুলির জন্য খাঁটি এইচটিএমএল 5 / জাভাস্ক্রিপ্ট রেন্ডারার।
অনলাইন ডেমো: http://mozilla.github.com/pdf.js/web/viewer.html
<object>
: github.com/mozilla/pdf.js/blob/master/example/heelorld/…
এটি তাত্ক্ষণিক, সহজ, বিন্দুতে এবং কোনও তৃতীয় পক্ষের স্ক্রিপ্টের প্রয়োজন নেই:
<embed src="http://example.com/the.pdf" width="500" height="375"
type="application/pdf">
আপডেট (1/2018):
অ্যান্ড্রয়েডের ক্রোম ব্রাউজার আর পিডিএফ এমবেড সমর্থন করে না। গুগল ড্রাইভ পিডিএফ ভিউয়ার ব্যবহার করে আপনি এটি পেতে পারেন
<embed src="https://drive.google.com/viewerng/
viewer?embedded=true&url=http://example.com/the.pdf" width="500" height="375">
type='application/pdf'
কাছে
<object>
ট্যাগ ব্যবহার করা আরও ভাল কারণ এটি ব্রাউজারগুলিতে বিকল্প সামগ্রী প্রদর্শন করতে পারে যা পিডিএফস প্রদর্শন করতে পারে না। এমনকি আপনি যদি <embed>
একটি <object>
ট্যাগ একটি ট্যাগ রাখতে পারেন। রেফ: স্ট্যাকওভারফ্লো
আপনি এই উদ্দেশ্যে গুগল পিডিএফ ভিউয়ার ব্যবহার করতে পারেন। আমি যতদূর জানি এটি কোনও অফিশিয়াল গুগল ফিচার নয় (আমি কি এতে ভুল করছি?) তবে এটি আমার জন্য খুব সুন্দর ও সাবলীলভাবে কাজ করে। আপনাকে আগে পিডিএফ কোথাও আপলোড করতে হবে এবং এর URL টি ব্যবহার করতে হবে:
<iframe src="http://docs.google.com/gview?url=http://example.com/mypdf.pdf&embedded=true" style="width:718px; height:700px;" frameborder="0"></iframe>
গুরুত্বপূর্ণটি হ'ল এটির জন্য কোনও ফ্ল্যাশ প্লেয়ারের প্রয়োজন হয় না, এটি জাভাস্ক্রিপ্ট ব্যবহার করে।
public
, sign-in required
এবং private
। এটি অবশ্যই একটি অফিশিয়াল বৈশিষ্ট্য, গুগল ডক্সে যে কোনও নথির বিবেচনায় embed
বিকল্প রয়েছে।
ক্যোয়ারী স্ট্রিংয়ের কিছু বিকল্প পাস করে ব্রাউজারে পিডিএফ কীভাবে প্রদর্শিত হবে তার আপনার কিছুটা নিয়ন্ত্রণ রয়েছে। আমি এই কাজ করে খুশি ছিলাম, যতক্ষণ না বুঝেছিলাম এটি আইই 8 তে কাজ করে না। :(
এটি ক্রোম 9 এবং ফায়ারফক্স 3.6 এ কাজ করে, তবে আইই 8 তে এটি "আপনার ত্রুটি বার্তাটি এখানে sertোকান, পিডিএফ প্রদর্শিত না হলে" বার্তাটি দেখায়।
যদিও আমি উপরের ব্রাউজারগুলির কোনওরও পুরানো সংস্করণ পরীক্ষা করিনি। তবে কোডটি এখানে যাইহোক যাইহোক আছে যদি সে কাউকে সহায়তা করে। এটি জুমটি 85% এ সেট করে, স্ক্রোলবারগুলি, সরঞ্জামদণ্ডগুলি এবং ন্যাভ প্যানগুলি সরিয়ে দেয়। আমি আমার পোস্ট আপডেট করব যদি আমি আইই তেও কাজ করে এমন কিছু কাজ করি।
<object width="400" height="500" type="application/pdf" data="/my_pdf.pdf?#zoom=85&scrollbar=0&toolbar=0&navpanes=0">
<p>Insert your error message here, if the PDF cannot be displayed.</p>
</object>
উভয়ই ব্যবহার করে <object>
এবং <embed>
আপনাকে ব্রাউজারের সামঞ্জস্যের প্রশস্ততা দেবে।
<object data="http://yoursite.com/the.pdf" type="application/pdf" width="750px" height="750px">
<embed src="http://yoursite.com/the.pdf" type="application/pdf">
<p>This browser does not support PDFs. Please download the PDF to view it: <a href="http://yoursite.com/the.pdf">Download PDF</a>.</p>
</embed>
</object>
embed
ট্যাগটি নিজেই ব্যবহার unsafe
করা ক্রোম এবং ফায়ারফক্স দ্বারা বিবেচিত হয়েছিল।
ইমেজম্যাগিকের মাধ্যমে এটি পিএনজিতে রূপান্তর করুন এবং পিএনজি প্রদর্শন করুন (দ্রুত এবং নোংরা)।
<?php
$dir = '/absolute/path/to/my/directory/';
$name = 'myPDF.pdf';
exec("/bin/convert $dir$name $dir$name.png");
print '<img src="$dir$name.png" />';
?>
আপনার যদি দ্রুত সমাধানের প্রয়োজন হয় তবে ক্রস ব্রাউজার পিডিএফ দেখার সমস্যাগুলি এড়াতে চান এবং পিডিএফটি কেবল একটি পৃষ্ঠা বা দু'টি হলে এটি একটি ভাল বিকল্প। অবশ্যই, আপনার ওয়েবসারভারে আপনার ইমেজম্যাগিক ইনস্টল করা দরকার (যার পরিবর্তে ঘোস্টসক্রিপ্টের দরকার আছে), এমন একটি বিকল্প যা ভাগ করে নেওয়া হোস্টিং পরিবেশে নাও পাওয়া যায়। এখানে একটি পিএইচপি প্লাগইন রয়েছে (যাকে ইমেজিক বলা হয়) এটি এর মতো কাজ করে এটি এর তবে এর নিজস্ব বিশেষ প্রয়োজনীয়তা রয়েছে।
foreach($pdf->pages as $page)
প্রতিটি পৃষ্ঠার জন্য একটি করতে এবং একটি চিত্র তৈরি করতে পারেন
এই কোডটি দেখুন - পিডিএফটি এইচটিএমএলে এম্বেড করতে
<!-- Embed PDF File -->
<object data="YourFile.pdf" type="application/x-pdf" title="SamplePdf" width="500" height="720">
<a href="YourFile.pdf">shree</a>
</object>
src
জন্য data
, ইন @ গেইলের উত্তর হিসাবে কাজ করে।
FDView সম্মিলন PDF2SWF (যা নিজেই উপর ভিত্তি করে তৈরি xpdf একটি সহ) SWF ভিউয়ার যাতে আপনি রূপান্তর এবং আপনার সার্ভারে মাছি উপর পিডিএফ নথি এম্বেড করতে পারেন।
xpdf নিখুঁত পিডিএফ রূপান্তরকারী নয়। আপনার যদি আরও ভাল ফলাফলের প্রয়োজন হয় তবে ঘোস্টভিউ পিডিএফ ডকুমেন্টগুলিকে অন্য ফর্ম্যাটগুলিতে রূপান্তর করার কিছু ক্ষমতা রয়েছে যা আপনি আরও সহজেই এর জন্য ফ্ল্যাশ ভিউয়ার তৈরি করতে সক্ষম হতে পারেন।
তবে সাধারণ পিডিএফ ডকুমেন্টগুলির জন্য, এফডিভিউকে যুক্তিসঙ্গতভাবে ভালভাবে কাজ করা উচিত।
আমাদের সমস্যা হ'ল আইনী কারণে আমাদের অস্থায়ীভাবে হার্ড ডিস্কে একটি পিডিএফ সঞ্চয় করার অনুমতি নেই । এছাড়াও, ব্রাউজারে পূর্বরূপ হিসাবে পিডিএফ প্রদর্শন করার সময় পুরো পৃষ্ঠাটি পুনরায় লোড করা উচিত নয়।
প্রথমে আমরা পিডিএফ.জেএস চেষ্টা করেছি এটি ফায়ারফক্স এবং ক্রোমের দর্শনে বেস 64 নিয়ে কাজ করেছিল। তবে এটি আমাদের পিডিএফের জন্য অগ্রহণযোগ্যভাবে ধীর ছিল। আইই / এজ মোটেও কাজ করেনি।
অতএব আমরা এটি একটি এইচটিএমএল অবজেক্ট ট্যাগের বেস 64 স্ট্রিং দিয়ে চেষ্টা করেছি। এটি আবার আইই / এজের জন্য কাজ করে নি (সম্ভবত পিডিএফ.জেএসের মতো একই সমস্যা)। ক্রোম / ফায়ারফক্স / সাফারিতে আবার কোনও সমস্যা নেই। এজন্য আমরা একটি সংকর সমাধান বেছে নিয়েছি। আইই / এজ আমরা একটি আইফ্রেম এবং অন্যান্য সমস্ত ব্রাউজারের জন্য অবজেক্ট-ট্যাগ ব্যবহার করি।
আইফ্রেম সমাধান অবশ্যই ক্রোম এবং কো এর জন্য কাজ করবে। আমরা ক্রোমের জন্য এই সমাধানটি ব্যবহার না করার কারণটি হ'ল পিডিএফটি সঠিকভাবে প্রদর্শিত হলেও আপনি পূর্বরূপে "ডাউনলোড" ক্লিক করার সাথে সাথে ক্রোম সার্ভারের কাছে একটি নতুন অনুরোধ জানায় । প্রয়োজনীয় লুকানো-ক্ষেত্রের পিডিএফহেল্পার ট্রান্সফার ডেটা (পিডিএফ প্রজন্মের জন্য আমাদের ফর্ম ডেটা প্রেরণের জন্য) আর সেট করা নেই কারণ প্রদর্শিত হয়। এই বৈশিষ্ট্যটির জন্য / বাগ দেখুনপিডিএফ ডাউনলোড করার সময় ক্রোম দুটি অনুরোধ প্রেরণ করে (এবং এর মধ্যে একটি বাতিল করে) ।
এখন সমস্যা IE9 এবং IE10 শিশুরা রয়ে গেছে। এর জন্য আমরা একটি পূর্বরূপ সমাধান ছেড়ে দিয়েছিলাম এবং প্রিভিউ বোতামটি ব্যবহারকারীর কাছে ডাউনলোড হিসাবে পূর্বরূপের পরিবর্তে (পূর্বরূপের পরিবর্তে) ডকুমেন্টটি প্রেরণ করি। আমরা অনেক চেষ্টা করেছি কিন্তু আমরা যদি কোনও সমাধান খুঁজে পেলাম তবে ব্যবহারকারীর এই ক্ষুদ্র অংশের জন্য অতিরিক্ত প্রচেষ্টা চেষ্টা করা ভাল হত না। আপনি ডাউনলোডের জন্য আমাদের সমাধানটি এখানে পেতে পারেন: আইফ্রেমের সাথে রিফ্রেশ ছাড়াই পিডিএফ ডাউনলোড করুন ।
আমাদের জাভাস্ক্রিপ্ট:
var transferData = getFormAsJson()
if (isMicrosoftBrowser()) {
// Case IE / Edge (because doesn't recoginzie Pdf-Base64 use Iframe)
var form = document.getElementById('pdf-helper-form');
$("#pdfHelperTransferData").val(transferData);
form.target = "iframe-pdf-shower";
form.action = "serverSideFunctonWhichWritesPdfinResponse";
form.submit();
} else {
// Case non IE use Object tag instead of iframe
$.ajax({
url: "serverSideFunctonWhichRetrivesPdfAsBase64",
type: "post",
data: { downloadHelperTransferData: transferData },
success: function (result) {
$("#object-pdf-shower").attr("data", result);
}
})
}
আমাদের এইচটিএমএল:
<div id="pdf-helper-hidden-container" style="display:none">
<form id="pdf-helper-form" method="post">
<input type="hidden" name="pdfHelperTransferData" id="pdfHelperTransferData" />
</form>
</div>
<div id="pdf-wrapper" class="modal-content">
<iframe id="iframe-pdf-shower" name="iframe-pdf-shower"></iframe>
<object id="object-pdf-shower" type="application/pdf"></object>
</div>
আইই / এজ এর জন্য ব্রাউজারের ধরনটি পরীক্ষা করতে এখানে দেখুন: আমি কীভাবে জাভাস্ক্রিপ্ট ব্যবহার করে ইন্টারনেট এক্সপ্লোরার (আইই) এবং মাইক্রোসফ্ট এজ সনাক্ত করতে পারি? আমি আশা করি এই অনুসন্ধানগুলি অন্য কারও সময় সাশ্রয় করবে।
আপনার পিডিএফ ধরে রাখতে একটি ধারক তৈরি করুন
<div id="example1"></div>
এম্বেড করার জন্য কোন পিডিএফ এবং কোথায় এম্বেড করবেন পিডিএফওজেক্টকে বলুন
<script src="/js/pdfobject.js"></script>
<script>PDFObject.embed("/pdf/sample-3pp.pdf", "#example1");</script>
মাত্রা, সীমানা, মার্জিন ইত্যাদি সহ ভিজ্যুয়াল স্টাইলিং নির্দিষ্ট করতে আপনি সিএসএস ব্যবহার করতে পারেন ally
<style>
.pdfobject-container { height: 500px;}
.pdfobject { border: 1px solid #666; }
</style>
উত্স: https://pdfobject.com/
pdf.output('bloburl')
lib jspdf থেকে এটি ব্যবহার করেছি তবে মনে হচ্ছে এটি IE11 এ কাজ করছে না।
আপনি এটির মতো সংরক্ষিত পিডিএফের আপেক্ষিক অবস্থানটি ব্যবহার করতে পারেন:
Example1
<embed src="example.pdf" width="1000" height="800" frameborder="0" allowfullscreen>
Example2
<iframe src="example.pdf" style="width:1000px; height:800px;" frameborder="0" allowfullscreen></iframe>
স্ক্রিবডের জন্য আর আপনার সার্ভারে আপনার দস্তাবেজগুলি হোস্ট করার দরকার নেই। আপনি যদি তাদের সাথে একটি অ্যাকাউন্ট তৈরি করেন তবে আপনি একটি প্রকাশক আইডি পান। আপনার নিজের সার্ভারে সঞ্চিত পিডিএফ ফাইলগুলি লোড করতে জাভাস্ক্রিপ্ট কোডের কয়েকটি লাইন লাগে।
আরও বিশদের জন্য, বিকাশকারী সরঞ্জামগুলি দেখুন ।
<object width="400" height="400" data="helloworld.pdf"></object>
ইমেজম্যাগিকেরconvert
কমান্ডটি ব্যবহার করে পিডিএফটোইমেজ সার্ভলেট ।
ব্যবহারের উদাহরণ:
<img src='/webAppDirectory/PdfToImageServlet?pdfFile=/usr/share/cups/data/default-testpage.pdf'>
AXIOS এবং Vue.js এর সাথে আমি এইভাবে করেছি :
axios({
url: `urltoPDFfile.pdf`,
method: 'GET',
headers: headers,
responseType: 'blob'
})
.then((response) => {
this.urlPdf = URL.createObjectURL(response.data)
})
.catch((error) => {
console.log('ERROR ', error)
})
ইউআরএলপিডিএফকে গতিশীলভাবে এইচটিএমএলে যুক্ত করুন:
<object width='100%' height='600px' :data='urlPdf' type='application/pdf'></object>
আপনি যে বিকল্পগুলির কথা বিবেচনা করবেন
সেগুলির মধ্যে একটি উল্লেখযোগ্য পিডিএফ
এটির একটি নিখরচায় পরিকল্পনা রয়েছে যদি না আপনি পিডিএফএসে রিয়েল-টাইম অনলাইন সহযোগিতা করার পরিকল্পনা করে থাকেন
নিম্নলিখিত iframe
যে কোনও এইচটিএমএল এ এম্বেড করুন এবং ফলাফল উপভোগ করুন:
<iframe width='1000' height='800' src='http://bit.ly/1JxrtjR' frameborder='0' allowfullscreen></iframe>
ব্রাউজারে ফাইলটি স্ট্রিম করতে, স্ট্যাক ওভারফ্লো প্রশ্নটি দেখুন .NET 2.0 ব্যবহার করে ব্রাউজারে বাইনারি হিসাবে পিডিএফ ফাইলটি কীভাবে প্রবাহিত করা যায় question - নোট করুন যে, ছোট ফাইলের পরিবর্তনের সাথেও, এই ফাইলটি সিস্টেম থেকে কোনও ফাইল সরবরাহ করছেন কিনা তা কাজ করা উচিত বা গতিশীলভাবে উত্পন্ন।
এর সাথে বলা হয়েছে যে, রেফারেন্সড এমএসডিএন নিবন্ধটি বিশ্বের তুলনায় একটি সরল দৃষ্টিভঙ্গি নিয়েছে, সুতরাং আপনি এইচটিটিপিএসের মাধ্যমে ব্রাউজারে সাফল্যের সাথে একটি পিডিএফ স্ট্রিম করতে এবং আপনার যে শিরোনাম সরবরাহ করতে হতে পারে সেগুলি সফলভাবে পড়তে চাইতে পারেন।
এই পদ্ধতির ব্যবহার করে, একটি আইফ্রেম সম্ভবত সবচেয়ে ভাল উপায়। এমন একটি ওয়েবফর্ম আছে যা ফাইলটি প্রবাহিত করে এবং তারপরে src
প্রথম ফর্মটিতে তার বৈশিষ্ট্যটি সেট করে অন্য পৃষ্ঠায় iframe রাখে ।
ইফ্রেমের জন্য ইউআরআই এর কিছু দেখতে পাওয়া উচিত:
/viewer.html?file=blob:19B579EA-5217-41C6-96E4-5D8DF5A5C70B
এখন এফএফ, ক্রোম, আইই ১১ এবং এজ সব ইউআরএল-তে স্ট্যান্ডার্ড ব্লব ইউআরআই দিয়ে পাস করা আইফ্রেমে দর্শকের পিডিএফ প্রদর্শন করে।
আমাকে প্রতিক্রিয়া সহ একটি পিডিএফ পূর্বরূপ নিতে হয়েছিল তাই বেশ কয়েকটি লাইব্রেরির চেষ্টা করার পরে আমার সর্বোত্তম সমাধানটি ডেটা আনার এবং এটিটিকে ইমড করার জন্য ছিল।
const pdfBase64 = //fetched from url or generated with jspdf or other library
<embed
src={pdfBase64}
width="500"
height="375"
type="application/pdf"
></embed>
আমি দেখতে পেয়েছি এটি ঠিকঠাক কাজ করে এবং ব্রাউজারটি এটি ফায়ারফক্সে পরিচালনা করে। আমি IE পরীক্ষা করে দেখিনি ...
<script>window.location='url'</script>