PDA

View Full Version : مبتدی: مشکل در پرینت گرفتن



jujuee
دوشنبه 25 فروردین 1393, 21:47 عصر
سلام دوستان. من توی سایتم یه دکمه برای پرینت گذاشتم که تگ دیوی رو که براش مشخص کردم پرینت بگیره. مشکلم اینه که وقتی روی دکمه ی پرینت کلیک میکنید کلا استایل انگار حذف میشه.
دموش رو توی هاستم آپ کردم:
rogatech.somee.com/print.aspx (http://rogatech.somee.com/print.aspx)
کد هاشم اینجاس:
<input type="button" onclick="JavaScript:printPartOfPage('Div1')" value="print" />
<div align="right" id="Div1" >
<div id="kadrbala">
<img id="rogaArm" src="roga arm.png" alt="" />
<span id="darkhast" align="left" >
شماره درخواست :
<asp:Label ID="DarkhastIdLabel" runat="server" Text='<%# Eval("DarkhastId") %>' />
</span>
<div align="left" id="peyvast" >پیوست : </div>
<br />

<div id="tarikh" align="left">
تاریخ :
</div>
<div align="center" id="esm" >
گروه مهندسی و تحقیقاتی روگاتکنیک
</div>
</div>
<br />
<div id="kadrMatn" >

<div id="badane">
//کدهای لیست ویو

</div>
</div>
</div>




<script type="text/javascript">
<!--
function printPartOfPage(elementId) {
var printContent = document.getElementById(elementId);
var windowUrl = 'about:blank';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');
printWindow.document.write(printContent.innerHTML) ;
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
// -->
</script>



البته یه خط هم اولش استایل شیت رو بهش لینک کردم تو تگ هد

jujuee
دوشنبه 25 فروردین 1393, 22:04 عصر
چیزی که تا الان متوجه شدم اینه که اصلا برای پرینت استایل هارو نمیخونه. کاری هم که تونستم براش بکنم این بود که یه فایل استایل تعریف کردم و موقع فراخوانی استایل شیت توی صفحه م media=print قرار دادم اما بازم فرقی نکرد! ممنون میشم کسی راهنماییم کنه

mRizvandi
دوشنبه 25 فروردین 1393, 23:37 عصر
دوست عزیز شما با کد جاوا اسکریپت دارید یک پنجره جدید باز می کنید که در واقع دارید یک صفحه جدید رو شبیه سازی می کنید و متن اون صفحه رو با المنتی که برای پرینت انتخاب شده پر می کنید.
این صفحه جدید استایل نداره. شما باید در زمان ساخت این صفحه فایل CSS رو با جاوا اسکریپت به اون هم اضافه کنید.

jujuee
سه شنبه 26 فروردین 1393, 00:07 صبح
دوست عزیز شما با کد جاوا اسکریپت دارید یک پنجره جدید باز می کنید که در واقع دارید یک صفحه جدید رو شبیه سازی می کنید و متن اون صفحه رو با المنتی که برای پرینت انتخاب شده پر می کنید.
این صفحه جدید استایل نداره. شما باید در زمان ساخت این صفحه فایل CSS رو با جاوا اسکریپت به اون هم اضافه کنید.
میشه بیشتر توضیح بدید؟ سعی کردم با این دستور استایل رو بهش لینک کنم اما موفق نشدم. یعنی تغییری حاصل نشد.
document.write('<link rel="stylesheet" type="text/css" href="print.css">');

mRizvandi
سه شنبه 26 فروردین 1393, 00:38 صبح
اون دستور شما به بخش body متنی رو اضافه می کنه. از این کد استفاده کنید:


var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)

فقط خاطرتون باشه که مسیر رو باید کامل بدید.
تست کنید اگر موردی بود دوباره اعلام کنید.

jujuee
سه شنبه 26 فروردین 1393, 00:53 صبح
الان کد من به این شکل در اومده:
function printPartOfPage(elementId) { var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", "print.css");
var printContent = document.getElementById(elementId);
var windowUrl = 'about:blank';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');

printWindow.document.write(printContent.innerHTML) ;
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
ولی همچنان بدون استایل هستش پرینت

jujuee
سه شنبه 26 فروردین 1393, 12:24 عصر
یه چیز جالب اینه که وقتی الان (صبح) باز اجرا گرفتم استایلش به چیزی که میخوام نزدیک تر شده ولی هنوز همه اون چیزایی که میخوام رو نداره و باز به هم ریختس یه جورایی، مثلا بردر نداره. یا اینکه عکسو نشون نمیده. و مارجین ها هم رعایت نشده درست.یه سوال دیگه اینکه من قبلا استایل ها رو تو خود تگ های بادی قرار داده بودم ولی هنوز مشکل داشت. یعنی منظورم اینه که به هرحال وقتی تگ رو میخوند باید استایلشم میخوند دیگه نه؟

mRizvandi
سه شنبه 26 فروردین 1393, 12:27 عصر
یه چیز جالب اینه که وقتی الان (صبح) باز اجرا گرفتم استایلش به چیزی که میخوام نزدیک تر شده ولی هنوز همه اون چیزایی که میخوام رو نداره و باز به هم ریختس یه جورایی، مثلا بردر نداره. یا اینکه عکسو نشون نمیده. و مارجین ها هم رعایت نشده درست.یه سوال دیگه اینکه من قبلا استایل ها رو تو خود تگ های بادی قرار داده بودم ولی هنوز مشکل داشت. یعنی منظورم اینه که به هرحال وقتی تگ رو میخوند باید استایلشم میخوند دیگه نه؟
با Developers Tools (F12) چک کنید بینید چه استایلهایی رو گرفته و کدامها رو نگرفته، صفحه اولیه رو هم ببنید و مقایسه کنید
ممکنه شما بیش از یک فایل استایل داشته باشید که نیاز باشه اضافه بشه.