2014-03-25 53 views
0

在打印页面中,我正在通过css:direction:rtl正确地查看阿拉伯语。打印Arabic Text - 从右到左

虽然,打印所有其他CSS样式被应用,但方向:rtl不工作,并打印正常的阿拉伯文从左到右的文本。

这里是JS Fiddler

这里是代码

<div class="formBLock" style="padding-top:0px;"> 

     <div class="formCon CaseDetailsButton"> 
      <div class="divbtn"> 
       <a class="btn more2" href="/ClientInquiry/ar/CaseInquiry">الرجوع </a> 
      </div> 
      <div class="divbtn"> 
          <input type="button" id="btnPrint" class="btn more2" value="طباعة "/> 
      </div> 
     </div> 

       <div id="dvPrint"> 
        <div style="border:1px black solid;width:90%;margin-left:5%;margin-right:5%;float:right;margin-top:10px;"> 
          <div style="border-bottom:1px black solid;float:right;margin-top: 10px;width: 100%;"> 
           <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; font-weight:bold;"> تم استلام طلبكم : الاستعلام عن تقرير الحادث</span> 
          </div> 
          <div style="border-bottom:1px black solid;float:right;margin-top: 10px;width: 100%;"> 
           <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%;">شكرا لاستخدامكم نظام شركة نجم للاستعلام </span><br /> 
           <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%;">المعلومات أدناه توضح الوضع الحالي لمستندات الحادث</span> 
          </div> 
          <div style="border:1px solid black;width:90%;margin-left:5%;margin-right:5%;height:200px;float:right;margin-top: 10px;"> 
           <div style="float:right;width:30%;"> 
            <div style="height:50px;border-bottom:1px solid black;text-align:center;border-left:1px solid #000000"> 
             <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:7%;">بيانات الحادث</span> 
            </div> 
            <div style="height:150px;text-align:center;border-left:1px solid #000000"> 
             <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:30%;">حالة إرسال المستندات</span> 
            </div> 
           </div> 
           <div style="height:200px;width:33.3%;margin-top:0px;float:right;border-left:1px solid #000000"> 
            <div style="border-bottom:1px solid black;height:50px;text-align:center;"> 
             <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:6%;">رقم الحالة</span> 
            </div> 
            <div style="border-bottom:1px solid black;height:50px;text-align:center;"> 
             <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:6%;">حالة الإرسال</span> 
            </div> 
           </div> 
           <div style="height:100px;width:36.3%;margin-top:0px;float:right;"> 
            <div style="border-bottom:1px solid black;height:50px;"> 
             <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:6%;">RD21031414</span> 
            </div> 
            <div style="border-bottom:1px solid black;height:50px;"> 
              <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; margin-top:6%;">&nbsp;قيد المعالجة من شركة نجم</span> 
            </div> 
           </div> 
          </div> 

          <div style="border-top:1px solid black;float:right;margin-top: 10px;width: 100%;"> 
           <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%; font-weight:bold;">شركة نجم لخدمات التأمين</span> 
           <span style="color: #8F8E8E;float: right;font-family: Tahoma;font-size: 15px;font-weight: normal;margin-bottom: 5px;margin-right: 10px;margin-top: 1px;vertical-align: middle;width: 90%;">لمزيد من المعلومات يرجى الاتصال بـ 920000460 كما يمكنك زيارة 
            <a href="CaseFooterLink" target="_blank">Site.sa</a> 
            أو الفرع الأقرب لشركة نجم 
           </span> 
          </div> 
        </div> 
       </div> 
     <iframe name="print_frame" width="0" height="0" frameborder="0" src="about:blank"></iframe> 
    </div> 

的javascript:

$(document).ready(function() { 

    $("#btnPrint").click(function() { 
     var ObjdvPrint = $("#dvPrint"); 
     window.frames["print_frame"].document.body.innerHTML = ObjdvPrint.html(); 
     window.frames["print_frame"].window.focus() 
     window.frames["print_frame"].window.print() 
     return false; 
    }); 
}); 
+0

我在body标签和p标签阿拉伯文内容打印CSS ..这就是它在显示从右到左阿拉伯语,但在打印,其他类/风格被影响,但没有方向代码:RTL –

+0

阿拉伯文字甚至不通常需要任何方向设置,因为阿拉伯文字母具有固有的从右到左的方向性。您需要显示实际可测试的示例,最好是最小的HTML + CSS(或XML + CSS)文档,它实际上会重现该问题。 –

+0

链接到JS提琴手是:http://jsfiddle.net/853q8/ –

回答

2

问题是,根据注释,当使用打印按钮时,打印的数据有文本对齐到左侧,而不是右侧(写入方向不是问题)。

的原因是,打印执行这种方式:

var ObjdvPrint = $("#dvPrint"); 
window.frames["print_frame"].document.body.innerHTML = ObjdvPrint.html(); 
window.frames["print_frame"].window.focus() 
window.frames["print_frame"].window.print() 

因此,一个帧被创建,只包含原始文档的元素(带id="dvPrint")。此元素具有各种内联样式(属性为style),但没有设置水平对齐方式,因此应用了默认的text-align: left。无论在原始文档的body元素上设置什么都没有影响。

解决的办法是以创建框架时保留的方式设置该元素内容的对齐方式。由于您使用的是innerHTML,因此无法将其设置在该元素上。但是,在这种情况下,该元素的内容是一个内部div元素,所以它有助于对齐设置它:

<div id="dvPrint"> 
    <div dir="rtl" style="..."> 

你可以或者只是在内部的style属性的内容添加text-align: right元件。但根据定义,dir="rtl"设置了水平对齐(text-align: right)等。它还设定了整体写作的方向性,这通常不是必需的,但是对于a)浏览器错误和b)可能的混合在文档的某个未来版本中使用阿拉伯文和拉丁文字符。

+0

谢谢,我做了同样的方式,通过传递整个HTML和正确的CSS建议。 –

1

使用下面元它将工作。

http://www.katpatuka.org/pub/doc/content-language/ar.htm

谢谢大家的帮助!?

+0

声明字符编码和内容语言是很有用的事情,但他们都没有任何关系问题,写作方向。到实时页面的链接永远不会是一个足够的答案。从2002年开始,这个页面宣布其字符编码错误(在HTTP标头中,它优于所有'meta'标签,它表示它采用ISO-8859-9编码(ISO Latin/Turkish,根本不支持任何阿拉伯字母) 。 –

+0

谢谢,请建议其他方式来实现我的问题解决方案,如果你有。 –