چاپ با جاوا اسکریپت

سلام؛ من یه صفحه html دارم که در اون با استفاده از جاوا اسکریپت قابلیت چاپ از اون صفحه رو قرار داده ام. توی این صفحه روی یک دکمه "چاپ" که کلیک می کنم اول یه پنجره پیش نمایش چاپ باز میشه و سپس پنجره ی تنظیمات چاپ و انتخاب چاپگر. حالا من می خوام ببینم چطور میشه کاری کرد که پنجره ی پیش نمایش چاپ باز نشه! یعنی کاربر پیش نمایش چاپ رو نبینه!

کد html:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> </title>
<script language="javascript" type="text/javascript"> 
function Printing()
{
    var myContentToPrint = document.getElementById("Context");
    var myWindowToPrint = window.open('','','width=800,height=600,toolbar=0,scrollbars=0,status=-1,resizable=-1,location=0,directories=0'); 
    myWindowToPrint.document.write('<html><head><title> </title></head><body style="font:100%/140% B Nazanin, Tahoma; direction:rtl " >');
    myWindowToPrint.document.write('<div><img src="header.gif" alt="تصویر دلخواه خود را می توانید به عنوان لوگو یا هدر در این قسمت قرار دهید" /></div>');
    myWindowToPrint.document.write(myContentToPrint.innerHTML);
    myWindowToPrint.document.write('</body></html>');
    myWindowToPrint.document.close();
    myWindowToPrint.focus();
    myWindowToPrint.print();
    myWindowToPrint.close();
}
</script> 
</head>
<body style="font:100%/150% Tahoma; direction:rtl " >

<div id="Context">
<p>
    <span style="color: #ff0000"><strong>طراحی صفحات وب </strong></span>
</p>
<p >
<font color="#0000FF"><b>طراحی صفحات وب با استفاده از HTML</b> </font><br />            
HTML مخفف &quot;<strong>HyperText Markup Language</strong>&quot; است. HTML زبانی است که از 
آن برای نوشتن صفحات وب ایستا (استاتیک) استفاده می شود. این زبان برای مشخص کردن 
عناصر مختلف صفحه از یک سری تگ (برچسب) استفاده می شود. برای مثال 
برای اینکه یک تصویر را وارد صفحه کنیم از برچسب &lt;img&gt; استفاده می کنیم و برای مشخص 
کردن یک پاراگراف متن مورد نظر خود را بین تگ &lt;p&gt; و &lt;p/&gt; قرار می دهیم. بدین وسیله 
مرورگر اینترنت می تواند عناصر مختلف صفحه را شناسایی کند و آنها را نمایش دهد. 
مرورگرهای اینترنت کدهای HTML را دریافت می کنند و پس از تفسیر آنها را به صورت یک 
صفحه وب به نمایش در می آورند.
<br />
نوشتن صفحات HTML لزوماً به برنامه خاصی احتیاج ندارد. حتی با استفاده از NotePad 
در ویندوز هم می توانید صفحات مورد نظر خود را طراحی کنید. صرف نظر از برنامه ای که 
از آن برای طراحی صفحات خود کمک می گیرید آشنایی شما با HTML می تواند تا حد بسیار 
زیادی در کیفیت صفحات تأثیر بگذارد.
</p>
<p>
<b><font color="#0000FF">نوشتن صفحات پویای طرف کاربر با جاوا اسکرِیپت</font></b><br />
جاوا اسکرپت گسترده ترین زبان اسکرپت نویسی مورد استفاده در اینترنت است. بسیاری از 
سایتها از این زبان برای ساختن صفحات پویایی که در کامپیوتر کاربر اجرا می شوند 
استفاده می کنند. تقریباً همه مرورگرهای مشهور از این زبان پشتیبانی می کنند و 
اگرچه امکان غیر فعال کردن آن توسط کاربران وجود دارد اما طبق آمار جاوا اسکرپت در 
مرورگرهای بیش از 90 درصد کاربران اینترنت فعال است.
<br />
در حقیقت HTML را نمی توان یک زبان برنامه نویسی دانست ولی جاوا اسکرپت یک زبان 
برنامه نویسی با ساختاری ساده است که می تواند عناصر HTML را بخواند، بنویسید و یا 
آنها را تغییر دهد. جاوا اسکرپت توانایی واکنش نشان دادن به رویداد ها را در صفحه 
HTML دارد. برای مثال می توان کد جاوا اسکرپتی نوشت که در هنگام ارسال یک فرم اجرا 
شود.
<br />
در این زبان ابزارهای برنامه نویسی از قبیل توابع، حلقه ها و ... در اختیار طراح 
صفحه قرار می گیرد تا با استفاده از آنها رفتار صفحه را مطابق نیاز خود تنظیم کند.
</p>
</div>
<br /><br />
<div id="print">
    <input type="button" onclick="Printing();" value="چاپ" style="font:80% Tahoma; width:100px"  /> 
</div>
<div >
 نکته : برای پرینت تنها متن اصلی چاپ می شود و این متن و دکمه و سایر اجزای صفحه به نمایش در نمی آید
 <br />
 در ضمن در موقع پرینت فونت تغییر کرده (در صورتی که فونت نازنین در سیستم جاری موجود باشد.) و یک تصویر برای هدر صفحه اضافه می شود که باید آدرس عکس در کد این صفحه مشخص شود.
</div>
</body>
</html>
 
فکر می کنم مربوط به این خط کد باشه!

PHP:
  var myWindowToPrint = window.open('','','width=800,height=600,toolbar=0,scrollbars=0,status=-1,resizable=-1,location=0,directories=0');
اما این خط کد رو که حذف کنم دیگه اون دکمه چاپ نمی کنه! فکر کنم چیزی باید جایگزین این خط کد کرد اما نمی دونم چی!
 
JavaScript Code:

function Printing(){ window.print(); }


ببینید اینطوری که کل اون چند خط رو شما حذف می کنید!!! من اون چند خط کد رو لازم دارم چون موقع پرینت با این چند خط دستور، واسه صفحه ام هدر و فوتر می سازه! که توی حالت عادی نشون داده نمیشه! یجور کپی رایت واسه پرینت! من فقط نمی خوام موقع پرینت پنجره ی پیش نمایش باز بشه! همین! وگرنه بقه خط کد ها رو لازم دارم!
 
دوست گرامی این چیزی که شما میخوای همون کد بالاست که نوشتم .... اگه میخوای توی پنجره جدید باز نشه این چیزی که نوشتی و به جای این که ()document.write کنی توی یه صفحه دیگه توی

همین صفحه ()document.write کن بعد ()window.print کن همین ! کدشو ننوشتم خودت روش فکر کنی... اگه متوجه نشدی بگو کدشو بنویسم

کاری که شما انجام دادی اینجوری بوده که یه پنجره باز کردی توی اون پنجره ساختار صفحتو نوشتی حالا توی این پنجره ساختار سایتتو بنویس و پرینت بگیر ... پیش نمایش هم داره چون html باید رندر بشه تا

معلوم بشه چیه!

امیدوارم متوجه شده باشی

موفق باشید
 
آخرین ویرایش:
سلام؛ متاسفانه من هیچی از جاوا اسکریپت بلد نیستم واسه همین خودم هم سر در نمیارم چی به چیه هم اینکه بلد نیستم کد ها رو بنویسم یا تغغیر بدم فقط بواسطه ی اینکه رشته ی تحصیلیم زبان انگلیسی هست یه چیزایی متوجه میشم! ممنون میشم کدش رو واسم بذارید. ببینید اگه کدی که گذاشتم رو اجراش کنید متوجه می شید که توی پرینت، صفحه هدر داره ولی توی سایت اصلی هدر نیست! یعنی واسه صفحه ی پرینت یه کپی رایت می خوام قرار بدم که تو اصل نمایش وجود نداشته باشه و فقط کاربر پس از پرینت او واسش چاپ بشه! واسه همین میخوام اون صفحه ی پیش نمایش باز نشه تا کاربر تا قبل از چاپ متوجه نشه که صفحه ی پرینتش کپی رایت خواهد داشت! اما اونطوری که شما گفتید که هدر کپی رایت هم حذف میشه! یا شدید هم من درست متوجه نشدم! میشه کدش رو لطف کنید بذارید؟ ممنونتون میشم
 
چند نکته هست که لازمه براتون توضیح بدم 1- شما وقتی از تابع ()print استفاده میکنی همین صفحه ای که توش هستی برات پرینت میگیره ! حالا اگه میخواید کپی رایت هم داشته باشه پس مجبورید توی یه پنجره دیگه این کارو بکنید که یه جورایی

پیش نمایش میشه! حالا شما پیش نمایش نمیخواید! بنابراین میتونید از css استفاده کنید در غیر این صورت همونی که خودتون نوشتید درسته من براتون چند تا دستور نوشتم


توی تگ html یه تگ دیگه داریم به نام head که داخل تگ head تگ style هستش به جای hello.jpg میتونید عکس دلخواه بذارید ! یا اگه متن میخواید بذارید به جای رشته hello هر چی که خواستید بذارید

در کل همون نتیجه ای که میخواید و میگیرید منتها بدون پیش نمایش

اگه سوالی براتون پیش اومد باز بپرسید

موفق باشید
[PHPS]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> </title>

<style>

@media print{
body{font-size:9px;}
.print , .hello{display:none;}
body:before{ content:url(hello.png); }
/*body:before{ content:"hello";}*/



}
}

</style>
<script language="javascript" type="text/javascript">
function Printing()

{

window.print() ;


}
</script>
</head>
<body class="font" style="font:100%/150% Tahoma; direction:rtl " >

<div id="Context">
<p>
<span style="color: #ff0000"><strong>طراحی صفحات وب </strong></span>
</p>
<p >
<font color="#0000FF"><b>طراحی صفحات وب با استفاده از HTML</b> </font><br />
HTML مخفف &quot;<strong>HyperText Markup Language</strong>&quot; است. HTML زبانی است که از
آن برای نوشتن صفحات وب ایستا (استاتیک) استفاده می شود. این زبان برای مشخص کردن
عناصر مختلف صفحه از یک سری تگ (برچسب) استفاده می شود. برای مثال
برای اینکه یک تصویر را وارد صفحه کنیم از برچسب &lt;img&gt; استفاده می کنیم و برای مشخص
کردن یک پاراگراف متن مورد نظر خود را بین تگ &lt;p&gt; و &lt;p/&gt; قرار می دهیم. بدین وسیله
مرورگر اینترنت می تواند عناصر مختلف صفحه را شناسایی کند و آنها را نمایش دهد.
مرورگرهای اینترنت کدهای HTML را دریافت می کنند و پس از تفسیر آنها را به صورت یک
صفحه وب به نمایش در می آورند.
<br />
نوشتن صفحات HTML لزوماً به برنامه خاصی احتیاج ندارد. حتی با استفاده از NotePad
در ویندوز هم می توانید صفحات مورد نظر خود را طراحی کنید. صرف نظر از برنامه ای که
از آن برای طراحی صفحات خود کمک می گیرید آشنایی شما با HTML می تواند تا حد بسیار
زیادی در کیفیت صفحات تأثیر بگذارد.
</p>
<p>
<b><font color="#0000FF">نوشتن صفحات پویای طرف کاربر با جاوا اسکرِیپت</font></b><br />
جاوا اسکرپت گسترده ترین زبان اسکرپت نویسی مورد استفاده در اینترنت است. بسیاری از
سایتها از این زبان برای ساختن صفحات پویایی که در کامپیوتر کاربر اجرا می شوند
استفاده می کنند. تقریباً همه مرورگرهای مشهور از این زبان پشتیبانی می کنند و
اگرچه امکان غیر فعال کردن آن توسط کاربران وجود دارد اما طبق آمار جاوا اسکرپت در
مرورگرهای بیش از 90 درصد کاربران اینترنت فعال است.
<br />
در حقیقت HTML را نمی توان یک زبان برنامه نویسی دانست ولی جاوا اسکرپت یک زبان
برنامه نویسی با ساختاری ساده است که می تواند عناصر HTML را بخواند، بنویسید و یا
آنها را تغییر دهد. جاوا اسکرپت توانایی واکنش نشان دادن به رویداد ها را در صفحه
HTML دارد. برای مثال می توان کد جاوا اسکرپتی نوشت که در هنگام ارسال یک فرم اجرا
شود.
<br />
در این زبان ابزارهای برنامه نویسی از قبیل توابع، حلقه ها و ... در اختیار طراح
صفحه قرار می گیرد تا با استفاده از آنها رفتار صفحه را مطابق نیاز خود تنظیم کند.
</p>
</div>
<br /><br />
<div id="print">
<input type="button" class="print" onclick="Printing();" value="چاپ" style="font:80% Tahoma; width:100px" />
</div>
<div class="hello" >
نکته : برای پرینت تنها متن اصلی چاپ می شود و این متن و دکمه و سایر اجزای صفحه به نمایش در نمی آید
<br />
در ضمن در موقع پرینت فونت تغییر کرده (در صورتی که فونت نازنین در سیستم جاری موجود باشد.) و یک تصویر برای هدر صفحه اضافه می شود که باید آدرس عکس در کد این صفحه مشخص شود.
</div>
</body>
</html>



[/PHPS]
 
آخرین ویرایش:
ببینید این برعکش اون چیزی شد که من میخوام!!!!

بذاریثد اینطوری توضیح بدم. من یه فایل html دارم که داخلش فقط و فقط وقتی باز می کنی دوتا پاراگراف متنی نمایش داده میشه!

حالا می خوام وقتی پرینت می گیرم از این صفحه ی html بالای اون سه تا پاراگراف متنی، یه عکس بعنوان هدر، اضافه بشه و دو خط متن هم به انتهای اون سه تا پاراگراف اضافه بشه! ولی وقتی کاربر در حالت عادی اون html رو باز می کنه ، اون دو خط متن و اون عکس هدر رو نبینه! فقط توی چاپ اون عکس هدر و دو خط کپی رایت انتهای صفحه وجود داشته باشه!

:shock:کدی که ابتدا ی سوالم دادم، این کار رو واسم انجام میداد اما قبل از چاپ، یه صفحه ی پیش نمایش نشون میداد که تو اون معلوم بود که صفحه ای که داره پرینت میشه، عکس هدر و دوخط پاراگراف انتهای متن بهش اضافه شده! من می خوام تا زمان چاپ، اون چیزایی که به متن اضافه شده برای کاربر قابل روئیت نباشه!
 

جدیدترین ارسال ها

بالا