日期:2014-05-17  浏览次数:20435 次

[分享]文件转pdf
 最近有个项目需要把文件(word、excel、txt、image等)转换为pdf文件,搜了一下资料,有很多实现方式,如通过调用虚拟打印机来转换,利用第三方组件(itextsharp、sharppdf等)实现。现两个都用到了,html转换为pdf文件时,我是先把html截取为图片然后转换为pdf,若各位有好的建议,可以一起探讨。
Pdf文件转Excel等文件各位有啥好的实现方法?
先贴上一些源码,下载地址:http://download.csdn.net/source/2646952

   /// <summary>
        /// excel转换为pdf
        /// </summary>
        /// <param name="file_inputname"></param>
        public void PrintSheetToPDF(string fileInputName)
        {
            try
            {
                GetPrinterName(ref PrinterName, ref obj_printer_settings, ref oType);

                PrintDocument prtdoc = new PrintDocument();

                currentPrinterName = prtdoc.PrinterSettings.PrinterName;   //获取默认的打印机名 

                //更改默认打印机
                SetDefaultPrinter(PrinterName.Trim());
                //通知更改
                SendNotifyMessage(HWND_BROADCAST, WM_WININICHANGE, 0, "windows");

                if (fileInputName == "")
                {
                    return;
                }

                filePath = fileSavePath + "\\" + GetFileName(fileInputName) + ".pdf";

                oType.InvokeMember("Init", System.Reflection.BindingFlags.InvokeMethod, null, obj_printer_settings, null);

                oType.InvokeMember("SetValue", System.Reflection.BindingFlags.InvokeMethod, null, obj_printer_settings, new object[] { "output", filePath });

                oType.InvokeMember("SetValue", System.Reflection.BindingFlags.InvokeMethod, null, obj_printer_settings, new object[] { "showsettings", "never" });

                oType.InvokeMember("SetValue", System.Reflection.BindingFlags.InvokeMethod, null, obj_printer_settings, new object[] { "ShowPDF", "no"&