You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.6 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Excel;
using System.Linq.Expressions;
namespace OfficeToPDFConverter
{
public class Converter
{
public string Convert_Word(string B64Word,string path)
{
Microsoft.Office.Interop.Word.Application w = new Microsoft.Office.Interop.Word.Application();
try
{
Helper.clsFileHelper_Converter fh = new Helper.clsFileHelper_Converter();
string outputfile = "";
string inputfile = "";
string tmpfilename = DateTime.Now.ToString("yyyyMMddhhmmss");
outputfile = tmpfilename + ".pdf";
inputfile = tmpfilename + ".tmp";
inputfile = path + @"\" + inputfile;
outputfile = path + @"\" + outputfile;
fh.SaveBase64ToFile(B64Word, path);
w.Documents.Open(FileName: inputfile.ToString(), ReadOnly: true);
object oMissing = System.Reflection.Missing.Value;
w.ActiveDocument.ExportAsFixedFormat(outputfile.ToString(), Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF, false, Microsoft.Office.Interop.Word.WdExportOptimizeFor.wdExportOptimizeForPrint, Microsoft.Office.Interop.Word.WdExportRange.wdExportAllDocument, 0, 0, Microsoft.Office.Interop.Word.WdExportItem.wdExportDocumentContent, true, true, Microsoft.Office.Interop.Word.WdExportCreateBookmarks.wdExportCreateNoBookmarks, true, false, false);
w.ActiveDocument.Saved = true;
w.ActiveDocument.Close(SaveChanges: false);
w.Quit(false);
w = null;
string b64 = fh.Base64FromFile(outputfile);
System.IO.File.Delete(outputfile);
return b64;
}
catch
{
return "";
}
finally
{
try { w.Quit(false); } catch { }
w = null;
}
}
public string Convert_Excel(string B64Word, string path)
{
Microsoft.Office.Interop.Excel.Application x = new Microsoft.Office.Interop.Excel.Application();
try
{
Helper.clsFileHelper_Converter fh = new Helper.clsFileHelper_Converter();
string outputfile = "";
string inputfile = "";
string tmpfilename = DateTime.Now.ToString("yyyyMMddhhmmss");
outputfile = tmpfilename + ".pdf";
inputfile = tmpfilename + ".tmp";
inputfile = path + @"\" + inputfile;
outputfile = path + @"\" + outputfile;
fh.SaveBase64ToFile(B64Word, path);
x.Workbooks.Open(inputfile);
x.ActiveWorkbook.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, outputfile.ToString(), Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard);
x.ActiveWorkbook.Close(SaveChanges: false);
x.Quit();
x = null;
string b64 = fh.Base64FromFile(outputfile);
System.IO.File.Delete(outputfile);
return b64;
}
catch { return ""; }
finally { try { x.Quit(); } catch { } x = null; }
}
}
}