小编Fri*_*z45的帖子

将SVG图像从浏览器复制到剪贴板

我正在开发一个Web应用程序,它接受用户输入,进行工程计算,然后显示格式化的报告或图形.图形是工程图,并不总是标准图形,如饼图.该应用程序的主要功能是使用户能够将这些图表从浏览器复制到Word或Excel文档.

我必须选择使用客户端生成的SVG或服务器端生成的位图.我喜欢SVG方法和原型看起来不错,但是,复制SVG图形似乎跨浏览器可以支持不一致,尤其是在图形在一个div所示(即整个页面不.SVG).例如,IE在下拉列表中显示"副本",但仅将部分SVG图形复制到剪贴板.如果我右键单击SVG图形,则Chrome不提供复制选项.

如果我谷歌周围,我很惊讶看到有关从Web应用程序获取SVG图像到剪贴板的问题的信息很少.

对于解决过这个问题的读者,我的问题是:

  1. 有没有一种一致的方法可以将一个更大的DOM的SVG元素放到剪贴板上,最好是使用JavaScript;

  2. 鉴于我要求从浏览器到剪贴板获取图形的任何其他建议?

clipboard svg google-chrome

22
推荐指数
1
解决办法
3万
查看次数

从 .NET 6 Minimal API 调用的类库方法进行 Serilog 日志记录

我设置了一个 .Net 6 Core Minimal API,以使用 SeriLog 登录到 MS SQL Server。在我的类库中,仅当我修改类库中的构造函数时,我才能够使用 SeriLog 进行日志记录。我试图避免修改类库类或方法的构造函数。

根据我使用控制台应用程序的经验,如果我在主 Program.cs 中设置 SeriLog,那么我可以在类库中的任何类中使用日志记录,而无需将记录器传递给构造函数。因此,我可以在类库中的任何位置使用 Log.Information("my message") 并且它可以工作。我试图在 .Net 6 最小 API 项目中使用我的 Program.cs 实现相同的目标。

我觉得通过查看有关该主题的其他问题应该可以做到。特别是这个,其中的答案指出:

您无需在类库中执行任何操作。只有主应用程序具有组合根(应用程序生命周期中可以设置对象图的最早点)。

因此,根据上面的内容,在我的 API Program.CS 中,我有以下代码(我已在注释中指出了哪些有效,哪些无效):

    //Configure SeriLog
    builder.Logging.ClearProviders();
    var appSettings = new ConfigurationBuilder()
       .SetBasePath(Directory.GetCurrentDirectory())
       .AddJsonFile("appsettings.json")
       .Build();
    
    var logDB = 
    builder.Configuration.GetSection("ConnectionStrings:Default").Value;
    var sinkOpts = new MSSqlServerSinkOptions { TableName = "Logs" };
    var columnOptions = new ColumnOptions();
    
    var logger = new LoggerConfiguration()
       .MinimumLevel.Override("Microsoft", 
    Serilog.Events.LogEventLevel.Information)
      .WriteTo.MSSqlServer(
          connectionString: logDB,        
          sinkOptions: sinkOpts,
          columnOptions: columnOptions,
          appConfiguration: …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api serilog asp.net-core .net-6.0

4
推荐指数
1
解决办法
5922
查看次数

Windows 7 上的 IE10:SVG 在 div 中滚动得太远

我正在 DIV 中绘制 SVG 绘图。绘图比 DIV 大,因此滚动变为活动状态。我正在我的电脑上测试这个,它有 IE10 和 Windows 7。IE10 似乎滚动 SVG 绘图超过它的终点。IE9、Chrome 和 Firefox 不会这样做。下面的代码重现了这个问题。

如果你使用它来创建一个 html 页面并在 Chrome 中运行它,你应该在滚动时看到一条从左上角到右下角的线。在滚动的最右边,这条线正好停在黄绿色 SVG 元素的右侧,红线表示限制。

但是,在我的 Windows 7 机器上使用 IE10 时,该行在末尾的左侧稍微停止。随着 SVG 绘图大小的增加,这种“有点”变得更大。似乎 IE 滚动 SVG 绘图超过了它的正确限制。在尝试获取点击位置并将其转换回真实坐标时,这对我造成了严重破坏。

我之前发布了这个问题,认为问题出在 IE9 和 IE10 中,但从那以后我将其隔离到 IE10。我也在另一个论坛(http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/0d4ef7dd-7e1c-4a09-a483-2760367a2e84)发帖,有人回来说他们没有看到同样的问题。所以它可能与兼容性视图有关。但是,如果我在测试时在 IE 中按 F12,我会看到“浏览器模式:IE10,文档模式:标准”

非常感谢帮助!

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>IE SVG SCroll Problem</title>        
    <META http-equiv="CACHE-CONTROL" content="NO-CACHE, NO-STORE" />               
</head>
<body onload="draw()">
   <div style="position:absolute; left:100px; top:50px; width:500px; height: 300px; background-color:wheat;">
   <div id="plotRect" style="position:relative; left:40px; top:25px; width:400px; height:240px; …
Run Code Online (Sandbox Code Playgroud)

javascript svg windows-7 internet-explorer-10

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