c#使用Aspose打印文件的示例
最近在研究winform打印文件,需要支持word,excel,ppt,pdf,圖片這幾種格式,不能依賴(lài)相關(guān)軟件環(huán)境,研究后決定使用Aspose套件將相關(guān)文件全部轉(zhuǎn)換成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);
}
//轉(zhuǎn)換
Aspose.Words.Document doc = new Aspose.Words.Document(FileFullName);
doc.Save(SaveFileName, Aspose.Words.SaveFormat.Pdf);
ExcelToPDF
使用Aspose.Cell 8.3(破解版本)
//轉(zhuǎn)換
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("無(wú)效的版本");
}
//轉(zhuǎn)換
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);
//轉(zhuǎn)換
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打印文件可以直接設(shè)置打印機(jī)名稱(chēng),分?jǐn)?shù),方向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();
注:對(duì)于excel轉(zhuǎn)換pdf后是沒(méi)有表格線(xiàn)的,ppt轉(zhuǎn)換pdf后打印會(huì)被截?cái)啵枰约赫{(diào)整方向與紙張大小設(shè)置
以上就是c#使用Aspose打印文件的示例的詳細(xì)內(nèi)容,更多關(guān)于c# 用Aspose打印文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- c# 實(shí)現(xiàn)打印機(jī)狀態(tài)查詢(xún)與阻塞打印
- C# 調(diào)用exe傳參,并獲取打印值的實(shí)例
- 如何利用C#打印九九乘法表
- c# winform 解決PictureBox 無(wú)法打印全部圖片的問(wèn)題
- C#操作Word打印的示例
- C#操作excel打印的示例
- C# 打印網(wǎng)頁(yè)不顯示頁(yè)眉頁(yè)腳的實(shí)現(xiàn)方法
- C#實(shí)現(xiàn)掃描槍掃描二維碼并打印(實(shí)例代碼)
- C#利用PrintDocument定制打印單據(jù)的小例子
- C#打印PDF文檔的10種方法(小結(jié))
- C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法
- C# winform打印excel的方法
- c# 如何實(shí)現(xiàn)web打印插件
相關(guān)文章
C#對(duì)Xamarin框架進(jìn)行數(shù)據(jù)綁定
這篇文章介紹了C#對(duì)Xamarin框架進(jìn)行數(shù)據(jù)綁定,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
C#實(shí)現(xiàn)操作windows系統(tǒng)服務(wù)(service)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)操作windows系統(tǒng)服務(wù)(service)的方法,可實(shí)現(xiàn)系統(tǒng)服務(wù)的啟動(dòng)和停止功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C#實(shí)現(xiàn)判斷字符串中是否包含中文的方法
這篇文章主要介紹了C#實(shí)現(xiàn)判斷字符串中是否包含中文的方法,非常實(shí)用的功能,需要的朋友可以參考下2014-08-08
C#簡(jiǎn)單訪(fǎng)問(wèn)SQLite數(shù)據(jù)庫(kù)的方法(安裝,連接,查詢(xún)等)
這篇文章主要介紹了C#簡(jiǎn)單訪(fǎng)問(wèn)SQLite數(shù)據(jù)庫(kù)的方法,涉及SQLite數(shù)據(jù)庫(kù)的下載、安裝及使用C#連接、查詢(xún)SQLIte數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2016-07-07
C#集合查詢(xún)Linq在項(xiàng)目中使用詳解
本文主要介紹了C#集合查詢(xún)Linq在項(xiàng)目中使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
C#實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建接口并調(diào)用的實(shí)例
這篇文章介紹了C#實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建接口并調(diào)用,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
Unity使用DoTween實(shí)現(xiàn)拋物線(xiàn)效果
這篇文章主要為大家詳細(xì)介紹了Unity使用DoTween實(shí)現(xiàn)拋物線(xiàn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
客戶(hù)端實(shí)現(xiàn)藍(lán)牙接收(C#)知識(shí)總結(jié)
網(wǎng)上有關(guān)藍(lán)牙接收的資料很多,使用起來(lái)也很簡(jiǎn)單,但是我覺(jué)得還是有必要把這些知識(shí)總結(jié)下來(lái),藍(lán)牙開(kāi)發(fā)需要用到一個(gè)第三方的庫(kù)InTheHand.Net.Personal.dll,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02

