iTextSharp添加(css样式或css文件)并下载pdf文件

终于搞定了 var inputString = @” Customer Name Customer’s Address XYZ Bhubaneswar MNP Cuttack “; List cssFiles = new List(); cssFiles.Add(@”/Content/bootstrap.css”); var output = new MemoryStream(); var input = new MemoryStream(Encoding.UTF8.GetBytes(inputString)); var document = new Document(); var writer = PdfWriter.GetInstance(document, output); writer.CloseStream = false; document.Open(); var htmlContext = new HtmlPipelineContext(null); htmlContext.SetTagFactory(iTextSharp.tool.xml.html.Tags.GetHtmlTagProcessorFactory()); ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false); cssFiles.ForEach(i […]

如何将zip文件内容提取到.NET 4.5中的文件夹中

以下问题的答案似乎概述了如何使用System.IO.Commpression.ZipFile.ExtractToDirectory方法调用来提取文件。 在添加对System.IO.Compression的引用时,.NET 4.5中似乎不存在“ZipFile”。 如何从.NET 4.5中的* .zip文件中提取文件? 如何使用C#4.0从文件夹解压缩所有.Zip文件,而不使用任何OpenSource Dll? 这似乎显示了如何压缩文件。 但我正在寻找相反的方向。 在.NET 4.5中压缩文件 甚至这个问题在源代码中引用了“ZipFile”。 但我似乎无法找到这门课。 如何从C#.NET 4.5中的zip存档中提取特定目录? 编辑: 请注意7z.exe(来自7zip包)是如何工作的。 必须与.NET和7zip发生冲突。 ZipFile现在似乎工作正常。 private void extract_Click(object sender, EventArgs e) { string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; exePath = @”C:\test”; // path during troubleshooting ////var cmd1 = “cd \”” + exePath + “\””; ////ExecuteCommand(cmd1, 100, exePath); //var cmd2 = “\”” + […]

用于多个条件测试的C#语法简写

C#中存在什么语法来帮助进行多个条件测试? 我经常需要以下列方式测试多个条件: if (a == 3 || a == 4) 也许我是主观的,但那不是很漂亮。 如果有更多条件,我可以这样做: if (new int[]{3, 4, 5, 6, 7}.Contains(a)) 但是如果只有几个条件要测试,我就不会保存任何按键。 C#语言中是否有一个语法快捷方式可以让我完成类似下面的操作,没有多次击键和没有扩展方法等? // doesn’t work if (a == 3 || 4) 这与此SO线程不同,因为它处理的是短条件(2或3),在“与b比较”比较中都具有不变的“a”值。

System.Windows.Forms.Keys.HasFlag行为奇怪

我有以下代码,旨在防止用户在备忘录文本编辑器中编写新行: private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData.HasFlag(Keys.Enter)) { e.SuppressKeyPress = true; } } 它确实阻止了插入Enter,但奇怪的是它也阻止了其他键的插入。 到目前为止,我们已经发现钥匙:’O’,’M’,’/’和’ – ‘也被“抓住”了。 更新:以下代码执行我需要的操作: private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == (int)Keys.Return) { e.SuppressKeyPress = true; } } 但我仍然不明白以前的代码不起作用,这样做。 我查看了System.Windows.Forms.Keys枚举,但没有找到任何线索(虽然我必须说这是一个奇怪的构造枚举)。 谁能解释为什么会这样?

如何在没有Visual Studio的情况下开发Microsoft Office AddIn

我正在尝试使用C#.Net开发MS Office Addin,但我无法访问Visual Studio。 相反,我使用SharpDevelop作为我的IDE,(但我的问题与使用任何其他IDE开发或从命令行编译的任何人同样相关……) 我已经做了一些搜索有关如何开发AddIns的指南,但它们似乎都需要Visual Studio并按照以下步骤操作: 安装互操作程序集 创建一个Visual Studio .Net项目( 我无法做到这一点 ) 扩展VS ThisAddIn模板 我设法做的是: 安装互操作程序集 创建一个C#空的SharpDevelop项目 将GAC引用添加到Microsoft.Office.Interop.Outlook 将COM引用添加到Microsoft Office 12.0对象库 using Outlook = Microsoft.Office.Interop.Outlook;添加该行using Outlook = Microsoft.Office.Interop.Outlook; 和using Office = Microsoft.Office.Core;的行using Office = Microsoft.Office.Core; 看一些示例代码,并意识到它们都是指我没有的VS模板和VSTO库(Microsoft.Office.Tools)。 我从哪里去? 有没有我错过的指南/教程,或者有人可以提供一些指示?

使用{get;实现只读属性 }

为什么不运行: class Program { static void Main(string[] args) { Apple a = new Apple(“green”); } } class Apple { public string Colour{ get; } public Apple(string colour) { this.Colour = colour; } }

C#程序检查有效值

我需要一些帮助来从以下程序中删除重复的值。 我不能使用Hashset,列表或除arrays之外的任何东西。 我已经查看了可以使用Hashset和list的不同解决方案,但我不允许使用它。 有人可以帮我弄这个吗。 该程序假设在a到j之间只取5个值并删除任何重复值: class Program { static void main(string[] args) { char[] Array = new char[5]; Console.WriteLine(“Please Enter 5 Letters B/W a through j only: “); string letters = “abcdefghij”; for (int i = 0; i < Array.Length;) { string lower = Console.ReadLine().ToLower(); if (letters.Contains(lower) && lower.Length == 1) { Array[i] = Convert.ToChar(lower); […]

BindingList ListChanged事件

我有一个类的BindingList 设置为BindingSource的DataSource属性,该属性又设置为DataGridView的DataSource属性。 1.我的理解是,对列表的任何添加都将触发ListChanged事件,该事件将通过BindingSource传播,然后传播到DataGridView,DataGridView将更新自身以显示更改。 这将发生,因为事件已自动连接。 (是?) 当所有工作都在UI线程上完成时,这一切都很好,但是当从非UI线程创建和更改列表时,最终在更新网格时会发生跨线程exception。 我能理解为什么会这样,但是没有办法解决这个问题…… 2.我很难理解,我应该在哪里最好拦截ListChanged事件来尝试将内容整理到UI线程中? 我猜我需要一个UI线程的引用以某种方式帮助做到这一点? 我已经阅读了很多这方面的post/文章,但我很难挣扎,因为我不完全理解这里的工作机制。 一旦他们在列表中,我将永远不会更改任何项目,只添加它们,并最初清除列表。 (我使用的是.NET 2.0)

在asp.net web api中使用FromBody时,字符串值为空

我使用的是asp.net核心web api。 下面是我的简单post函数,它有一个字符串参数。 问题是当我使用[FromBody]时,字符串保持为空。 我正在使用PostMan来测试我的服务。 我希望原始数据从客户端传递到我的控制器。 在Postman中我选择了体型RAW,并设置了标题Content-Type text / plain。 Raw Body包含Just“Hello World”字符串。 [HttpPost] [Route(“hosted-services/tokenize-card”)] public IActionResult Test([FromRoute]decimal businessKey,[FromBody] string body) { var data = businessKey; return new JsonResult(“Hello World”); }

活动采购资源

寻找有关活动采购主题的有用讨论组,文章,成功案例,参考应用程序和工具(.Net)的一些建议。 我已经熟悉了: 福勒的文章: http : //martinfowler.com/eaaDev/EventSourcing.html Greg Young的文章(评论中已下载的文档): http : //codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/ Greg Young关于DDDD的优秀(草案)文章: http : //abdullin.com/storage/uploads/2010/04/2010-04-16_DDDD_Drafts_by_Greg_Young.pdf 还有什么我应该读书看的吗?