خروجی پی دی اف فارسی pdf arabic or persian
پی دی اف به زبان های اسکریپتی آن هم خروجی برای فارسی زبان ها یا عرب ها همیشه معضل بوده
دو تا فایل میزارم اینجا که از کتابخانه jspdf کمک گرفتم
فایل های js رو خودتون با یه سرچ ساده پیدا کنید
فرم اول :
یک فرم اچ تی ام ال را در ابتدا تبدیل به عکس میکنیم و base64 ان را میگیرم ارسال میکنیم به فرم دوم
کد HTML:
<!DOCTYPE html><html dir="rtl" >
<head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>تبدیل PDF</title> <script language="javascript" type="text/javascript" src="html2canvas.js"></script> <script language="javascript" type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> function ConvertNumberToPersion() { persian = { 0: '۰', 1: '۱', 2: '۲', 3: '۳', 4: '۴', 5: '۵', 6: '۶', 7: '۷', 8: '۸', 9: '۹' }; function traverse(el) { if (el.nodeType == 3) { var list = el.data.match(/[0-9]/g); if (list != null && list.length != 0) { for (var i = 0; i < list.length; i++) el.data = el.data.replace(list[i], persian
[list[i]]); } } for (var i = 0; i < el.childNodes.length; i++) { traverse(el.childNodes[i]); } } traverse(document.body); }
</script> <style type="text/css" > body { font-family: tahoma; text-align: right; direction: rtl; } .widget { display: inline-block; background-color: white; width :790px; height :1090px; border:1px solid #ececec; padding:3px; }
</style></head>
<body onload="ConvertNumberToPersion();" ><input type="button" id="btnSave" value="تبدیل به Pdf"/>
<p><!-- متن یا فرم مورد نظر در این اسپن گزاشته شود --> </p> <span id="widget" class="widget" > <div> <div>به نام خدا</div> <p>سلام</p> <table border="1" > <tr><td>من هنوز هستم</td></tr> <tr><td>سلام بر همه</td></tr> <tr><td>درووود خدا بر تو باد</td></tr> <tr><td>من نیز همچنان ساعت 2 ظهر روز پنجشنبه عین آدم های بیکار در حال کد نویسی</td></tr> </table> </div> </span>
<form method="POST" action="HtmlToPdf2.asp" style="display:none;" > <input type="text" id="bas" name="bas" > <input type="submit" value="هدایت به صفحه دانلود" id="MyClick" ></form>
</body><script type="text/javascript">$(function() { $("#btnSave").click(function() { html2canvas($("#widget"), { onrendered: function(canvas) { theCanvas = canvas; //document.body.appendChild(canvas); document.getElementById("bas").value=canvas.toDataURL('image/jpeg'); document.getElementById("MyClick").click(); } }); });}); </script></html>
نقل قول: خروجی پی دی اف فارسی pdf arabic or persian
فرم دوم :
base64 گرفته شده در صفحه قبل را میگیریم و با کمک از کتابخانه jspdf تبدیل به base64 pdf میکنیم سپس ذخیره
البته در ie ورژن پایین خروجی نهایی خوب جواب نمیده
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>دانلود فایل PDF</title>
<script type="text/javascript" src="jspdf.debug.js" ></script>
</head>
<body onload=" ConvertToPdf()" >
<center style="font-family:tahoma" >
<br /><br />
<b><a id="dwnldLnk" download='tostas.pdf' href="" > >> Pdf Download << </a> </b>
<br /><br /><h3>
در صورتی که فایل پی دی اف بصورت اتوماتیک دانلود نشد ، بروی لینک بالا کلیک نمایید
</h3>
<br /><br />
<img src="<%=Request("bas")%>" id="canvas" >
</center>
</body>
<script type="text/javascript">
function ConvertToPdf(){
var canvas=document.getElementById("canvas");
//var doc = new jsPDF('p', 'pt', 'a4', false);
var doc = new jsPDF('p', 'pt', [ 800, 1100]);//سایز پی دی اف اینجا مشخص میشود
doc.addImage(canvas.src, 'JPEG', 1, 1, canvas.width , canvas.height );
document.getElementById("dwnldLnk").href=doc.outpu t('datauristring');
//IEWorker(doc.output('datauristring'));
document.getElementById("dwnldLnk").click();
}
</script>
</html>