在本文中,我们将看到如何使用Spire.PDF在SQL CLR中创建简单的PDF文档以及如何在SQL Server中部署它。
SQL CLR是用于在SQL Server中托管Microsoft .NET公共语言运行时引擎的技术。SQLCLR允许托管代码由Microsoft SQL Server环境托管并在其中运行。
这种技术是在Microsoft SQL Server 2005中引入的,例如,允许用户使用.NET语言(例如C#或VB.NET)在SQL Server中创建以下类型的托管代码对象。
- 存储过程
- 用户定义的聚合
- 扳机
- 用户定义类型
- 用户定义的功能
在本文中,我们将看到如何使用Spire.PDF在SQL CLR中创建简单的PDF文档以及如何在SQL Server中部署它。只需按照以下步骤操作,即可完成。
启用SQL CLR集成
对于SQL Server,SQL CLR程序集是外部代码,因此在SQL Server默认安装配置中,SQL CLR被阻止不使用,要使用它,必须首先将其打开。
- 打开SQL Server Management Studio,连接并创建一个名为SpirePDFCLR的新数据库。
-
使用以下代码启用SQL CLR。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">sp_configure'启用clr',1</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">走</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">重新配置</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">走</font></font><font></font>
现在,SQL Server准备执行使用C#编程语言构建的数据库对象。
添加依赖程序集
为了使用非SAFE CLR组件,首先,我们需要打开“可信任”。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">ALTER DATABASE SpirePDFCLR设置为可信任</font></font>
现在,我们可以通过以下代码添加依赖程序集。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建组件[System.Windows.Forms] </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">从'C: WINDOWS Microsoft.NET Framework v2.0.50727 System.Windows.Forms.dll'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">WITH PERMISSION_SET =不安全</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建组件[System.Web] </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">从'C: Windows Microsoft.NET Framework v2.0.50727 System.Web.dll'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">WITH PERMISSION_SET =不安全</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建组件[Microsoft.mshtml]</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">FROM'C: Windows Microsoft.NET Framework v2.0.50727 Microsoft.mshtml.dll'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">WITH PERMISSION_SET =不安全</font></font><font></font>
添加这些程序集后,我们可以添加Spire.Pdf.Dll。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建组件[Spire.Pdf] </font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">从'D: NET2.0 Spire.Pdf.dll'</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">WITH PERMISSION_SET =不安全</font></font><font></font>
然后转到对象浏览器,选择SpirePDFCLR数据库,右键单击并选择“ 刷新 ”。它们将显示在“程序集”下,如下所示。
在SQL CLR中创建和处理PDF文档
将Spire.Pdf.dll添加到数据库后,我们可以在SQL CLR中创建和操作PDF文档。这里我们以存储过程为例。
将以下代码放入存储过程中。当我们执行存储过程时,它将创建一个PDF文档。
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用系统;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用System.Data;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用System.Data.SqlClient;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用System.Data.SqlTypes;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用Microsoft.SqlServer.Server;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用Spire.Pdf;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用Spire.Pdf.Graphics;</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">公共局部类UserDefinedFunctions</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">{</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> [Microsoft.SqlServer.Server.SqlProcedure]</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> 公共静态无效StoreProcedure()</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> {</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> PdfDocument doc =新的PdfDocument();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> PdfPageBase页面= doc.Pages.Add();</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> page.Canvas.DrawString(“ Hello world”,new PdfFont(PdfFontFamily.Courier,100),PdfBrushes.Black,0,0);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> doc.SaveToFile(“ d:\ result.pdf”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"> }</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">};</font></font><font></font>
下一步构建并部署解决方案。如果一切正常,则表示部署成功。然后,我们将在SpirePDFCLR数据库中看到存储过程。
现在,我们将从SQL Server运行存储过程,但是在这里我们将得到如下错误。
我们需要将CLR项目的权限级别更改为不安全,然后再次部署它。
现在再次运行它,它将正常工作,我们将获得PDF文档。
标签:
来源:慧都
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!