小编Mir*_*sik的帖子

在一些文化中正则表达式和资本I

在某些文化中,资本"我"有什么问题?我发现在某些文化中无法在特殊条件下找到 - 如果您正在寻找带有标志RegexOptions.IgnoreCase的[az].这是示例代码:

var allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
var allLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var allLettersCount = allLetters.Length;

foreach (var culture in allCultures)
{
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;

    var matched = string.Empty;
    foreach (var m in Regex.Matches(allLetters, "[A-Za-z0-9]", RegexOptions.IgnoreCase))
        matched += m;

    var count = matched.Length;
    if (count != allLettersCount)
        Console.WriteLine("Culture '{0}' - {1} missing; Matched: {2}", culture.Name, (allLettersCount - count).ToString(), matched);
}
Run Code Online (Sandbox Code Playgroud)

输出是(注意每行中缺少资本I):

Culture 'az' - 1 missing; Matched:          ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Culture 'az-Cyrl' - 1 missing; Matched:     ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Culture 'az-Cyrl-AZ' - …
Run Code Online (Sandbox Code Playgroud)

c# regex

24
推荐指数
1
解决办法
945
查看次数

从Windows 8上的Windows服务打印失败

我有一个用C#.NET编写的Windows服务应用程序.此应用程序用于通过将文档打印到生成PDF的本地软件打印机来生成报告pdf.这在Windows XP和Windows 7上运行良好.不幸的是我发现在Windows 8上它失败了.然后我发现当我从我的服务打印时,打印到Windows 8上的任何(甚至物理)打印机都会失败.我的计划中缺少什么工作?我是这样打印的:

FlowDocument document = MyDocument;
var source = document as IDocumentPaginatorSource;
var documentPaginator = source.DocumentPaginator;

using (var printServer = new LocalPrintServer())
{
    PrintQueue queue = printServer.GetPrintQueue(printerName);
    XpsDocumentWriter docWriter = PrintQueue.CreateXpsDocumentWriter(queue);

    // Print ticket - Approach 1
    // PrintTicket printTicket = queue.DefaultPrintTicket.Clone();

    // Print ticket - Approach 2
    var printTicket = new PrintTicket
    {
        PageOrientation = PageOrientation.Landscape,
        PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4), // set size of media (paper)
    };


    documentPaginator.PageSize = new Size(document.PageWidth, document.PageHeight);
    docWriter.Write(documentPaginator, printTicket);
}
Run Code Online (Sandbox Code Playgroud)

服务设置为"系统帐户"而没有"与桌面交互"(但我也尝试过或以本地用户身份登录). …

c# windows printing service

7
推荐指数
1
解决办法
6118
查看次数

标签 统计

c# ×2

printing ×1

regex ×1

service ×1

windows ×1