我想使用ITextSharp将ASP.NET网页转换为pdf.我写了一些代码,但我不能让它显示土耳其字符.谁能帮我?
这是代码:
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Web.UI;
using System.Web;
using iTextSharp.text.html.simpleparser;
using System.Text;
using System.Text.RegularExpressions;
namespace Presentation
{
public partial class TemporaryStudentFormPrinter : System.Web.UI.Page
{
protected override void Render(HtmlTextWriter writer)
{
MemoryStream mem = new MemoryStream();
StreamWriter twr = new StreamWriter(mem);
HtmlTextWriter myWriter = new HtmlTextWriter(twr);
base.Render(myWriter);
myWriter.Flush();
myWriter.Dispose();
StreamReader strmRdr = new StreamReader(mem);
strmRdr.BaseStream.Position = 0;
string pageContent = strmRdr.ReadToEnd();
strmRdr.Dispose();
mem.Dispose();
writer.Write(pageContent);
CreatePDFDocument(pageContent);
}
public void CreatePDFDocument(string strHtml)
{
string strFileName = HttpContext.Current.Server.MapPath("test.pdf"); …Run Code Online (Sandbox Code Playgroud) 我尝试使用MVVM模式重写我的应用程序.
我有一个窗口,用静态方法显示不同对象的相关文档,如下所示:
public partial class ShowRelatedDocuments : Window
{
private ShowRelatedDocuments()
{
InitializeComponent();
}
public static void ShowRelatedDocument(A objA)
{
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.HandleA(objA);
srd.ShowDialog();
}
public static void ShowRelatedDocument(B objB)
{
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.HandleB(objB);
srd.ShowDialog();
}}
Run Code Online (Sandbox Code Playgroud)
有没有办法让这些方法像这样保持静态?
ShowRelatedDocumentsVM.ShowRelatedDocument(A objA);
ShowRelatedDocumentsVM.ShowRelatedDocument(B objB);
Run Code Online (Sandbox Code Playgroud)
我没有找到任何有关ViewModels和静态方法的信息.VM可以创建自己的实例并显示他的View(这里是一个窗口)吗?
或者是将对象作为参数传递给VM的构造函数的更好方法吗?
public ShowRelatedDocumentsVM(A objA)
{
HandleA(obj A)
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.DataContext = this;
srd.ShowDialog();
}
public ShowRelatedDocumentsVM(B objB)
{
HandleB(objB);
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.DataContext = this;
srd.ShowDialog();
} …Run Code Online (Sandbox Code Playgroud) 我想用Groovy MarkupBuilder在我的xml文档中插入注释.这怎么可能?
我有一个可以在线和离线工作的iPad应用程序,但是当我离线时,一旦在线可用性再次成为选项,就需要进行Web服务调用.
示例:新的客户端添加到应用程序,这需要发送到Web服务,但由于我们处于脱机状态,我们不想让用户放慢速度,因此我们让他们在本地添加并继续运行但我们需要记住该调用需要时,我们需要对Web服务进行处理.下订单等同样的事情.
是否存在某种可以设置的队列,一旦我们连接就会触发?
我知道这对于正常的整数,但是对于像指数这样的东西吗?
Random dice = new Random();
int n = dice.nextInt(6);
System.out.println(n);
Run Code Online (Sandbox Code Playgroud) 我对新的Action/Func/Variance/CoVariance的东西有点模糊,这可能就是我需要的东西.
我想要的是能够将委托作为参数传递给方法,该方法接受一个字符串并返回一个bool.问题是我不能使用类型化的委托或接口,因为它将在不共享库的不同库中使用,并且两者都将被第三个调用.
所以一般来说我想通过它的输入和返回类型来推断委托.
所以它会像:
delegate bool IncludeItemDelegate(string item);
ClassA.FetchItems(int someParameter,includeItemDelegate);
ClassB.FetchItems(int someParameter,string someOtherParam,includeItemDelegate);
Run Code Online (Sandbox Code Playgroud)
A和B不共享任何库,可以这样做吗?
我没有找到任何答案..如果我有:String s = "How are you"?我怎么能把它分成两个字符串,所以第一个字符串包含from 0..s.length()/2和第二个字符串来自s.length()/2+1..s.length()?
谢谢!
我有一个简化的表格如下:
create table Test
(
ValidFrom date not null,
ValidTo date not null,
check (ValidTo > ValidFrom)
)
Run Code Online (Sandbox Code Playgroud)
我想编写一个触发器来阻止插入与现有日期范围重叠的值.我写了一个如下所示的触发器:
create trigger Trigger_Test
on Test
for insert
as
begin
if exists(
select *
from Test t
join inserted i
on ((i.ValidTo >= t.ValidFrom) and (i.ValidFrom <= t.ValidTo))
)
begin
raiserror (N'Overlapping range.', 16, 1);
rollback transaction;
return
end;
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为我新插入的记录是两个表Test的一部分,并在触发器内插入.因此,插入表中的新记录始终在Test表中与其自身连接.触发器将始终恢复转换.
我无法区分新记录和现有记录.因此,如果我排除相同的日期范围,我将能够在表格中插入多个完全相同的范围.
是否可以编写一个可以按预期工作的触发器,而无需在Test表中添加额外的标识列,我可以使用它从我的exists()语句中排除新插入的记录,如:
create trigger Trigger_Test
on Test
for insert
as
begin
if exists(
select …Run Code Online (Sandbox Code Playgroud) 四元数旋转只是一个带有X,Y,Z的矢量,物体将朝哪个方向旋转,还有一个滚动条可以将物体转动到它的轴上?
这么简单吗?
意思是如果X = 0,Z = 0且Y = 1,对象将面朝上?
如果你有Y = 0,Z = 0和X = 1,对象将面向右边?
(假设X右,Y向上和Z深度)