2014-03-25 97 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

謝謝,請建議其他方式來實現我的問題解決方案,如果你有。 –