c#使用Aspose打印文件的示例
最近在研究winform打印文件,需要支持word,excel,ppt,pdf,圖片這幾種格式,不能依賴相關軟件環境,研究後決定使用Aspose套件將相關文件全部轉換成pdf後打印
WrodToPDF
使用Aspose.Word 11.9,需要配合licence文件破解
//去水印 string licenseFile = "Aspose.Words.lic"; if (File.Exists(licenseFile)) { Aspose.Words.License license = new Aspose.Words.License(); license.SetLicense(licenseFile); } //轉換 Aspose.Words.Document doc = new Aspose.Words.Document(FileFullName); doc.Save(SaveFileName, Aspose.Words.SaveFormat.Pdf);
ExcelToPDF
使用Aspose.Cell 8.3(破解版本)
//轉換 Workbook excel = new Workbook(FileFullName); excel.Save(SaveFileName, Aspose.Cells.SaveFormat.Pdf);
PPTToPDF
使用Aspose.Slides 16.9(需要配合代碼破解)
//去水印 string[] stModule = new string[8] { "\u0002\u2006\u2006\u2003", "\u0003\u2006\u2006\u2003", "\u0005\u2005\u2000\u2003", "\u0003\u2000", "\u000F", "\u0002\u2000", "\u0003", "\u0002" }; Assembly assembly = Assembly.GetAssembly(typeof(Aspose.Slides.License)); Type typeLic = null, typeIsTrial = null, typeHelper = null; foreach (Type type in assembly.GetTypes()) { if ((typeLic == null) && (type.Name == stModule[0])) { typeLic = type; } else if ((typeIsTrial == null) && (type.Name == stModule[1])) { typeIsTrial = type; } else if ((typeHelper == null) && (type.Name == stModule[2])) { typeHelper = type; } } if (typeLic == null || typeIsTrial == null || typeHelper == null) { throw new Exception(); } object lic = Activator.CreateInstance(typeLic); int findCount = 0; foreach (FieldInfo field in typeLic.GetFields(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance)) { if (field.FieldType == typeLic && field.Name == stModule[3]) { field.SetValue(null, lic); ++findCount; } else if (field.FieldType == typeof(DateTime) && field.Name == stModule[4]) { field.SetValue(lic, DateTime.MaxValue); ++findCount; } else if (field.FieldType == typeIsTrial && field.Name == stModule[5]) { field.SetValue(lic, 1); ++findCount; } } foreach (FieldInfo field in typeHelper.GetFields(BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance)) { if (field.FieldType == typeof(bool) && field.Name == stModule[6]) { field.SetValue(null, false); ++findCount; } if (field.FieldType == typeof(int) && field.Name == stModule[7]) { field.SetValue(null, 128); ++findCount; } } if (findCount < 5) { throw new NotSupportedException("無效的版本"); } //轉換 Presentation ppt = new Presentation(FileFullName); ppt.Save(SaveFileName, Aspose.Slides.Export.SaveFormat.Pdf);
圖片ToPDF
使用Aspose.Pdf 9.4(需要配合代碼破解)
//去水印 private const string Key = "PExpY2Vuc2U+DQogIDxEYXRhPg0KICAgIDxMaWNlbnNlZFRvPlNoYW5naGFpIEh1ZHVuIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQ8L0xpY2Vuc2VkVG8+DQogICAgPEVtYWlsVG8+MzE3NzAxODA5QHFxLmNvbTwvRW1haWxUbz4NCiAgICA8TGljZW5zZVR5cGU+RGV2ZWxvcGVyIE9FTTwvTGljZW5zZVR5cGU+DQogICAgPExpY2Vuc2VOb3RlPkxpbWl0ZWQgdG8gMSBkZXZlbG9wZXIsIHVubGltaXRlZCBwaHlzaWNhbCBsb2NhdGlvbnM8L0xpY2Vuc2VOb3RlPg0KICAgIDxPcmRlcklEPjE2MDkwMjAwNDQwMDwvT3JkZXJJRD4NCiAgICA8VXNlcklEPjI2NjE2NjwvVXNlcklEPg0KICAgIDxPRU0+VGhpcyBpcyBhIHJlZGlzdHJpYnV0YWJsZSBsaWNlbnNlPC9PRU0+DQogICAgPFByb2R1Y3RzPg0KICAgICAgPFByb2R1Y3Q+QXNwb3NlLlRvdGFsIGZvciAuTkVUPC9Qcm9kdWN0Pg0KICAgIDwvUHJvZHVjdHM+DQogICAgPEVkaXRpb25UeXBlPkVudGVycHJpc2U8L0VkaXRpb25UeXBlPg0KICAgIDxTZXJpYWxOdW1iZXI+NzM4MDNhYmUtYzZkMi00MTY3LTg2MTgtN2I0NDViNDRmOGY0PC9TZXJpYWxOdW1iZXI+DQogICAgPFN1YnNjcmlwdGlvbkV4cGlyeT4yMDE3MDkwNzwvU3Vic2NyaXB0aW9uRXhwaXJ5Pg0KICAgIDxMaWNlbnNlVmVyc2lvbj4zLjA8L0xpY2Vuc2VWZXJzaW9uPg0KICAgIDxMaWNlbnNlSW5zdHJ1Y3Rpb25zPmh0dHA6Ly93d3cuYXNwb3NlLmNvbS9jb3Jwb3JhdGUvcHVyY2hhc2UvbGljZW5zZS1pbnN0cnVjdGlvbnMuYXNweDwvTGljZW5zZUluc3RydWN0aW9ucz4NCiAgPC9EYXRhPg0KICA8U2lnbmF0dXJlPm5LNVVUR3dZMWVJSEtIV0d2NW5sQUxXUy81bDEzWkFuamlvdnlBcGNqQis0ZjNGbm5yOWhjeUlzazlvVzQySWp0ZFYra2JHZlNSMUV4OUozSGlkaThCeE43aHFiR1BERXNaWGo2RlYxaGl1N2MxWmUyNEp3VGc2UnpsNUNJRHY1YVhxbDQyczBkSGw4eXpreDRBM2RTTU5KTzRiQ094a2V2OFBiOWxSaUc3ST08L1NpZ25hdHVyZT4NCjwvTGljZW5zZT4="; private static Stream LStream = (Stream)new MemoryStream(Convert.FromBase64String(Key)); var l = new Aspose.Pdf.License(); l.SetLicense(LStream); //轉換 Document doc = new Document(); Page page = doc.Pages.Add(); Aspose.Pdf.Image image = new Aspose.Pdf.Image(); image.File = FileFullName; page.Paragraphs.Add(image); PrintFileName = OfficeUtil.CombinePDFPath(ConvertPDFName); doc.Save(PrintFileName);
PDF文件打印
使用Aspose.Pdf打印文件可以直接設置打印機名稱,分數,方向d等
System.Drawing.Printing.PrinterSettings ps = new System.Drawing.Printing.PrinterSettings(); ps.PrinterName = PrinterName; ps.Copies = Copies; ps.Duplex = Direction; PdfViewer viewer = new PdfViewer(); viewer.BindPdf(PrintFileName); viewer.PrintDocumentWithSettings(ps); viewer.Close();
註:對於excel轉換pdf後是沒有表格線的,ppt轉換pdf後打印會被截斷,需要自己調整方向與紙張大小設置
以上就是c#使用Aspose打印文件的示例的詳細內容,更多關於c# 用Aspose打印文件的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- spring-data-elasticsearch @Field註解無效的完美解決方案
- Java實現無損Word轉PDF的示例代碼
- SpringBoot實現文件在線預覽功能的全過程
- C# Aspose.Words 刪除word中的圖片操作
- C#自定義WPF中Slider的Autotooltip模板