mehrdad_shahian
جمعه 21 مهر 1391, 00:24 صبح
سلام به همه دوستان
من از کد زیر برای تبدیل محتوای یک Repeater به یک فایل PDF استفاده کردم.ولی مشکلی که داره اینه که متن رو راست به چپ نشون نمیده.یعنی همه حروف تیکه تیکس و از چپ به راسته.(عکسشو گذاشتم).
دوستانی در این زمینه کار کردن کمک کنن.خیلی فورس ماژوره.ممنون
کد:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + Page.Title + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
//Repeater1.DataBind();
Repeater1.RenderControl(hw);
//Page.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
StyleSheet ST = new StyleSheet();
FontFactory.Register("c:\\windows\\fonts\\tahoma.ttf");
ST.LoadTagStyle(HtmlTags.DIV, HtmlTags.ALIGN, HtmlTags.ALIGN_RIGHT);
//ST.LoadTagStyle("div", "align", "Right");
ST.LoadTagStyle("div", "face", "Tahoma");
ST.LoadTagStyle("div", "size", "12px");
ST.LoadTagStyle("div", "encoding", "Identity-H");
ST.LoadTagStyle("span", "dir", "rtl");
ST.LoadTagStyle(HtmlTags.SPAN, HtmlTags.ALIGN, HtmlTags.ALIGN_RIGHT);
htmlparser.SetStyleSheet(ST);
htmlparser.StartDocument();
htmlparser.Parse(sr);
htmlparser.EndDocument();
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
طراحی:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div style="margin-right:0px;direction:rtl;text-align:right;font-family:Tahoma, Arial, Helvetica, sans-serif;font-size:12px;">
<h3><a href='#'><%#Eval("ntitle") %></a></h3>
<span style="width:100%" class="postdate"><%#Eval("ndate") %> - <%#Eval("ntime") %></span>
<div class="post-body" >
<div style="width:130px;height:110px;float:left">
<asp:Image ID="Image1" ImageUrl='<%# Eval("npic130x80") %>' align="Left" Width="130px" Height="80px" runat="server" Visible='<%# Convert.ToString(Eval("npic130x80"))!=String.Empty %>' />
<span class="zoomin"><a href='<%#Eval("npic") %>' class="link1" >بزرگنمایی</a></span>
<span class="iconprint" ><a href="#" onclick="window.open('PrintNews.aspx?id=<%#Eval("nid") %>');" class="link1" >نسخه چاپی</a></span>
<span class="iconpdf" ><a href="#" onclick="window.open('PDFNews.aspx?id=<%#Eval("nid") %>');" class="link1" >نسخه PDF</a></span>
</div>
<div style="margin-right:5px;width:700px;" ><asp:Label ID="Label4" style="color:#ff6a00" runat="server" Text='<%#Eval("nsummary") %>'></asp:Label></div>
<div style="margin-top:10px;">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ncontent") %>'></asp:Label></div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
با تشکر پیشاپیش از همه
من از کد زیر برای تبدیل محتوای یک Repeater به یک فایل PDF استفاده کردم.ولی مشکلی که داره اینه که متن رو راست به چپ نشون نمیده.یعنی همه حروف تیکه تیکس و از چپ به راسته.(عکسشو گذاشتم).
دوستانی در این زمینه کار کردن کمک کنن.خیلی فورس ماژوره.ممنون
کد:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + Page.Title + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.No Cache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
//Repeater1.DataBind();
Repeater1.RenderControl(hw);
//Page.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
StyleSheet ST = new StyleSheet();
FontFactory.Register("c:\\windows\\fonts\\tahoma.ttf");
ST.LoadTagStyle(HtmlTags.DIV, HtmlTags.ALIGN, HtmlTags.ALIGN_RIGHT);
//ST.LoadTagStyle("div", "align", "Right");
ST.LoadTagStyle("div", "face", "Tahoma");
ST.LoadTagStyle("div", "size", "12px");
ST.LoadTagStyle("div", "encoding", "Identity-H");
ST.LoadTagStyle("span", "dir", "rtl");
ST.LoadTagStyle(HtmlTags.SPAN, HtmlTags.ALIGN, HtmlTags.ALIGN_RIGHT);
htmlparser.SetStyleSheet(ST);
htmlparser.StartDocument();
htmlparser.Parse(sr);
htmlparser.EndDocument();
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
طراحی:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div style="margin-right:0px;direction:rtl;text-align:right;font-family:Tahoma, Arial, Helvetica, sans-serif;font-size:12px;">
<h3><a href='#'><%#Eval("ntitle") %></a></h3>
<span style="width:100%" class="postdate"><%#Eval("ndate") %> - <%#Eval("ntime") %></span>
<div class="post-body" >
<div style="width:130px;height:110px;float:left">
<asp:Image ID="Image1" ImageUrl='<%# Eval("npic130x80") %>' align="Left" Width="130px" Height="80px" runat="server" Visible='<%# Convert.ToString(Eval("npic130x80"))!=String.Empty %>' />
<span class="zoomin"><a href='<%#Eval("npic") %>' class="link1" >بزرگنمایی</a></span>
<span class="iconprint" ><a href="#" onclick="window.open('PrintNews.aspx?id=<%#Eval("nid") %>');" class="link1" >نسخه چاپی</a></span>
<span class="iconpdf" ><a href="#" onclick="window.open('PDFNews.aspx?id=<%#Eval("nid") %>');" class="link1" >نسخه PDF</a></span>
</div>
<div style="margin-right:5px;width:700px;" ><asp:Label ID="Label4" style="color:#ff6a00" runat="server" Text='<%#Eval("nsummary") %>'></asp:Label></div>
<div style="margin-top:10px;">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("ncontent") %>'></asp:Label></div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
با تشکر پیشاپیش از همه