Silverlight(.NET Framework4)生成PDF:PDFSharp安装及DLL获取求助
解决方案:Silverlight + .NET Framework 4 下的Excel转纯文本PDF兼容方案
一、PDFSharp Silverlight兼容版本获取
- 优先使用
PDFsharp-sl 1.32.3057稳定版,这是官方针对Silverlight发布的正式版本,兼容性远优于beta版,可直接找到对应预编译DLL引用。 - 若找不到预编译文件,拉取PDFSharp官方历史分支
sl-1.32的源码,用Visual Studio 2010(适配.NET Framework 4及Silverlight 4/5环境)编译,编译时指定Silverlight为目标平台,生成的DLL即可直接在项目中使用。
二、Excel转纯文本前置处理
Silverlight对Excel直接操作受限,先完成纯文本提取:
- 使用适配.NET Framework 4的
EPPlusSilverlight兼容版读取Excel文件,遍历单元格提取纯文本内容。 - 若有后端服务,可将Excel转纯文本的逻辑放在后端完成,再将文本内容传给Silverlight端,规避沙箱权限和兼容性问题。
三、兼容版PDFSharp生成纯文本PDF
引用编译好的PDFSharp Silverlight DLL后,示例代码:
using PdfSharp.Pdf; using PdfSharp.Drawing; using PdfSharp.Silverlight; using System.IO.IsolatedStorage; // 创建PDF文档 var pdfDoc = new PdfDocument(); var page = pdfDoc.AddPage(); var graphics = XGraphics.FromPdfPage(page); var textFont = new XFont("Arial", 12); // 写入提取的Excel纯文本 graphics.DrawString("这里替换为Excel提取的纯文本内容", textFont, XBrushes.Black, new XRect(10, 10, page.Width - 20, page.Height - 20), XStringFormats.TopLeft); // 保存到Silverlight独立存储 using (var fileStream = IsolatedStorageFile.GetUserStoreForApplication().CreateFile("result.pdf")) { pdfDoc.Save(fileStream); } // 展示可通过Silverlight PDF查看控件加载独立存储内的文件
四、兼容性规避要点
- 禁止通过NuGet安装PDFSharp的beta版本,仅使用1.32稳定版的预编译DLL或源码编译产物。
- 确保项目Silverlight目标版本设为4或5(兼容.NET Framework 4),引用DLL时选择Silverlight程序集,而非.NET Framework版本。
内容的提问来源于stack exchange,提问作者user1987750
相关产品推荐
相关产品推荐

