我有一个应用程序,我需要动态转换PNG文件PDF.是否有现有的库可以执行此操作?我希望PDF看起来与PNG完全一样 - 没有额外的边距,没有边框等.
我正在使用.NET 4.0.
编辑:我尝试过iTextSharp,效果很好.这是获得我需要的基本代码.
using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
public class ITextPDFHelper
{
public static void Main(string[] args)
{
ITextPDFHelper.CreatePDF("C:\\temp\test.pdf", "C:\\temp\test.png");
}
public static void CreatePDF(string fileToCreate, pngFileName)
{
Document doc = new Document();
PdfWriter.GetInstance(doc, new FileStream(fileToCreate, FileMode.Create));
doc.Open();
Image png = Image.GetInstance(pngFileName);
png.SetAbsolutePosition(0, 0);
doc.Add(png);
doc.Close();
}//CreatePDF
}
Run Code Online (Sandbox Code Playgroud) 例如,在MVC应用程序中,我可以使用Html帮助程序创建如下标签:
@Html.LabelFor(m => m.ProductName)
Run Code Online (Sandbox Code Playgroud)
我没有在任何地方声明变量"m",但IDE会自动确定我正在尝试做什么.IDE比我更了解我的代码,这有点令人不安.我想解决这个问题.
我大多想知道它是如何知道如何引用我的模型的.
编辑:谢谢你的所有答案.
所以,"Html"是HtmlHelper的一个实例."Html"是ViewPage基类的成员.它的值在ViewPage基类的InitHelpers()方法中设置.HtmlHelper构造函数将ViewPage的ViewContext作为参数.ViewContext知道我正在使用的模型.LabelFor是HtmlHelper类的扩展方法.这就是lambda表达式知道如何引用我的模型的原因.
点已连接.谢谢!
我有一个字符串列表,有2个破折号分隔文本,如:
Wednesday-Morning-Go bowling
Sunday-Really late at night-Sleep
July-Noon-BBQ
Run Code Online (Sandbox Code Playgroud)
我想通过字符串的最后一部分 - 第二个破折号依次在python中按字母顺序对列表进行排序.有没有办法在python中执行此操作?例如,这是我希望列表在排序后的样子.
July-Noon-BBQ
Wednesday-Morning-Go bowling
Sunday-Really late at night-Sleep
Run Code Online (Sandbox Code Playgroud)
(我使用的是Python 2.6.)
我有一个简单的.NET 2.0 Windows窗体应用程序,运行网络驱动器(例如\ MyServer\MyShare\app.exe).它非常基础,只加载最小的.NET库.但是,加载仍需要约6-10秒.人们认为应用程序如此之小以至于需要很长时间才能加载,这一定是错
有没有提高启动速度的建议?
我已经看到了许多使用ASP.NET MVC配置Ninject的不同方法,但是随着MVC框架的每个版本的发布,实现似乎都有所改变.我正在尝试将RavenDB会话注入我的存储库.这就是我所拥有的几乎可以工作的东西.
public class MvcApplication : NinjectHttpApplication
{
...
protected override void OnApplicationStarted()
{
base.OnApplicationStarted();
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
protected override IKernel CreateKernel()
{
return new StandardKernel(new MyNinjectModule());
}
public static IDocumentSession CurrentSession
{
get { return (IDocumentSession)HttpContext.Current.Items[RavenSessionKey]; }
}
...
}
public class MyNinjectModule : NinjectModule
{
public override void Load()
{
Bind<IUserRepository>().To<UserRepository>();
Bind<IDocumentSession>().ToConstant(MvcApplication.CurrentSession);
}
}
Run Code Online (Sandbox Code Playgroud)
当它尝试解析IDocumentSession时,我收到以下错误.
Error activating IDocumentSession using binding from IDocumentSession to constant value
Provider returned null.
Activation path:
3) Injection of dependency IDocumentSession into parameter …Run Code Online (Sandbox Code Playgroud) 我在屏幕上通过鼠标移动记录了X和Y坐标.我也有记录位置的时间.我想绘制这些显示鼠标随时间移动的方式.
这是我的数据框的样子片段:
X Y Time
1 812 257 1339892810683
2 793 275 1339892810709
3 783 284 1339892810732
4 746 308 1339892810771
Run Code Online (Sandbox Code Playgroud)
我认为准确表示这两种方法的唯一两种方法是3D绘图,或者基本上代表播放的动画.R中有人知道怎么做吗?或者,关于如何可视化的任何其他想法?
在某些情况下,我更喜欢使用自定义对象而不是强类型数据集和数据行.但是,似乎Microsoft报告(包含在VS2005中)需要强类型数据集.
有没有办法使用我的自定义对象来设计和填充报表?
所以,假设我有一个数字123456. 123456%97 = 72.如何确定需要将哪两位数添加到123456的末尾,以使新数字%97 = 1?注意 - 它必须始终为两位数.
例如,123456 76%97 = 1.在这种情况下,我需要将数字"76"添加到数字的末尾.
(这是用于IBAN编号计算.)
我试图在每个大写字母之前添加一个空格,除了第一个大写字母.
这是我到目前为止所拥有的,以及我得到的输出:
>>> tex = "ThisFileName.txt"
>>> re.sub('[A-Z].', ' ', tex)
' his ile ame.txt'
Run Code Online (Sandbox Code Playgroud)
我想:'这个文件Name.txt'
(如果我还能摆脱.txt,那会很好,但我可以在单独的操作中做到这一点.)
所以,我对网站有了一个想法.我可以开始使用我想要的任何平台和框架,但是有太多的选择.
OS平台:Windows,*nix
Web框架:Rails,ASP.NET,ASP.NET MVC,Django,Zend,Cake,其他
托管:EC2,专用服务器,共享主机,VPS,App引擎,Azure,其他
持久性:S3,MySql,PostreSql,Sql Server,SimpleDB,CouchDB,其他
你如何避免决策瘫痪并开始?
在Windows中,如果我打开命令提示符,启动python,并使用其__doc__属性检查某些内容,则无法正确显示.而不是分开的行,我看到一个连续的字符串每隔一段时间使用换行符.
有没有办法让它看起来正确?
这是我看到的一个例子:
>>> hashlib .__ doc__
'hashlib模块 - 许多散列函数的通用接口.\n \nnew(name,string = \'\') - 返回实现\n给定散列函数的ew散列对象; 使用给定的字符串数据初始化hash \n.\n \n使用命名的构造函数也是可用的,这些使用new()快得多:\n \nmd5(),sha1(),sha224(),sha256( ),sha384()和sha5 12()\n \n更多算法可能在您的平台上可用,但上述内容是\n保证存在.\n \n注意:如果您需要adler32或crc32哈希函数,它们可用于\ zlib模块.\n \nCh